◐ Shell
clean mode source ↗

Issue 32139: android: locale is modified by test_strftime

Test results:
------------
1 test altered the execution environment:
  test_strftime

    Warning -- locale was modified by test_strftime
      Before: [(6, 'C.UTF-8'), (3, 'C.UTF-8'), (0, 'C.UTF-8'), (5, 'C.UTF-8'), (4, 'C.UTF-8'), (1, 'C.UTF-8'), (2, 'C.UTF-8')]
      After:  [(6, 'C'), (3, 'C'), (0, 'C'), (5, 'C'), (4, 'C'), (1, 'C'), (2, 'C')] 
    test_strftime failed (env changed)


It seems that the tests indeed modify the environment. To understand the above results one must be aware that the implementation of setlocale() is broken on Android:

generic_x86_64:/data/local/tmp/python $ python
Python 3.7.0a2+ (heads/bpo-30386:ebb493ac4e, Nov 25 2017, 18:58:20) 
[Clang 3.8.275480 ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from locale import setlocale, LC_TIME, LC_ALL
>>> setlocale(LC_TIME)
'C.UTF-8'
>>> setlocale(LC_ALL)
'C.UTF-8'
>>> setlocale(LC_TIME, 'C')
'C'
>>> setlocale(LC_TIME)
'C'
>>> setlocale(LC_ALL)
'C'
>>> setlocale(LC_TIME, 'C.UTF-8')
'C.UTF-8'
>>> setlocale(LC_ALL)
'C.UTF-8'