diff options
| author | Tom Christie | 2014-09-24 09:03:41 +0100 |
|---|---|---|
| committer | Tom Christie | 2014-09-24 09:03:41 +0100 |
| commit | 411511622d163ad81720651869b80dc9de526d65 (patch) | |
| tree | e578c0a615781b3c33bf14044d5824eadb50b834 /tests | |
| parent | 4ffae7c0e959e42fa2dde830ac144e94ee8aae71 (diff) | |
| parent | 90139b3efc7da7a2c396882b6905291269387ace (diff) | |
| download | django-rest-framework-411511622d163ad81720651869b80dc9de526d65.tar.bz2 | |
Merge pull request #1900 from jpadilla/pr_1507
Correctly propagate cloned_request for OPTIONS
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_generics.py | 39 |
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) |
