mhammond / pywin32

Python for Windows (pywin32) Extensions
4.92k stars 786 forks source link

pywin32_testall.py timezone tests fails in non American regional settings machine #2080

Open csrabak opened 1 year ago

csrabak commented 1 year ago

The tests are expected to go green, but fail due the locale (and time zone) are different from the designed for the tests?

For example:

File "C:\Python\Python311\Lib\site-packages\win32\lib\win32timezone.py", line 22, in win32timezone Failed example: assert 'Mountain Standard Time' in win32timezone.TimeZoneInfo.get_sorted_time_zone_names() Exception raised: Traceback (most recent call last): File "C:\Python\Python311\Lib\doctest.py", line 1351, in __run exec(compile(example.source, filename, "single", File "<doctest win32timezone[1]>", line 1, in assert 'Mountain Standard Time' in win32timezone.TimeZoneInfo.get_sorted_time_zone_names() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError


File "C:\Python\Python311\Lib\site-packages\win32\lib\win32timezone.py", line 58, in win32timezone Failed example: str(est.displayName) Expected: '(UTC-05:00) Eastern Time (US & Canada)' Got: '(UTC-05:00) Hora Oriental (EUA e Canadá)'


C:\Python\Python311>py Scripts\pywin32_testall.py

mhammond commented 1 year ago

It works for me in Australia, so I suspect the problem is the locale and not the specific timezone.

csrabak commented 1 year ago

I undertand your comment as the locale triggers the problem, which I concur plainly, as the expression of the assertion is in English and the returned one is in Portuguese.

I did not dig into the source code to understand, but for me is a puzzle, why would the script get the timezone in English and collect it in the locale language. . .

I surmize that the script changes the timezone for the sake of the test, as when the run (above) generated the results, the machine wasn't in UTC-5 but UTC-3.

Perhaps the test should ascertain the locale (or language for the collection of the string) be always English?

HTH