#24500: Django runtests - 3 tests fail on windows due to encoding troubles
-------------------------------------+-------------------------------------
Reporter: pakal | Owner: nobody
Type: Bug | Status: new
Component: | Version: 1.7
Internationalization |
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by pakal):
Weird, I updated to python 2.7.9 and tried with cmd.exe or git bash, still
the same problem.
I continued investigating, problems occur when django tries to lookup
xgettext version.
In gettext_popen_wrapper(), the output of
django.core.management.utils.popen_wrapper is expected by django to be
utf8 bytes, on python2 :
{{{
if six.PY2:
stdout = stdout.decode('utf-8')
}}}
However, from what I see in the initial popen_wrapper(), there are no
reasons for stdout to be unicode on python2, only stderr gets converted,
and Popen (AFAIK) outputs bytes (in cp1252 encoding, in that case).
{{{
def popen_wrapper(args, os_err_exc_type=CommandError):
"""
Friendly wrapper around Popen.
Returns stdout output, stderr output and OS status code.
"""
print "USING ENCODING >>>>>", DEFAULT_LOCALE_ENCODING # outputs
"cp1252"
try:
p = Popen(args, shell=False, stdout=PIPE, stderr=PIPE,
close_fds=os.name != 'nt', universal_newlines=True)
except OSError as e:
strerror = force_text(e.strerror, DEFAULT_LOCALE_ENCODING,
strings_only=True)
six.reraise(os_err_exc_type, os_err_exc_type('Error executing %s:
%s' %
(args[0], strerror)), sys.exc_info()[2])
output, errors = p.communicate()
return (
output,
force_text(errors, DEFAULT_LOCALE_ENCODING, strings_only=True),
p.returncode
)
}}}
This is a mystery to me... could anybody check the intermediate values of
this "xgettext -V" stdout, as well as the system encodings
(locale.getdefaultlocale() and stuffs), on a machine which doesn't fail
these tests ?
--
Ticket URL: <https://code.djangoproject.com/ticket/24500#comment:3>
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/063.a62c670cfee4adba0fab2638994f2b0c%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.