linelog: port to Python 3
authorAugie Fackler <augie@google.com>
Wed, 01 Aug 2018 23:25:35 -0400
changeset 38809 57af5ee15b35
parent 38808 d99083996398
child 38810 4fe8d1f077b8
linelog: port to Python 3 Differential Revision: https://phab.mercurial-scm.org/D4051
contrib/python3-whitelist
mercurial/linelog.py
tests/test-linelog.py
--- a/contrib/python3-whitelist	Sat Jul 28 17:42:36 2018 -0700
+++ b/contrib/python3-whitelist	Wed Aug 01 23:25:35 2018 -0400
@@ -254,6 +254,7 @@
 test-largefiles.t
 test-lfs-largefiles.t
 test-lfs-pointer.py
+test-linelog.py
 test-linerange.py
 test-locate.t
 test-lock-badness.t
--- a/mercurial/linelog.py	Sat Jul 28 17:42:36 2018 -0700
+++ b/mercurial/linelog.py	Wed Aug 01 23:25:35 2018 -0400
@@ -98,7 +98,7 @@
         self._target = op2
 
     def __str__(self):
-        return 'JGE %d %d' % (self._cmprev, self._target)
+        return r'JGE %d %d' % (self._cmprev, self._target)
 
     def __eq__(self, other):
         return (type(self) == type(other)
@@ -122,7 +122,7 @@
         self._target = op2
 
     def __str__(self):
-        return 'JUMP %d' % (self._target)
+        return r'JUMP %d' % (self._target)
 
     def __eq__(self, other):
         return (type(self) == type(other)
@@ -144,7 +144,7 @@
             raise LineLogError("malformed EOF, op2 must be 0, got %d" % op2)
 
     def __str__(self):
-        return 'EOF'
+        return r'EOF'
 
     def __eq__(self, other):
         return type(self) == type(other)
@@ -163,7 +163,7 @@
         self._target = op2
 
     def __str__(self):
-        return 'JL %d %d' % (self._cmprev, self._target)
+        return r'JL %d %d' % (self._cmprev, self._target)
 
     def __eq__(self, other):
         return (type(self) == type(other)
@@ -188,7 +188,7 @@
         self._origlineno = op2
 
     def __str__(self):
-        return 'LINE %d %d' % (self._rev, self._origlineno)
+        return r'LINE %d %d' % (self._rev, self._origlineno)
 
     def __eq__(self, other):
         return (type(self) == type(other)
@@ -245,8 +245,8 @@
             hex(id(self)), self._maxrev, len(self._program))
 
     def debugstr(self):
-        fmt = '%%%dd %%s' % len(str(len(self._program)))
-        return '\n'.join(
+        fmt = r'%%%dd %%s' % len(str(len(self._program)))
+        return pycompat.sysstr('\n').join(
             fmt % (idx, i) for idx, i in enumerate(self._program[1:], 1))
 
     @classmethod
--- a/tests/test-linelog.py	Sat Jul 28 17:42:36 2018 -0700
+++ b/tests/test-linelog.py	Wed Aug 01 23:25:35 2018 -0400
@@ -41,12 +41,12 @@
         self.assertEqual(linelog.linelog.fromdata(enc), ll)
         # This encoding matches the encoding used by hg-experimental's
         # linelog file, or is supposed to if it doesn't.
-        self.assertEqual(enc, ('\x00\x00\x01\x90\x00\x00\x00\x06'
-                               '\x00\x00\x00\xa4\x00\x00\x00*'
-                               '\x00\x00\x00\x00\x00\x00\x00+'
-                               '\x00\x00\x00\x00\x00\x00\x00\x00'
-                               '\x00\x00\x00\xb1\x00\x00\x00-'
-                               '\x00\x00\x00\xba\x00\x00\x00/'))
+        self.assertEqual(enc, (b'\x00\x00\x01\x90\x00\x00\x00\x06'
+                               b'\x00\x00\x00\xa4\x00\x00\x00*'
+                               b'\x00\x00\x00\x00\x00\x00\x00+'
+                               b'\x00\x00\x00\x00\x00\x00\x00\x00'
+                               b'\x00\x00\x00\xb1\x00\x00\x00-'
+                               b'\x00\x00\x00\xba\x00\x00\x00/'))
 
     def testsimpleedits(self):
         ll = linelog.linelog()
@@ -94,21 +94,21 @@
     def testparseclinelogfile(self):
         # This data is what the replacements in testsimpleedits
         # produce when fed to the original linelog.c implementation.
-        data = ('\x00\x00\x00\x0c\x00\x00\x00\x0f'
-                '\x00\x00\x00\x00\x00\x00\x00\x02'
-                '\x00\x00\x00\x05\x00\x00\x00\x06'
-                '\x00\x00\x00\x06\x00\x00\x00\x00'
-                '\x00\x00\x00\x00\x00\x00\x00\x07'
-                '\x00\x00\x00\x06\x00\x00\x00\x02'
-                '\x00\x00\x00\x00\x00\x00\x00\x00'
-                '\x00\x00\x00\t\x00\x00\x00\t'
-                '\x00\x00\x00\x00\x00\x00\x00\x0c'
-                '\x00\x00\x00\x08\x00\x00\x00\x05'
-                '\x00\x00\x00\x06\x00\x00\x00\x01'
-                '\x00\x00\x00\x00\x00\x00\x00\x05'
-                '\x00\x00\x00\x0c\x00\x00\x00\x05'
-                '\x00\x00\x00\n\x00\x00\x00\x01'
-                '\x00\x00\x00\x00\x00\x00\x00\t')
+        data = (b'\x00\x00\x00\x0c\x00\x00\x00\x0f'
+                b'\x00\x00\x00\x00\x00\x00\x00\x02'
+                b'\x00\x00\x00\x05\x00\x00\x00\x06'
+                b'\x00\x00\x00\x06\x00\x00\x00\x00'
+                b'\x00\x00\x00\x00\x00\x00\x00\x07'
+                b'\x00\x00\x00\x06\x00\x00\x00\x02'
+                b'\x00\x00\x00\x00\x00\x00\x00\x00'
+                b'\x00\x00\x00\t\x00\x00\x00\t'
+                b'\x00\x00\x00\x00\x00\x00\x00\x0c'
+                b'\x00\x00\x00\x08\x00\x00\x00\x05'
+                b'\x00\x00\x00\x06\x00\x00\x00\x01'
+                b'\x00\x00\x00\x00\x00\x00\x00\x05'
+                b'\x00\x00\x00\x0c\x00\x00\x00\x05'
+                b'\x00\x00\x00\n\x00\x00\x00\x01'
+                b'\x00\x00\x00\x00\x00\x00\x00\t')
         llc = linelog.linelog.fromdata(data)
         self.assertEqual([(l.rev, l.linenum) for l in llc.annotate(1)],
                          [(1, 0),