On 13.05.2016 05:03, Branko Čibej wrote:
> On 13.05.2016 04:19,stefan2_at_apache.org wrote:
>> Author: stefan2
>> Date: Fri May 13 02:19:12 2016
>> New Revision: 1743591
>> Make our test runner locale independent in Python 3.
>> Running our test suite with autodavcheck will change the environment
>> such that text files default to ascii - causing some test scripts to
>> fail upon loading.
>> * build/run_tests.py
>> (TestHarness._run_py_test): Explicitly load our tests as UTF-8 when
>> supported. We can't load as binary here
>> because Windows tests would fail miserably.
>> Modified: subversion/trunk/build/run_tests.py
>> --- subversion/trunk/build/run_tests.py (original)
>> +++ subversion/trunk/build/run_tests.py Fri May 13 02:19:12 2016
>> @@ -809,8 +809,13 @@ class TestHarness:
>> def _run_py_test(self, progabs, progdir, progbase, test_nums, dot_count):
>> 'Run a python test, passing parameters as needed.'
>> - prog_mod = imp.load_module(progbase[:-3], open(progabs, 'r'), progabs,
>> - ('.py', 'U', imp.PY_SOURCE))
>> + if sys.version_info < (3, 0):
>> + prog_mod = imp.load_module(progbase[:-3], open(progabs, 'r'), progabs,
>> + ('.py', 'U', imp.PY_SOURCE))
>> + else:
>> + prog_mod = imp.load_module(progbase[:-3],
>> + open(progabs, 'r', encoding="utf-8"),
>> + progabs, ('.py', 'U', imp.PY_SOURCE))
>> print("\nError loading test (details in following traceback): " + progbase)
> See, that's what I was talking about in the other post: if you'd just
> used codecs.open() instead of open(), you wouldn't need the conditional
As it turns out, using codecs.open() would only work in Python 3.
In Python 2, imp.load_module() requires a plain file parameter
and anything wrapped etc. would not work.
Received on 2016-05-19 16:42:21 CEST