[Django] #30550: TestClient's response.json() should decode content using the response charset

3 views
Skip to first unread message

Django

unread,
Jun 6, 2019, 8:53:58 PM6/6/19
to django-...@googlegroups.com
#30550: TestClient's response.json() should decode content using the response
charset
---------------------------------------------+------------------------
Reporter: Jon Dufresne | Owner: nobody
Type: Bug | Status: new
Component: Testing framework | Version: master
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
---------------------------------------------+------------------------
Right now, response.json() always decodes using utf-8.

https://github.com/django/django/blob/8ba20d9071e9e1b8f2c81d4df977db4278342085/django/test/client.py#L646-L654

{{{
response._json = json.loads(response.content.decode(), **extra)
}}}

While this is frequently correct, the response may be any encoding. If it
is a non-UTF-8 encoding, the content should be decoded as such.

--
Ticket URL: <https://code.djangoproject.com/ticket/30550>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Jun 6, 2019, 8:55:35 PM6/6/19
to django-...@googlegroups.com
#30550: TestClient's response.json() should decode content using the response
charset
-----------------------------------+--------------------------------------

Reporter: Jon Dufresne | Owner: nobody
Type: Bug | Status: new
Component: Testing framework | Version: master
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-----------------------------------+--------------------------------------
Changes (by Jon Dufresne):

* has_patch: 0 => 1


Comment:

[https://github.com/django/django/pull/11449 PR]

--
Ticket URL: <https://code.djangoproject.com/ticket/30550#comment:1>

Django

unread,
Jun 6, 2019, 11:59:31 PM6/6/19
to django-...@googlegroups.com
#30550: TestClient's response.json() should decode content using the response
charset.
-------------------------------------+-------------------------------------
Reporter: Jon Dufresne | Owner: Jon
| Dufresne
Type: Bug | Status: assigned

Component: Testing framework | Version: master
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by felixxm):

* owner: nobody => Jon Dufresne
* status: new => assigned
* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/30550#comment:2>

Django

unread,
Jun 7, 2019, 12:40:49 AM6/7/19
to django-...@googlegroups.com
#30550: TestClient's response.json() should decode content using the response
charset.
-------------------------------------+-------------------------------------
Reporter: Jon Dufresne | Owner: Jon
| Dufresne
Type: Bug | Status: closed

Component: Testing framework | Version: master
Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak <felisiak.mariusz@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"d6ea4898c44f75a25bc0b7a60b54fd6dddc69eb5" d6ea4898]:
{{{
#!CommitTicketReference repository=""
revision="d6ea4898c44f75a25bc0b7a60b54fd6dddc69eb5"
Fixed #30550 -- Fixed decoding of non-UTF-8 bytes objects in
response.json().
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/30550#comment:3>

Reply all
Reply to author
Forward
0 new messages