summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarnanel Thurman <thomas@thurman.org.uk>2018-08-15 15:27:45 +0100
committerTim Graham <timograham@gmail.com>2018-08-15 10:27:45 -0400
commit7cc52250f06c2a4769badbab1d7ee01f8e3cb46a (patch)
treea97e90eac363527fb4af692cda26a6478944f1e1
parent7eb556a6c2b2ac9313158f8b812eebea02a43f20 (diff)
Fixed #29662 -- Allowed test client to accept structured suffix JSON content types.
-rw-r--r--django/test/client.py4
-rw-r--r--docs/releases/2.1.1.txt3
-rw-r--r--tests/test_client_regress/tests.py4
3 files changed, 8 insertions, 3 deletions
diff --git a/django/test/client.py b/django/test/client.py
index 386762e7aa..4f826841cc 100644
--- a/django/test/client.py
+++ b/django/test/client.py
@@ -34,8 +34,8 @@ __all__ = ('Client', 'RedirectCycleError', 'RequestFactory', 'encode_file', 'enc
BOUNDARY = 'BoUnDaRyStRiNg'
MULTIPART_CONTENT = 'multipart/form-data; boundary=%s' % BOUNDARY
CONTENT_TYPE_RE = re.compile(r'.*; charset=([\w\d-]+);?')
-# JSON Vendor Tree spec: https://tools.ietf.org/html/rfc6838#section-3.2
-JSON_CONTENT_TYPE_RE = re.compile(r'^application\/(vnd\..+\+)?json')
+# Structured suffix spec: https://tools.ietf.org/html/rfc6838#section-4.2.8
+JSON_CONTENT_TYPE_RE = re.compile(r'^application\/(.+\+)?json')
class RedirectCycleError(Exception):
diff --git a/docs/releases/2.1.1.txt b/docs/releases/2.1.1.txt
index ca424f40df..2a160642a5 100644
--- a/docs/releases/2.1.1.txt
+++ b/docs/releases/2.1.1.txt
@@ -32,3 +32,6 @@ Bugfixes
* Fixed a regression where a ``related_query_name`` reverse accessor wasn't set
up when a ``GenericRelation`` is declared on an abstract base model
(:ticket:`29653`).
+
+* Fixed the test client's JSON serialization of a request data dictionary for
+ structured content type suffixes (:ticket:`29662`).
diff --git a/tests/test_client_regress/tests.py b/tests/test_client_regress/tests.py
index 7c41fa168e..568317ec26 100644
--- a/tests/test_client_regress/tests.py
+++ b/tests/test_client_regress/tests.py
@@ -1204,11 +1204,13 @@ class RequestMethodStringDataTests(SimpleTestCase):
response = self.client.get('/json_response/')
self.assertEqual(response.json(), {'key': 'value'})
- def test_json_vendor(self):
+ def test_json_structured_suffixes(self):
valid_types = (
'application/vnd.api+json',
'application/vnd.api.foo+json',
'application/json; charset=utf-8',
+ 'application/activity+json',
+ 'application/activity+json; charset=utf-8',
)
for content_type in valid_types:
response = self.client.get('/json_response/', {'content_type': content_type})