[Python-modules-commits] [dulwich] 07/14: Mork work on swift module python3 compatibility.

Jelmer Vernooij jelmer at moszumanska.debian.org
Tue Jul 5 23:27:29 UTC 2016


This is an automated email from the git hooks/post-receive script.

jelmer pushed a commit to branch master
in repository dulwich.

commit bbafb324bb98f628d9c94ade26e68df9e79dfa1e
Author: Jelmer Vernooij <jelmer at jelmer.uk>
Date:   Tue Jul 5 22:38:42 2016 +0000

    Mork work on swift module python3 compatibility.
---
 dulwich/contrib/swift.py      | 15 +++++++--------
 dulwich/contrib/test_swift.py | 42 +++++++++++++++++++++---------------------
 dulwich/refs.py               |  2 +-
 3 files changed, 29 insertions(+), 30 deletions(-)

diff --git a/dulwich/contrib/swift.py b/dulwich/contrib/swift.py
index 120664b..6b96897 100644
--- a/dulwich/contrib/swift.py
+++ b/dulwich/contrib/swift.py
@@ -404,7 +404,7 @@ class SwiftConnector(object):
             raise SwiftException('HEAD request failed with error code %s'
                                  % ret.status_code)
         resp_headers = {}
-        for header, value in ret.iteritems():
+        for header, value in ret.items():
             resp_headers[header.lower()] = value
         return resp_headers
 
@@ -509,7 +509,7 @@ class SwiftPackReader(object):
         self.pack_length = pack_length
         self.offset = 0
         self.base_offset = 0
-        self.buff = ''
+        self.buff = b''
         self.buff_length = self.scon.chunk_length
 
     def _read(self, more=False):
@@ -530,16 +530,14 @@ class SwiftPackReader(object):
         if self.base_offset + end > self.pack_length:
             data = self.buff[self.offset:]
             self.offset = end
-            return "".join(data)
-        try:
-            self.buff[end]
-        except IndexError:
+            return b"".join(data)
+        if end > len(self.buff):
             # Need to read more from swift
             self._read(more=True)
             return self.read(length)
         data = self.buff[self.offset:end]
         self.offset = end
-        return "".join(data)
+        return b"".join(data)
 
     def seek(self, offset):
         """Seek to a specified offset
@@ -810,7 +808,8 @@ class SwiftObjectStore(PackBasedObjectStore):
         # Move the pack in.
         entries.sort()
         pack_base_name = posixpath.join(
-            self.pack_dir, 'pack-' + iter_sha1(e[0] for e in entries))
+            self.pack_dir,
+            'pack-' + iter_sha1(e[0] for e in entries).decode(sys.getfilesystemencoding()))
         self.scon.put_object(pack_base_name + '.pack', f)
 
         # Write the index.
diff --git a/dulwich/contrib/test_swift.py b/dulwich/contrib/test_swift.py
index a277bbd..23f723e 100644
--- a/dulwich/contrib/test_swift.py
+++ b/dulwich/contrib/test_swift.py
@@ -30,6 +30,7 @@ try:
 except ImportError:
     from io import StringIO
 
+import sys
 from unittest import skipIf
 
 from dulwich.tests import (
@@ -79,6 +80,8 @@ except ImportError:
 
 skipmsg = "Required libraries are not installed (%r)" % missing_libs
 
+skipIfPY3 = skipIf(sys.version_info[0] == 3, "SWIFT module not yet ported to python3.")
+
 if not missing_libs:
     from dulwich.contrib import swift
 
@@ -124,11 +127,7 @@ class Response(object):
         return self.headers[key]
 
     def items(self):
-        return self.headers
-
-    def iteritems(self):
-        for k, v in self.headers.iteritems():
-            yield k, v
+        return self.headers.items()
 
     def read(self):
         return self.content
@@ -258,6 +257,7 @@ class FakeSwiftConnector(object):
 
 
 @skipIf(missing_libs, skipmsg)
+ at skipIfPY3
 class TestSwiftObjectStore(TestCase):
 
     def setUp(self):
@@ -475,8 +475,8 @@ class TestSwiftInfoRefsContainer(TestCase):
     def setUp(self):
         super(TestSwiftInfoRefsContainer, self).setUp()
         content = \
-            "22effb216e3a82f97da599b8885a6cadb488b4c5\trefs/heads/master\n" + \
-            "cca703b0e1399008b53a1a236d6b4584737649e4\trefs/heads/dev"
+            b"22effb216e3a82f97da599b8885a6cadb488b4c5\trefs/heads/master\n" + \
+            b"cca703b0e1399008b53a1a236d6b4584737649e4\trefs/heads/dev"
         self.store = {'fakerepo/info/refs': content}
         self.conf = swift.load_conf(file=StringIO(config_file %
                                                   def_config_file))
@@ -489,22 +489,22 @@ class TestSwiftInfoRefsContainer(TestCase):
         self.assertEqual(len(irc._refs), 0)
         self.fsc.store = self.store
         irc = swift.SwiftInfoRefsContainer(self.fsc, self.object_store)
-        self.assertIn('refs/heads/dev', irc.allkeys())
-        self.assertIn('refs/heads/master', irc.allkeys())
+        self.assertIn(b'refs/heads/dev', irc.allkeys())
+        self.assertIn(b'refs/heads/master', irc.allkeys())
 
     def test_set_if_equals(self):
         self.fsc.store = self.store
         irc = swift.SwiftInfoRefsContainer(self.fsc, self.object_store)
-        irc.set_if_equals('refs/heads/dev',
-                          "cca703b0e1399008b53a1a236d6b4584737649e4", '1'*40)
-        self.assertEqual(irc['refs/heads/dev'], '1'*40)
+        irc.set_if_equals(b'refs/heads/dev',
+                          b"cca703b0e1399008b53a1a236d6b4584737649e4", b'1'*40)
+        self.assertEqual(irc[b'refs/heads/dev'], b'1'*40)
 
     def test_remove_if_equals(self):
         self.fsc.store = self.store
         irc = swift.SwiftInfoRefsContainer(self.fsc, self.object_store)
-        irc.remove_if_equals('refs/heads/dev',
-                             "cca703b0e1399008b53a1a236d6b4584737649e4")
-        self.assertNotIn('refs/heads/dev', irc.allkeys())
+        irc.remove_if_equals(b'refs/heads/dev',
+                             b"cca703b0e1399008b53a1a236d6b4584737649e4")
+        self.assertNotIn(b'refs/heads/dev', irc.allkeys())
 
 
 @skipIf(missing_libs, skipmsg)
@@ -596,7 +596,7 @@ class TestSwiftConnector(TestCase):
     def test_put_object(self):
         with patch('geventhttpclient.HTTPClient.request',
                    lambda *args, **kwargs: Response()):
-            self.assertEqual(self.conn.put_object('a', BytesIO('content')),
+            self.assertEqual(self.conn.put_object('a', BytesIO(b'content')),
                              None)
 
     def test_put_object_fails(self):
@@ -604,15 +604,15 @@ class TestSwiftConnector(TestCase):
                    lambda *args, **kwargs: Response(status=400)):
             self.assertRaises(swift.SwiftException,
                               lambda: self.conn.put_object(
-                                  'a', BytesIO('content')))
+                                  'a', BytesIO(b'content')))
 
     def test_get_object(self):
         with patch('geventhttpclient.HTTPClient.request',
-                   lambda *args, **kwargs: Response(content='content')):
-            self.assertEqual(self.conn.get_object('a').read(), 'content')
+                   lambda *args, **kwargs: Response(content=b'content')):
+            self.assertEqual(self.conn.get_object('a').read(), b'content')
         with patch('geventhttpclient.HTTPClient.request',
-                   lambda *args, **kwargs: Response(content='content')):
-            self.assertEqual(self.conn.get_object('a', range='0-6'), 'content')
+                   lambda *args, **kwargs: Response(content=b'content')):
+            self.assertEqual(self.conn.get_object('a', range='0-6'), b'content')
 
     def test_get_object_fails(self):
         with patch('geventhttpclient.HTTPClient.request',
diff --git a/dulwich/refs.py b/dulwich/refs.py
index ce3670e..73fde59 100644
--- a/dulwich/refs.py
+++ b/dulwich/refs.py
@@ -756,7 +756,7 @@ def write_packed_refs(f, packed_refs, peeled_refs=None):
 def read_info_refs(f):
     ret = {}
     for l in f.readlines():
-        (sha, name) = l.rstrip("\r\n").split("\t", 1)
+        (sha, name) = l.rstrip(b"\r\n").split(b"\t", 1)
         ret[name] = sha
     return ret
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/dulwich.git



More information about the Python-modules-commits mailing list