mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-10 07:14:48 +03:00
Fix misc django deprecations
This commit is contained in:
parent
bb37cb7992
commit
a084924ced
|
@ -138,6 +138,12 @@ def is_authenticated(user):
|
||||||
return user.is_authenticated
|
return user.is_authenticated
|
||||||
|
|
||||||
|
|
||||||
|
def is_anonymous(user):
|
||||||
|
if django.VERSION < (1, 10):
|
||||||
|
return user.is_anonymous()
|
||||||
|
return user.is_anonymous
|
||||||
|
|
||||||
|
|
||||||
def get_related_model(field):
|
def get_related_model(field):
|
||||||
if django.VERSION < (1, 9):
|
if django.VERSION < (1, 9):
|
||||||
return _resolve_model(field.rel.to)
|
return _resolve_model(field.rel.to)
|
||||||
|
|
|
@ -11,6 +11,7 @@ factory = APIRequestFactory()
|
||||||
class BasicSerializer(serializers.ModelSerializer):
|
class BasicSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = BasicModel
|
model = BasicModel
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
|
|
||||||
class ManyPostView(generics.GenericAPIView):
|
class ManyPostView(generics.GenericAPIView):
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
def pytest_configure():
|
def pytest_configure():
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
|
MIDDLEWARE = (
|
||||||
|
'django.middleware.common.CommonMiddleware',
|
||||||
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
|
)
|
||||||
|
|
||||||
settings.configure(
|
settings.configure(
|
||||||
DEBUG_PROPAGATE_EXCEPTIONS=True,
|
DEBUG_PROPAGATE_EXCEPTIONS=True,
|
||||||
DATABASES={
|
DATABASES={
|
||||||
|
@ -21,12 +28,8 @@ def pytest_configure():
|
||||||
'APP_DIRS': True,
|
'APP_DIRS': True,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
MIDDLEWARE_CLASSES=(
|
MIDDLEWARE=MIDDLEWARE,
|
||||||
'django.middleware.common.CommonMiddleware',
|
MIDDLEWARE_CLASSES=MIDDLEWARE,
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
|
||||||
),
|
|
||||||
INSTALLED_APPS=(
|
INSTALLED_APPS=(
|
||||||
'django.contrib.auth',
|
'django.contrib.auth',
|
||||||
'django.contrib.contenttypes',
|
'django.contrib.contenttypes',
|
||||||
|
|
|
@ -5,7 +5,7 @@ import unittest
|
||||||
from django.conf.urls import url
|
from django.conf.urls import url
|
||||||
from django.db import connection, connections, transaction
|
from django.db import connection, connections, transaction
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.test import TestCase, TransactionTestCase
|
from django.test import TestCase, TransactionTestCase, override_settings
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
|
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
|
@ -36,6 +36,20 @@ class APIExceptionView(APIView):
|
||||||
raise APIException
|
raise APIException
|
||||||
|
|
||||||
|
|
||||||
|
class NonAtomicAPIExceptionView(APIView):
|
||||||
|
@method_decorator(transaction.non_atomic_requests)
|
||||||
|
def dispatch(self, *args, **kwargs):
|
||||||
|
return super(NonAtomicAPIExceptionView, self).dispatch(*args, **kwargs)
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
BasicModel.objects.all()
|
||||||
|
raise Http404
|
||||||
|
|
||||||
|
urlpatterns = (
|
||||||
|
url(r'^$', NonAtomicAPIExceptionView.as_view()),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipUnless(
|
@unittest.skipUnless(
|
||||||
connection.features.uses_savepoints,
|
connection.features.uses_savepoints,
|
||||||
"'atomic' requires transactions and savepoints."
|
"'atomic' requires transactions and savepoints."
|
||||||
|
@ -124,22 +138,8 @@ class DBTransactionAPIExceptionTests(TestCase):
|
||||||
connection.features.uses_savepoints,
|
connection.features.uses_savepoints,
|
||||||
"'atomic' requires transactions and savepoints."
|
"'atomic' requires transactions and savepoints."
|
||||||
)
|
)
|
||||||
|
@override_settings(ROOT_URLCONF='tests.test_atomic_requests')
|
||||||
class NonAtomicDBTransactionAPIExceptionTests(TransactionTestCase):
|
class NonAtomicDBTransactionAPIExceptionTests(TransactionTestCase):
|
||||||
@property
|
|
||||||
def urls(self):
|
|
||||||
class NonAtomicAPIExceptionView(APIView):
|
|
||||||
@method_decorator(transaction.non_atomic_requests)
|
|
||||||
def dispatch(self, *args, **kwargs):
|
|
||||||
return super(NonAtomicAPIExceptionView, self).dispatch(*args, **kwargs)
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
|
||||||
BasicModel.objects.all()
|
|
||||||
raise Http404
|
|
||||||
|
|
||||||
return (
|
|
||||||
url(r'^$', NonAtomicAPIExceptionView.as_view()),
|
|
||||||
)
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
connections.databases['default']['ATOMIC_REQUESTS'] = True
|
connections.databases['default']['ATOMIC_REQUESTS'] = True
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ from rest_framework.authentication import (
|
||||||
)
|
)
|
||||||
from rest_framework.authtoken.models import Token
|
from rest_framework.authtoken.models import Token
|
||||||
from rest_framework.authtoken.views import obtain_auth_token
|
from rest_framework.authtoken.views import obtain_auth_token
|
||||||
|
from rest_framework.compat import is_authenticated
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.test import APIClient, APIRequestFactory
|
from rest_framework.test import APIClient, APIRequestFactory
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
@ -408,7 +409,7 @@ class FailingAuthAccessedInRenderer(TestCase):
|
||||||
|
|
||||||
def render(self, data, media_type=None, renderer_context=None):
|
def render(self, data, media_type=None, renderer_context=None):
|
||||||
request = renderer_context['request']
|
request = renderer_context['request']
|
||||||
if request.user.is_authenticated():
|
if is_authenticated(request.user):
|
||||||
return b'authenticated'
|
return b'authenticated'
|
||||||
return b'not authenticated'
|
return b'not authenticated'
|
||||||
|
|
||||||
|
|
|
@ -456,7 +456,7 @@ class AttributeModel(models.Model):
|
||||||
|
|
||||||
class SearchFilterModelFk(models.Model):
|
class SearchFilterModelFk(models.Model):
|
||||||
title = models.CharField(max_length=20)
|
title = models.CharField(max_length=20)
|
||||||
attribute = models.ForeignKey(AttributeModel)
|
attribute = models.ForeignKey(AttributeModel, on_delete=models.CASCADE)
|
||||||
|
|
||||||
|
|
||||||
class SearchFilterFkSerializer(serializers.ModelSerializer):
|
class SearchFilterFkSerializer(serializers.ModelSerializer):
|
||||||
|
|
|
@ -962,7 +962,7 @@ class OneToOneTargetTestModel(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class OneToOneSourceTestModel(models.Model):
|
class OneToOneSourceTestModel(models.Model):
|
||||||
target = models.OneToOneField(OneToOneTargetTestModel, primary_key=True)
|
target = models.OneToOneField(OneToOneTargetTestModel, primary_key=True, on_delete=models.CASCADE)
|
||||||
|
|
||||||
|
|
||||||
class TestModelFieldValues(TestCase):
|
class TestModelFieldValues(TestCase):
|
||||||
|
@ -990,6 +990,7 @@ class TestUniquenessOverride(TestCase):
|
||||||
class TestSerializer(serializers.ModelSerializer):
|
class TestSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TestModel
|
model = TestModel
|
||||||
|
fields = '__all__'
|
||||||
extra_kwargs = {'field_1': {'required': False}}
|
extra_kwargs = {'field_1': {'required': False}}
|
||||||
|
|
||||||
fields = TestSerializer().fields
|
fields = TestSerializer().fields
|
||||||
|
|
|
@ -13,6 +13,7 @@ from django.utils import six
|
||||||
|
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework.authentication import SessionAuthentication
|
from rest_framework.authentication import SessionAuthentication
|
||||||
|
from rest_framework.compat import is_anonymous
|
||||||
from rest_framework.parsers import BaseParser, FormParser, MultiPartParser
|
from rest_framework.parsers import BaseParser, FormParser, MultiPartParser
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
@ -169,9 +170,9 @@ class TestUserSetter(TestCase):
|
||||||
|
|
||||||
def test_user_can_logout(self):
|
def test_user_can_logout(self):
|
||||||
self.request.user = self.user
|
self.request.user = self.user
|
||||||
self.assertFalse(self.request.user.is_anonymous())
|
self.assertFalse(is_anonymous(self.request.user))
|
||||||
logout(self.request)
|
logout(self.request)
|
||||||
self.assertTrue(self.request.user.is_anonymous())
|
self.assertTrue(is_anonymous(self.request.user))
|
||||||
|
|
||||||
def test_logged_in_user_is_set_on_wrapped_request(self):
|
def test_logged_in_user_is_set_on_wrapped_request(self):
|
||||||
login(self.request, self.user)
|
login(self.request, self.user)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user