D4051: linelog: port to Python 3

durin42 (Augie Fackler) phabricator at mercurial-scm.org
Thu Aug 2 03:32:13 UTC 2018


durin42 created this revision.
Herald added a reviewer: pulkit.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4051

AFFECTED FILES
  contrib/python3-whitelist
  mercurial/linelog.py
  tests/test-linelog.py

CHANGE DETAILS

diff --git a/tests/test-linelog.py b/tests/test-linelog.py
--- a/tests/test-linelog.py
+++ b/tests/test-linelog.py
@@ -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),
diff --git a/mercurial/linelog.py b/mercurial/linelog.py
--- a/mercurial/linelog.py
+++ b/mercurial/linelog.py
@@ -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
diff --git a/contrib/python3-whitelist b/contrib/python3-whitelist
--- a/contrib/python3-whitelist
+++ b/contrib/python3-whitelist
@@ -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



To: durin42, pulkit, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list