subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stef...@apache.org
Subject svn commit: r1743167 - /subversion/trunk/subversion/tests/cmdline/svntest/verify.py
Date Tue, 10 May 2016 12:42:31 GMT
Author: stefan2
Date: Tue May 10 12:42:31 2016
New Revision: 1743167

URL: http://svn.apache.org/viewvc?rev=1743167&view=rev
Log:
Follow-up on r1742950:
More adjustment of the test framework to work with binary dumps in Python 3.

* subversion/tests/cmdline/svntest/verify.py
  (DumpParser.parse_copy_md5,
   DumpParser.parse_copy_sha1,
   DumpParser.parse_text_md5,
   DumpParser.parse_text_sha1,
   DumpParser.parse_text_delta,
   DumpParser.parse_text_delta_base_md5,
   DumpParser.parse_text_delta_base_sha1,
   DumpParser.parse_text_length): To operate on binary data, regex must be
                                  binary, too.
  (DumpParser.get_props): Same.  Also return the props as binary key to
                          binary value hashes.
  (DumpParser.get_content): Return a bytes string.
  (DumpParser.parse_one_node): Use binary regex but keep our self-defined
                               keys ordinary strings.  They are slightly
                               easier to use and save use some code churn.

Modified:
    subversion/trunk/subversion/tests/cmdline/svntest/verify.py

Modified: subversion/trunk/subversion/tests/cmdline/svntest/verify.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/verify.py?rev=1743167&r1=1743166&r2=1743167&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/svntest/verify.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svntest/verify.py Tue May 10 12:42:31 2016
@@ -552,32 +552,32 @@ class DumpParser:
     return path
 
   def parse_copy_md5(self):
-    return self.parse_line('Text-copy-source-md5: ([0-9a-z]+)$', required=False)
+    return self.parse_line(b'Text-copy-source-md5: ([0-9a-z]+)$', required=False)
 
   def parse_copy_sha1(self):
-    return self.parse_line('Text-copy-source-sha1: ([0-9a-z]+)$', required=False)
+    return self.parse_line(b'Text-copy-source-sha1: ([0-9a-z]+)$', required=False)
 
   def parse_text_md5(self):
-    return self.parse_line('Text-content-md5: ([0-9a-z]+)$', required=False)
+    return self.parse_line(b'Text-content-md5: ([0-9a-z]+)$', required=False)
 
   def parse_text_sha1(self):
-    return self.parse_line('Text-content-sha1: ([0-9a-z]+)$', required=False)
+    return self.parse_line(b'Text-content-sha1: ([0-9a-z]+)$', required=False)
 
   def parse_text_delta(self):
-    return self.parse_line('Text-delta: (false|true)$', required=False)
+    return self.parse_line(b'Text-delta: (false|true)$', required=False)
 
   def parse_text_delta_base_md5(self):
-    return self.parse_line('Text-delta-base-md5: ([0-9a-f]+)$', required=False)
+    return self.parse_line(b'Text-delta-base-md5: ([0-9a-f]+)$', required=False)
 
   def parse_text_delta_base_sha1(self):
-    return self.parse_line('Text-delta-base-sha1: ([0-9a-f]+)$', required=False)
+    return self.parse_line(b'Text-delta-base-sha1: ([0-9a-f]+)$', required=False)
 
   def parse_text_length(self):
-    return self.parse_line('Text-content-length: ([0-9]+)$', required=False)
+    return self.parse_line(b'Text-content-length: ([0-9]+)$', required=False)
 
   def get_props(self):
     props = []
-    while not re.match('PROPS-END$', self.lines[self.current]):
+    while not re.match(b'PROPS-END$', self.lines[self.current]):
       props.append(self.lines[self.current])
       self.current += 1
     self.current += 1
@@ -593,7 +593,7 @@ class DumpParser:
         curprop[0] += 1
 
         # key / value
-        key = ''
+        key = b''
         while len(key) != klen + 1:
           key += props[curprop[0]]
           curprop[0] += 1
@@ -601,10 +601,10 @@ class DumpParser:
 
         return key
 
-      if props[curprop[0]].startswith('K'):
+      if props[curprop[0]].startswith(b'K'):
         key = read_key_or_value(curprop)
         value = read_key_or_value(curprop)
-      elif props[curprop[0]].startswith('D'):
+      elif props[curprop[0]].startswith(b'D'):
         key = read_key_or_value(curprop)
         value = None
       else:
@@ -614,7 +614,7 @@ class DumpParser:
     return prophash
 
   def get_content(self, length):
-    content = ''
+    content = b''
     while len(content) < length:
       content += self.lines[self.current]
       self.current += 1
@@ -637,22 +637,22 @@ class DumpParser:
     headers = dict(headers_list)
 
     # Content-length must be last, if present
-    if 'Content-length' in headers and headers_list[-1][0] != 'Content-length':
+    if b'Content-length' in headers and headers_list[-1][0] != b'Content-length':
       raise SVNDumpParseError("'Content-length' header is not last, "
                               "in header block ending at line %d"
                               % (self.current,))
 
     # parse the remaining optional headers and store in specific keys in NODE
     for key, header, regex in [
-        ('copyfrom_rev',    'Node-copyfrom-rev',    '([0-9]+)$'),
-        ('copyfrom_path',   'Node-copyfrom-path',   '(.*)$'),
-        ('copy_md5',        'Text-copy-source-md5', '([0-9a-z]+)$'),
-        ('copy_sha1',       'Text-copy-source-sha1','([0-9a-z]+)$'),
-        ('prop_length',     'Prop-content-length',  '([0-9]+)$'),
-        ('text_length',     'Text-content-length',  '([0-9]+)$'),
-        ('text_md5',        'Text-content-md5',     '([0-9a-z]+)$'),
-        ('text_sha1',       'Text-content-sha1',    '([0-9a-z]+)$'),
-        ('content_length',  'Content-length',       '([0-9]+)$'),
+        ('copyfrom_rev',    b'Node-copyfrom-rev',    b'([0-9]+)$'),
+        ('copyfrom_path',   b'Node-copyfrom-path',   b'(.*)$'),
+        ('copy_md5',        b'Text-copy-source-md5', b'([0-9a-z]+)$'),
+        ('copy_sha1',       b'Text-copy-source-sha1',b'([0-9a-z]+)$'),
+        ('prop_length',     b'Prop-content-length',  b'([0-9]+)$'),
+        ('text_length',     b'Text-content-length',  b'([0-9]+)$'),
+        ('text_md5',        b'Text-content-md5',     b'([0-9a-z]+)$'),
+        ('text_sha1',       b'Text-content-sha1',    b'([0-9a-z]+)$'),
+        ('content_length',  b'Content-length',       b'([0-9]+)$'),
         ]:
       if not header in headers:
         node[key] = None



Mime
View raw message