|
@@ -59,7 +59,6 @@ from dulwich.repo import (
|
|
|
from dulwich.tests import skipIf
|
|
|
from dulwich.tests.utils import (
|
|
|
open_repo,
|
|
|
- skipIfPY3,
|
|
|
)
|
|
|
|
|
|
|
|
@@ -76,7 +75,6 @@ class DummyClient(TraditionalGitClient):
|
|
|
|
|
|
|
|
|
# TODO(durin42): add unit-level tests of GitClient
|
|
|
-@skipIfPY3
|
|
|
class GitClientTests(TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
@@ -87,63 +85,63 @@ class GitClientTests(TestCase):
|
|
|
self.rout.write)
|
|
|
|
|
|
def test_caps(self):
|
|
|
- self.assertEqual(set(['multi_ack', 'side-band-64k', 'ofs-delta',
|
|
|
- 'thin-pack', 'multi_ack_detailed']),
|
|
|
+ self.assertEqual(set([b'multi_ack', b'side-band-64k', b'ofs-delta',
|
|
|
+ b'thin-pack', b'multi_ack_detailed']),
|
|
|
set(self.client._fetch_capabilities))
|
|
|
- self.assertEqual(set(['ofs-delta', 'report-status', 'side-band-64k']),
|
|
|
+ self.assertEqual(set([b'ofs-delta', b'report-status', b'side-band-64k']),
|
|
|
set(self.client._send_capabilities))
|
|
|
|
|
|
def test_archive_ack(self):
|
|
|
self.rin.write(
|
|
|
- '0009NACK\n'
|
|
|
- '0000')
|
|
|
+ b'0009NACK\n'
|
|
|
+ b'0000')
|
|
|
self.rin.seek(0)
|
|
|
- self.client.archive('bla', 'HEAD', None, None)
|
|
|
- self.assertEqual(self.rout.getvalue(), '0011argument HEAD0000')
|
|
|
+ self.client.archive(b'bla', b'HEAD', None, None)
|
|
|
+ self.assertEqual(self.rout.getvalue(), b'0011argument HEAD0000')
|
|
|
|
|
|
def test_fetch_empty(self):
|
|
|
- self.rin.write('0000')
|
|
|
+ self.rin.write(b'0000')
|
|
|
self.rin.seek(0)
|
|
|
- self.client.fetch_pack('/', lambda heads: [], None, None)
|
|
|
+ self.client.fetch_pack(b'/', lambda heads: [], None, None)
|
|
|
|
|
|
def test_fetch_pack_none(self):
|
|
|
self.rin.write(
|
|
|
- '008855dcc6bf963f922e1ed5c4bbaaefcfacef57b1d7 HEAD.multi_ack '
|
|
|
- 'thin-pack side-band side-band-64k ofs-delta shallow no-progress '
|
|
|
- 'include-tag\n'
|
|
|
- '0000')
|
|
|
+ b'008855dcc6bf963f922e1ed5c4bbaaefcfacef57b1d7 HEAD.multi_ack '
|
|
|
+ b'thin-pack side-band side-band-64k ofs-delta shallow no-progress '
|
|
|
+ b'include-tag\n'
|
|
|
+ b'0000')
|
|
|
self.rin.seek(0)
|
|
|
- self.client.fetch_pack('bla', lambda heads: [], None, None, None)
|
|
|
- self.assertEqual(self.rout.getvalue(), '0000')
|
|
|
+ self.client.fetch_pack(b'bla', lambda heads: [], None, None, None)
|
|
|
+ self.assertEqual(self.rout.getvalue(), b'0000')
|
|
|
|
|
|
def test_send_pack_no_sideband64k_with_update_ref_error(self):
|
|
|
# No side-bank-64k reported by server shouldn't try to parse
|
|
|
# side band data
|
|
|
- pkts = ['55dcc6bf963f922e1ed5c4bbaaefcfacef57b1d7 capabilities^{}'
|
|
|
- '\x00 report-status delete-refs ofs-delta\n',
|
|
|
- '',
|
|
|
- "unpack ok",
|
|
|
- "ng refs/foo/bar pre-receive hook declined",
|
|
|
- '']
|
|
|
+ pkts = [b'55dcc6bf963f922e1ed5c4bbaaefcfacef57b1d7 capabilities^{}'
|
|
|
+ b'\x00 report-status delete-refs ofs-delta\n',
|
|
|
+ b'',
|
|
|
+ b"unpack ok",
|
|
|
+ b"ng refs/foo/bar pre-receive hook declined",
|
|
|
+ b'']
|
|
|
for pkt in pkts:
|
|
|
- if pkt == '':
|
|
|
- self.rin.write("0000")
|
|
|
+ if pkt == b'':
|
|
|
+ self.rin.write(b"0000")
|
|
|
else:
|
|
|
- self.rin.write("%04x%s" % (len(pkt)+4, pkt))
|
|
|
+ self.rin.write(("%04x" % (len(pkt)+4)).encode('ascii') + pkt)
|
|
|
self.rin.seek(0)
|
|
|
|
|
|
tree = Tree()
|
|
|
commit = Commit()
|
|
|
commit.tree = tree
|
|
|
commit.parents = []
|
|
|
- commit.author = commit.committer = 'test user'
|
|
|
+ commit.author = commit.committer = b'test user'
|
|
|
commit.commit_time = commit.author_time = 1174773719
|
|
|
commit.commit_timezone = commit.author_timezone = 0
|
|
|
- commit.encoding = 'UTF-8'
|
|
|
- commit.message = 'test message'
|
|
|
+ commit.encoding = b'UTF-8'
|
|
|
+ commit.message = b'test message'
|
|
|
|
|
|
def determine_wants(refs):
|
|
|
- return {'refs/foo/bar': commit.id, }
|
|
|
+ return {b'refs/foo/bar': commit.id, }
|
|
|
|
|
|
def generate_pack_contents(have, want):
|
|
|
return [(commit, None), (tree, ''), ]
|
|
@@ -154,62 +152,62 @@ class GitClientTests(TestCase):
|
|
|
|
|
|
def test_send_pack_none(self):
|
|
|
self.rin.write(
|
|
|
- '0078310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
- 'refs/heads/master\x00 report-status delete-refs '
|
|
|
- 'side-band-64k quiet ofs-delta\n'
|
|
|
- '0000')
|
|
|
+ b'0078310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
+ b'refs/heads/master\x00 report-status delete-refs '
|
|
|
+ b'side-band-64k quiet ofs-delta\n'
|
|
|
+ b'0000')
|
|
|
self.rin.seek(0)
|
|
|
|
|
|
def determine_wants(refs):
|
|
|
return {
|
|
|
- 'refs/heads/master': '310ca9477129b8586fa2afc779c1f57cf64bba6c'
|
|
|
+ b'refs/heads/master': b'310ca9477129b8586fa2afc779c1f57cf64bba6c'
|
|
|
}
|
|
|
|
|
|
def generate_pack_contents(have, want):
|
|
|
return {}
|
|
|
|
|
|
- self.client.send_pack('/', determine_wants, generate_pack_contents)
|
|
|
- self.assertEqual(self.rout.getvalue(), '0000')
|
|
|
+ self.client.send_pack(b'/', determine_wants, generate_pack_contents)
|
|
|
+ self.assertEqual(self.rout.getvalue(), b'0000')
|
|
|
|
|
|
def test_send_pack_delete_only(self):
|
|
|
self.rin.write(
|
|
|
- '0063310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
- 'refs/heads/master\x00report-status delete-refs ofs-delta\n'
|
|
|
- '0000000eunpack ok\n'
|
|
|
- '0019ok refs/heads/master\n'
|
|
|
- '0000')
|
|
|
+ b'0063310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
+ b'refs/heads/master\x00report-status delete-refs ofs-delta\n'
|
|
|
+ b'0000000eunpack ok\n'
|
|
|
+ b'0019ok refs/heads/master\n'
|
|
|
+ b'0000')
|
|
|
self.rin.seek(0)
|
|
|
|
|
|
def determine_wants(refs):
|
|
|
- return {'refs/heads/master': '0' * 40}
|
|
|
+ return {b'refs/heads/master': b'0' * 40}
|
|
|
|
|
|
def generate_pack_contents(have, want):
|
|
|
return {}
|
|
|
|
|
|
- self.client.send_pack('/', determine_wants, generate_pack_contents)
|
|
|
+ self.client.send_pack(b'/', determine_wants, generate_pack_contents)
|
|
|
self.assertIn(
|
|
|
self.rout.getvalue(),
|
|
|
- ['007f310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
- '0000000000000000000000000000000000000000 '
|
|
|
- 'refs/heads/master\x00report-status ofs-delta0000',
|
|
|
- '007f310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
- '0000000000000000000000000000000000000000 '
|
|
|
- 'refs/heads/master\x00ofs-delta report-status0000'])
|
|
|
+ [b'007f310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
+ b'0000000000000000000000000000000000000000 '
|
|
|
+ b'refs/heads/master\x00report-status ofs-delta0000',
|
|
|
+ b'007f310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
+ b'0000000000000000000000000000000000000000 '
|
|
|
+ b'refs/heads/master\x00ofs-delta report-status0000'])
|
|
|
|
|
|
def test_send_pack_new_ref_only(self):
|
|
|
self.rin.write(
|
|
|
- '0063310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
- 'refs/heads/master\x00report-status delete-refs ofs-delta\n'
|
|
|
- '0000000eunpack ok\n'
|
|
|
- '0019ok refs/heads/blah12\n'
|
|
|
- '0000')
|
|
|
+ b'0063310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
+ b'refs/heads/master\x00report-status delete-refs ofs-delta\n'
|
|
|
+ b'0000000eunpack ok\n'
|
|
|
+ b'0019ok refs/heads/blah12\n'
|
|
|
+ b'0000')
|
|
|
self.rin.seek(0)
|
|
|
|
|
|
def determine_wants(refs):
|
|
|
return {
|
|
|
- 'refs/heads/blah12':
|
|
|
- '310ca9477129b8586fa2afc779c1f57cf64bba6c',
|
|
|
- 'refs/heads/master': '310ca9477129b8586fa2afc779c1f57cf64bba6c'
|
|
|
+ b'refs/heads/blah12':
|
|
|
+ b'310ca9477129b8586fa2afc779c1f57cf64bba6c',
|
|
|
+ b'refs/heads/master': b'310ca9477129b8586fa2afc779c1f57cf64bba6c'
|
|
|
}
|
|
|
|
|
|
def generate_pack_contents(have, want):
|
|
@@ -220,80 +218,77 @@ class GitClientTests(TestCase):
|
|
|
self.client.send_pack('/', determine_wants, generate_pack_contents)
|
|
|
self.assertIn(
|
|
|
self.rout.getvalue(),
|
|
|
- ['007f0000000000000000000000000000000000000000 '
|
|
|
- '310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
- 'refs/heads/blah12\x00report-status ofs-delta0000%s'
|
|
|
- % f.getvalue(),
|
|
|
- '007f0000000000000000000000000000000000000000 '
|
|
|
- '310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
- 'refs/heads/blah12\x00ofs-delta report-status0000%s'
|
|
|
- % f.getvalue()])
|
|
|
+ [b'007f0000000000000000000000000000000000000000 '
|
|
|
+ b'310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
+ b'refs/heads/blah12\x00report-status ofs-delta0000' +
|
|
|
+ f.getvalue(),
|
|
|
+ b'007f0000000000000000000000000000000000000000 '
|
|
|
+ b'310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
+ b'refs/heads/blah12\x00ofs-delta report-status0000' +
|
|
|
+ f.getvalue()])
|
|
|
|
|
|
def test_send_pack_new_ref(self):
|
|
|
self.rin.write(
|
|
|
- '0064310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
- 'refs/heads/master\x00 report-status delete-refs ofs-delta\n'
|
|
|
- '0000000eunpack ok\n'
|
|
|
- '0019ok refs/heads/blah12\n'
|
|
|
- '0000')
|
|
|
+ b'0064310ca9477129b8586fa2afc779c1f57cf64bba6c '
|
|
|
+ b'refs/heads/master\x00 report-status delete-refs ofs-delta\n'
|
|
|
+ b'0000000eunpack ok\n'
|
|
|
+ b'0019ok refs/heads/blah12\n'
|
|
|
+ b'0000')
|
|
|
self.rin.seek(0)
|
|
|
|
|
|
tree = Tree()
|
|
|
commit = Commit()
|
|
|
commit.tree = tree
|
|
|
commit.parents = []
|
|
|
- commit.author = commit.committer = 'test user'
|
|
|
+ commit.author = commit.committer = b'test user'
|
|
|
commit.commit_time = commit.author_time = 1174773719
|
|
|
commit.commit_timezone = commit.author_timezone = 0
|
|
|
- commit.encoding = 'UTF-8'
|
|
|
- commit.message = 'test message'
|
|
|
+ commit.encoding = b'UTF-8'
|
|
|
+ commit.message = b'test message'
|
|
|
|
|
|
def determine_wants(refs):
|
|
|
return {
|
|
|
- 'refs/heads/blah12': commit.id,
|
|
|
- 'refs/heads/master': '310ca9477129b8586fa2afc779c1f57cf64bba6c'
|
|
|
+ b'refs/heads/blah12': commit.id,
|
|
|
+ b'refs/heads/master': b'310ca9477129b8586fa2afc779c1f57cf64bba6c'
|
|
|
}
|
|
|
|
|
|
def generate_pack_contents(have, want):
|
|
|
- return [(commit, None), (tree, ''), ]
|
|
|
+ return [(commit, None), (tree, b''), ]
|
|
|
|
|
|
f = BytesIO()
|
|
|
write_pack_objects(f, generate_pack_contents(None, None))
|
|
|
- self.client.send_pack('/', determine_wants, generate_pack_contents)
|
|
|
+ self.client.send_pack(b'/', determine_wants, generate_pack_contents)
|
|
|
self.assertIn(
|
|
|
self.rout.getvalue(),
|
|
|
- ['007f0000000000000000000000000000000000000000 %s '
|
|
|
- 'refs/heads/blah12\x00report-status ofs-delta0000%s'
|
|
|
- % (commit.id, f.getvalue()),
|
|
|
- '007f0000000000000000000000000000000000000000 %s '
|
|
|
- 'refs/heads/blah12\x00ofs-delta report-status0000%s'
|
|
|
- % (commit.id, f.getvalue())])
|
|
|
+ [b'007f0000000000000000000000000000000000000000 ' + commit.id +
|
|
|
+ b' refs/heads/blah12\x00report-status ofs-delta0000' + f.getvalue(),
|
|
|
+ b'007f0000000000000000000000000000000000000000 ' + commit.id +
|
|
|
+ b' refs/heads/blah12\x00ofs-delta report-status0000' + f.getvalue()])
|
|
|
|
|
|
def test_send_pack_no_deleteref_delete_only(self):
|
|
|
- pkts = ['310ca9477129b8586fa2afc779c1f57cf64bba6c refs/heads/master'
|
|
|
- '\x00 report-status ofs-delta\n',
|
|
|
- '',
|
|
|
- '']
|
|
|
+ pkts = [b'310ca9477129b8586fa2afc779c1f57cf64bba6c refs/heads/master'
|
|
|
+ b'\x00 report-status ofs-delta\n',
|
|
|
+ b'',
|
|
|
+ b'']
|
|
|
for pkt in pkts:
|
|
|
- if pkt == '':
|
|
|
- self.rin.write("0000")
|
|
|
+ if pkt == b'':
|
|
|
+ self.rin.write(b"0000")
|
|
|
else:
|
|
|
- self.rin.write("%04x%s" % (len(pkt)+4, pkt))
|
|
|
+ self.rin.write(("%04x" % (len(pkt)+4)).encode('ascii') + pkt)
|
|
|
self.rin.seek(0)
|
|
|
|
|
|
def determine_wants(refs):
|
|
|
- return {'refs/heads/master': '0' * 40}
|
|
|
+ return {b'refs/heads/master': b'0' * 40}
|
|
|
|
|
|
def generate_pack_contents(have, want):
|
|
|
return {}
|
|
|
|
|
|
self.assertRaises(UpdateRefsError,
|
|
|
- self.client.send_pack, "/",
|
|
|
+ self.client.send_pack, b"/",
|
|
|
determine_wants, generate_pack_contents)
|
|
|
- self.assertEqual(self.rout.getvalue(), '0000')
|
|
|
+ self.assertEqual(self.rout.getvalue(), b'0000')
|
|
|
|
|
|
|
|
|
-@skipIfPY3
|
|
|
class TestGetTransportAndPath(TestCase):
|
|
|
|
|
|
def test_tcp(self):
|
|
@@ -414,7 +409,6 @@ class TestGetTransportAndPath(TestCase):
|
|
|
self.assertEqual('/jelmer/dulwich', path)
|
|
|
|
|
|
|
|
|
-@skipIfPY3
|
|
|
class TestGetTransportAndPathFromUrl(TestCase):
|
|
|
|
|
|
def test_tcp(self):
|
|
@@ -493,7 +487,6 @@ class TestGetTransportAndPathFromUrl(TestCase):
|
|
|
self.assertEqual('/home/jelmer/foo', path)
|
|
|
|
|
|
|
|
|
-@skipIfPY3
|
|
|
class TestSSHVendor(object):
|
|
|
|
|
|
def __init__(self):
|
|
@@ -516,7 +509,6 @@ class TestSSHVendor(object):
|
|
|
return Subprocess()
|
|
|
|
|
|
|
|
|
-@skipIfPY3
|
|
|
class SSHGitClientTests(TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
@@ -533,58 +525,56 @@ class SSHGitClientTests(TestCase):
|
|
|
client.get_ssh_vendor = self.real_vendor
|
|
|
|
|
|
def test_default_command(self):
|
|
|
- self.assertEqual('git-upload-pack',
|
|
|
- self.client._get_cmd_path('upload-pack'))
|
|
|
+ self.assertEqual(b'git-upload-pack',
|
|
|
+ self.client._get_cmd_path(b'upload-pack'))
|
|
|
|
|
|
def test_alternative_command_path(self):
|
|
|
- self.client.alternative_paths['upload-pack'] = (
|
|
|
- '/usr/lib/git/git-upload-pack')
|
|
|
- self.assertEqual('/usr/lib/git/git-upload-pack',
|
|
|
- self.client._get_cmd_path('upload-pack'))
|
|
|
+ self.client.alternative_paths[b'upload-pack'] = (
|
|
|
+ b'/usr/lib/git/git-upload-pack')
|
|
|
+ self.assertEqual(b'/usr/lib/git/git-upload-pack',
|
|
|
+ self.client._get_cmd_path(b'upload-pack'))
|
|
|
|
|
|
def test_connect(self):
|
|
|
server = self.server
|
|
|
client = self.client
|
|
|
|
|
|
- client.username = "username"
|
|
|
+ client.username = b"username"
|
|
|
client.port = 1337
|
|
|
|
|
|
- client._connect("command", "/path/to/repo")
|
|
|
- self.assertEqual("username", server.username)
|
|
|
+ client._connect(b"command", b"/path/to/repo")
|
|
|
+ self.assertEqual(b"username", server.username)
|
|
|
self.assertEqual(1337, server.port)
|
|
|
- self.assertEqual(["git-command '/path/to/repo'"], server.command)
|
|
|
+ self.assertEqual([b"git-command '/path/to/repo'"], server.command)
|
|
|
|
|
|
- client._connect("relative-command", "/~/path/to/repo")
|
|
|
- self.assertEqual(["git-relative-command '~/path/to/repo'"],
|
|
|
+ client._connect(b"relative-command", b"/~/path/to/repo")
|
|
|
+ self.assertEqual([b"git-relative-command '~/path/to/repo'"],
|
|
|
server.command)
|
|
|
|
|
|
|
|
|
-@skipIfPY3
|
|
|
class ReportStatusParserTests(TestCase):
|
|
|
|
|
|
def test_invalid_pack(self):
|
|
|
parser = ReportStatusParser()
|
|
|
- parser.handle_packet("unpack error - foo bar")
|
|
|
- parser.handle_packet("ok refs/foo/bar")
|
|
|
+ parser.handle_packet(b"unpack error - foo bar")
|
|
|
+ parser.handle_packet(b"ok refs/foo/bar")
|
|
|
parser.handle_packet(None)
|
|
|
self.assertRaises(SendPackError, parser.check)
|
|
|
|
|
|
def test_update_refs_error(self):
|
|
|
parser = ReportStatusParser()
|
|
|
- parser.handle_packet("unpack ok")
|
|
|
- parser.handle_packet("ng refs/foo/bar need to pull")
|
|
|
+ parser.handle_packet(b"unpack ok")
|
|
|
+ parser.handle_packet(b"ng refs/foo/bar need to pull")
|
|
|
parser.handle_packet(None)
|
|
|
self.assertRaises(UpdateRefsError, parser.check)
|
|
|
|
|
|
def test_ok(self):
|
|
|
parser = ReportStatusParser()
|
|
|
- parser.handle_packet("unpack ok")
|
|
|
- parser.handle_packet("ok refs/foo/bar")
|
|
|
+ parser.handle_packet(b"unpack ok")
|
|
|
+ parser.handle_packet(b"ok refs/foo/bar")
|
|
|
parser.handle_packet(None)
|
|
|
parser.check()
|
|
|
|
|
|
|
|
|
-@skipIfPY3
|
|
|
class LocalGitClientTests(TestCase):
|
|
|
|
|
|
def test_fetch_into_empty(self):
|
|
@@ -600,8 +590,8 @@ class LocalGitClientTests(TestCase):
|
|
|
walker = {}
|
|
|
c.fetch_pack(s.path, lambda heads: [], graph_walker=walker,
|
|
|
pack_data=out.write)
|
|
|
- self.assertEqual("PACK\x00\x00\x00\x02\x00\x00\x00\x00\x02\x9d\x08"
|
|
|
- "\x82;\xd8\xa8\xea\xb5\x10\xadj\xc7\\\x82<\xfd>\xd3\x1e", out.getvalue())
|
|
|
+ self.assertEqual(b"PACK\x00\x00\x00\x02\x00\x00\x00\x00\x02\x9d\x08"
|
|
|
+ b"\x82;\xd8\xa8\xea\xb5\x10\xadj\xc7\\\x82<\xfd>\xd3\x1e", out.getvalue())
|
|
|
|
|
|
def test_fetch_pack_none(self):
|
|
|
c = LocalGitClient()
|
|
@@ -609,33 +599,33 @@ class LocalGitClientTests(TestCase):
|
|
|
out = BytesIO()
|
|
|
walker = MemoryRepo().get_graph_walker()
|
|
|
c.fetch_pack(s.path,
|
|
|
- lambda heads: ["a90fa2d900a17e99b433217e988c4eb4a2e9a097"],
|
|
|
+ lambda heads: [b"a90fa2d900a17e99b433217e988c4eb4a2e9a097"],
|
|
|
graph_walker=walker, pack_data=out.write)
|
|
|
# Hardcoding is not ideal, but we'll fix that some other day..
|
|
|
- self.assertTrue(out.getvalue().startswith('PACK\x00\x00\x00\x02\x00\x00\x00\x07'))
|
|
|
+ self.assertTrue(out.getvalue().startswith(b'PACK\x00\x00\x00\x02\x00\x00\x00\x07'))
|
|
|
|
|
|
def test_send_pack_without_changes(self):
|
|
|
local = open_repo('a.git')
|
|
|
target = open_repo('a.git')
|
|
|
- self.send_and_verify("master", local, target)
|
|
|
+ self.send_and_verify(b"master", local, target)
|
|
|
|
|
|
def test_send_pack_with_changes(self):
|
|
|
local = open_repo('a.git')
|
|
|
target_path = tempfile.mkdtemp()
|
|
|
self.addCleanup(shutil.rmtree, target_path)
|
|
|
target = Repo.init_bare(target_path)
|
|
|
- self.send_and_verify("master", local, target)
|
|
|
+ self.send_and_verify(b"master", local, target)
|
|
|
|
|
|
def send_and_verify(self, branch, local, target):
|
|
|
client = LocalGitClient()
|
|
|
- ref_name = "refs/heads/" + branch
|
|
|
+ ref_name = b"refs/heads/" + branch
|
|
|
new_refs = client.send_pack(target.path,
|
|
|
lambda _: { ref_name: local.refs[ref_name] },
|
|
|
local.object_store.generate_pack_contents)
|
|
|
|
|
|
self.assertEqual(local.refs[ref_name], new_refs[ref_name])
|
|
|
|
|
|
- for name, sha in new_refs.iteritems():
|
|
|
+ for name, sha in new_refs.items():
|
|
|
self.assertEqual(new_refs[name], target.refs[name])
|
|
|
|
|
|
obj_local = local.get_object(new_refs[ref_name])
|