[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