aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_generics.py
diff options
context:
space:
mode:
authorTom Christie2014-09-24 09:03:41 +0100
committerTom Christie2014-09-24 09:03:41 +0100
commit411511622d163ad81720651869b80dc9de526d65 (patch)
treee578c0a615781b3c33bf14044d5824eadb50b834 /tests/test_generics.py
parent4ffae7c0e959e42fa2dde830ac144e94ee8aae71 (diff)
parent90139b3efc7da7a2c396882b6905291269387ace (diff)
downloaddjango-rest-framework-411511622d163ad81720651869b80dc9de526d65.tar.bz2
Merge pull request #1900 from jpadilla/pr_1507
Correctly propagate cloned_request for OPTIONS
Diffstat (limited to 'tests/test_generics.py')
-rw-r--r--tests/test_generics.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/test_generics.py b/tests/test_generics.py
index e9f5bebd..97116349 100644
--- a/tests/test_generics.py
+++ b/tests/test_generics.py
@@ -681,3 +681,42 @@ class TestFilterBackendAppliedToViews(TestCase):
response = view(request).render()
self.assertContains(response, 'field_b')
self.assertNotContains(response, 'field_a')
+
+ def test_options_with_dynamic_serializer(self):
+ """
+ Ensure that OPTIONS returns correct POST json schema:
+ DynamicSerializer with single field 'field_b'
+ """
+ request = factory.options('/')
+ view = DynamicSerializerView.as_view()
+
+ with self.assertNumQueries(0):
+ response = view(request).render()
+
+ expected = {
+ 'name': 'Dynamic Serializer',
+ 'description': '',
+ 'renders': [
+ 'text/html',
+ 'application/json'
+ ],
+ 'parses': [
+ 'application/json',
+ 'application/x-www-form-urlencoded',
+ 'multipart/form-data'
+ ],
+ 'actions': {
+ 'POST': {
+ 'field_b': {
+ 'type': 'string',
+ 'required': True,
+ 'read_only': False,
+ 'label': 'field b',
+ 'max_length': 100
+ }
+ }
+ }
+ }
+
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
+ self.assertEqual(response.data, expected)