#31378: django.test.utils compare_xml assumes string, errors on bytes
---------------------------------------------+------------------------
               Reporter:  Joe Germuska       |          Owner:  nobody
                   Type:  Uncategorized      |         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                  |
---------------------------------------------+------------------------
 In writing a test case, I found that passing the test client's
 `response.content` object into `TestCase.assertXMLEqual()` resulted in
 this error: `a bytes-like object is required, not 'str'`

 In tracing the code, this originates from
 
[https://github.com/django/django/blob/ba4389a36b5fb1afce0cddb4e28233138b6612b7/django/test/utils.py#L586-L587
 django.test.utils.compare_xml], where string literals `\\n` and `\n` are
 passed to `replace()` even though the types of `want` and `got`
 (particularly `got`) may be `bytes` and not `str`.

 The workaround is to decode the response content
 (`response.content.decode('utf-8')`) and to pass the assertion comparison
 ("want") also as a string, but if this method is going to be used in the
 testing framework, it seems that it should tolerate directly passing in
 `response.content`, even if that's a `bytes`.

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

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/054.45fc5a5c07073212b2a50156b64d9686%40djangoproject.com.

Reply via email to