You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Non-ASCII characters in os.environ cause silent failures in test_httpservers #88813
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=<Date2021-07-15.20:13:07.907>created_at=<Date2021-07-15.17:50:20.422>labels= ['type-bug', '3.9', '3.10', '3.11']
title='Non-ASCII characters in os.environ cause silent failures in test_httpservers'updated_at=<Date2021-07-16.13:55:33.744>user='https://github.com/ambv'
#67826 introduced a new test for Accept: headers in CGI HTTP servers. This test serializes all of os.environ on the server side. For non-UTF8 locales this can fail for some Unicode characters found in environment variables.
This started failing this week on Azure Pipelines with their rollout of a new Windows 2019 image version that included a "BUILD_SOURCEVERSIONAUTHOR" env variable. For me specifically it includes a leading Unicode character so all my PRs started failing on Azure Pipelines Windows 2019 alone.
The result was truncated output from the CGI HTTP server, like:
Traceback (most recent call last):
File "D:\a\1\s\lib\test\test_httpservers.py", line 860, in test_acceptself.assertIn(expected.encode('ascii'), res.read())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^AssertionError: b"'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'" not found in b''
The root cause is that the CGI script in question (cgi_file6 in test_httpservers.py) is crashing on server-side reaching the print(repr(os.environ)) line. However, this exception isn't visible on the client side where the test is running. The only visible issue is truncated output.
I suggest adding ENSURE_UNICODE_WORKS=Łukasz to the testing env so that this never regresses.
New changeset 82b218f by Łukasz Langa in branch 'main': bpo-44647: Fix test_httpservers failing on Unicode characters in os.environ on Windows (GH-27161) 82b218f
New changeset 356bdff by Miss Islington (bot) in branch '3.10': bpo-44647: Fix test_httpservers failing on Unicode characters in os.environ on Windows (GH-27161) (bpo-27169) 356bdff
New changeset 95596d5 by Miss Islington (bot) in branch '3.9': bpo-44647: Fix test_httpservers failing on Unicode characters in os.environ on Windows (GH-27161) (bpo-27170) 95596d5
Activity
ambv commentedon Jul 15, 2021
#67826 introduced a new test for Accept: headers in CGI HTTP servers. This test serializes all of
os.environon the server side. For non-UTF8 locales this can fail for some Unicode characters found in environment variables.This started failing this week on Azure Pipelines with their rollout of a new Windows 2019 image version that included a "BUILD_SOURCEVERSIONAUTHOR" env variable. For me specifically it includes a leading Unicode character so all my PRs started failing on Azure Pipelines Windows 2019 alone.
The result was truncated output from the CGI HTTP server, like:
======================================================================
FAIL: test_accept (test.test_httpservers.CGIHTTPServerTestCase) [OrderedDict([('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8')])]
----------------------------------------------------------------------
The root cause is that the CGI script in question (
cgi_file6in test_httpservers.py) is crashing on server-side reaching theprint(repr(os.environ))line. However, this exception isn't visible on the client side where the test is running. The only visible issue is truncated output.I suggest adding ENSURE_UNICODE_WORKS=Łukasz to the testing env so that this never regresses.
ambv commentedon Jul 15, 2021
New changeset 82b218f by Łukasz Langa in branch 'main':
bpo-44647: Fix test_httpservers failing on Unicode characters in os.environ on Windows (GH-27161)
82b218f
ambv commentedon Jul 15, 2021
New changeset 356bdff by Miss Islington (bot) in branch '3.10':
bpo-44647: Fix test_httpservers failing on Unicode characters in os.environ on Windows (GH-27161) (bpo-27169)
356bdff
ambv commentedon Jul 15, 2021
New changeset 95596d5 by Miss Islington (bot) in branch '3.9':
bpo-44647: Fix test_httpservers failing on Unicode characters in os.environ on Windows (GH-27161) (bpo-27170)
95596d5
ambv commentedon Jul 16, 2021
New changeset 7915c96 by Łukasz Langa in branch 'main':
bpo-44647: Add a permanent Unicode-valued env var to regrtest (bpo-27187)
7915c96
ambv commentedon Jul 16, 2021
New changeset 93d36a5 by Miss Islington (bot) in branch '3.10':
bpo-44647: Add a permanent Unicode-valued env var to regrtest (GH-27187) (bpo-27191)
93d36a5
serhiy-storchaka commentedon Apr 25, 2022
It introduced a regression. See #91904.