aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_metadata.py
diff options
context:
space:
mode:
authorTom Christie2015-02-13 13:38:44 +0000
committerTom Christie2015-02-13 13:38:44 +0000
commit4248a8d3fc725d9ae3fe7aaaad7ee12479ab07ab (patch)
treec38485aec717a35de8691c3d55bd50ba3e4aae6d /tests/test_metadata.py
parent84260b5dd66cc31858898ff11d5300a73083cca1 (diff)
parentad32e14360a23ee3e93ff54ca206c64009d184c9 (diff)
downloaddjango-rest-framework-4248a8d3fc725d9ae3fe7aaaad7ee12479ab07ab.tar.bz2
Merge pull request #2198 from tomchristie/version-3.1
Version 3.1
Diffstat (limited to 'tests/test_metadata.py')
-rw-r--r--tests/test_metadata.py60
1 files changed, 47 insertions, 13 deletions
diff --git a/tests/test_metadata.py b/tests/test_metadata.py
index 5ff59c72..5031c0f3 100644
--- a/tests/test_metadata.py
+++ b/tests/test_metadata.py
@@ -1,9 +1,8 @@
from __future__ import unicode_literals
-
-from rest_framework import exceptions, serializers, views
+from rest_framework import exceptions, serializers, status, views, versioning
from rest_framework.request import Request
+from rest_framework.renderers import BrowsableAPIRenderer
from rest_framework.test import APIRequestFactory
-import pytest
request = Request(APIRequestFactory().options('/'))
@@ -17,7 +16,8 @@ class TestMetadata:
"""Example view."""
pass
- response = ExampleView().options(request=request)
+ view = ExampleView.as_view()
+ response = view(request=request)
expected = {
'name': 'Example',
'description': 'Example view.',
@@ -31,7 +31,7 @@ class TestMetadata:
'multipart/form-data'
]
}
- assert response.status_code == 200
+ assert response.status_code == status.HTTP_200_OK
assert response.data == expected
def test_none_metadata(self):
@@ -42,8 +42,10 @@ class TestMetadata:
class ExampleView(views.APIView):
metadata_class = None
- with pytest.raises(exceptions.MethodNotAllowed):
- ExampleView().options(request=request)
+ view = ExampleView.as_view()
+ response = view(request=request)
+ assert response.status_code == status.HTTP_405_METHOD_NOT_ALLOWED
+ assert response.data == {'detail': 'Method "OPTIONS" not allowed.'}
def test_actions(self):
"""
@@ -63,7 +65,8 @@ class TestMetadata:
def get_serializer(self):
return ExampleSerializer()
- response = ExampleView().options(request=request)
+ view = ExampleView.as_view()
+ response = view(request=request)
expected = {
'name': 'Example',
'description': 'Example view.',
@@ -104,7 +107,7 @@ class TestMetadata:
}
}
}
- assert response.status_code == 200
+ assert response.status_code == status.HTTP_200_OK
assert response.data == expected
def test_global_permissions(self):
@@ -132,8 +135,9 @@ class TestMetadata:
if request.method == 'POST':
raise exceptions.PermissionDenied()
- response = ExampleView().options(request=request)
- assert response.status_code == 200
+ view = ExampleView.as_view()
+ response = view(request=request)
+ assert response.status_code == status.HTTP_200_OK
assert list(response.data['actions'].keys()) == ['PUT']
def test_object_permissions(self):
@@ -161,6 +165,36 @@ class TestMetadata:
if self.request.method == 'PUT':
raise exceptions.PermissionDenied()
- response = ExampleView().options(request=request)
- assert response.status_code == 200
+ view = ExampleView.as_view()
+ response = view(request=request)
+ assert response.status_code == status.HTTP_200_OK
assert list(response.data['actions'].keys()) == ['POST']
+
+ def test_bug_2455_clone_request(self):
+ class ExampleView(views.APIView):
+ renderer_classes = (BrowsableAPIRenderer,)
+
+ def post(self, request):
+ pass
+
+ def get_serializer(self):
+ assert hasattr(self.request, 'version')
+ return serializers.Serializer()
+
+ view = ExampleView.as_view()
+ view(request=request)
+
+ def test_bug_2477_clone_request(self):
+ class ExampleView(views.APIView):
+ renderer_classes = (BrowsableAPIRenderer,)
+
+ def post(self, request):
+ pass
+
+ def get_serializer(self):
+ assert hasattr(self.request, 'versioning_scheme')
+ return serializers.Serializer()
+
+ scheme = versioning.QueryParameterVersioning
+ view = ExampleView.as_view(versioning_class=scheme)
+ view(request=request)