tests: fix up test-run-tests failures on Python 3.6
authorAugie Fackler <augie@google.com>
Tue, 08 Aug 2017 15:07:05 -0400
changeset 33710 2e43c5cd57a7
parent 33709 511d6ae462f3
child 33711 373ca5103ba8
tests: fix up test-run-tests failures on Python 3.6 Some of the recent work on run-tests.py didn't work on Python 3. This fixes the regressions. Differential Revision: https://phab.mercurial-scm.org/D270
tests/run-tests.py
tests/test-run-tests.py
--- a/tests/run-tests.py	Wed Aug 02 11:32:25 2017 +0200
+++ b/tests/run-tests.py	Tue Aug 08 15:07:05 2017 -0400
@@ -105,9 +105,13 @@
     PYTHON3 = True
     xrange = range # we use xrange in one place, and we'd rather not use range
     def _bytespath(p):
+        if p is None:
+            return p
         return p.encode('utf-8')
 
     def _strpath(p):
+        if p is None:
+            return p
         return p.decode('utf-8')
 
 elif sys.version_info >= (3, 0, 0):
@@ -1383,7 +1387,8 @@
                         else:
                             m = optline.match(el)
                             if m:
-                                conditions = [c for c in m.group(2).split(' ')]
+                                conditions = [
+                                    c for c in m.group(2).split(b' ')]
 
                                 if not self._hghave(conditions)[0]:
                                     optional.append(i)
@@ -1497,7 +1502,7 @@
             else:
                 m = optline.match(el)
                 if m:
-                    conditions = [c for c in m.group(2).split(' ')]
+                    conditions = [c for c in m.group(2).split(b' ')]
 
                     el = m.group(1) + b"\n"
                     if not self._hghave(conditions)[0]:
--- a/tests/test-run-tests.py	Wed Aug 02 11:32:25 2017 +0200
+++ b/tests/test-run-tests.py	Tue Aug 08 15:07:05 2017 -0400
@@ -39,7 +39,7 @@
             and output.endswith(b'\n')), 'missing newline'
     assert not re.search(br'[^ \w\\/\r\n()*?]', expected + output), \
            b'single backslash or unknown char'
-    test = run_tests.TTest('test-run-test.t', '.', '.')
+    test = run_tests.TTest(b'test-run-test.t', b'.', b'.')
     match = test.linematch(expected, output)
     if isinstance(match, str):
         return 'special: ' + match