48
49
return object_store._lookup_revision_sha1(bzr_revid)
52
git_remote_bzr_path = os.path.abspath(
53
os.path.join(os.path.dirname(__file__), '..', 'git-remote-bzr'))
54
git_remote_bzr_feature = PathFeature(git_remote_bzr_path)
51
57
class OpenLocalDirTests(TestCaseWithTransport):
53
59
def test_from_env_dir(self):
66
72
super(FetchTests, self).setUp()
67
self.local_dir = self.make_branch_and_tree('local', format='git').controldir
73
self.local_dir = self.make_branch_and_tree(
74
'local', format='git').controldir
68
75
self.remote_tree = self.make_branch_and_tree('remote')
69
76
self.remote_dir = self.remote_tree.controldir
70
77
self.shortname = 'bzr'
87
94
self.assertEqual(out, b"\n")
89
96
self.assertTrue(git_sha1 in r.object_store)
97
self.assertEqual({}, r.get_refs())
100
class ExecuteRemoteHelperTests(TestCaseWithTransport):
103
self.requireFeature(git_remote_bzr_feature)
104
local_dir = self.make_branch_and_tree('local', format='git').controldir
105
local_path = local_dir.control_transport.local_abspath('.')
106
remote_tree = self.make_branch_and_tree('remote')
107
remote_dir = remote_tree.controldir
109
env = dict(os.environ)
110
env['GIT_DIR'] = local_path
111
env['PYTHONPATH'] = ':'.join(sys.path)
112
p = subprocess.Popen(
113
[sys.executable, git_remote_bzr_path, local_path, remote_dir.user_url],
114
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
115
stderr=subprocess.PIPE, env=env)
116
(out, err) = p.communicate(b'capabilities\n')
117
lines = out.splitlines()
118
self.assertIn(b'push', lines, "no 'push' in %r, error: %r" % (lines, err))
119
self.assertEqual(b'', err)
94
122
class RemoteHelperTests(TestCaseWithTransport):
97
125
super(RemoteHelperTests, self).setUp()
98
self.local_dir = self.make_branch_and_tree('local', format='git').controldir
126
self.local_dir = self.make_branch_and_tree(
127
'local', format='git').controldir
99
128
self.remote_tree = self.make_branch_and_tree('remote')
100
129
self.remote_dir = self.remote_tree.controldir
101
130
self.shortname = 'bzr'
102
self.helper = RemoteHelper(self.local_dir, self.shortname, self.remote_dir)
131
self.helper = RemoteHelper(
132
self.local_dir, self.shortname, self.remote_dir)
104
134
def test_capabilities(self):
106
136
self.helper.cmd_capabilities(f, [])
107
137
capabs = f.getvalue()
108
138
base = b"fetch\noption\npush\n"
109
self.assertTrue(capabs in (base+b"\n", base+b"import\n\n"), capabs)
139
self.assertTrue(capabs in (base + b"\n", base + b"import\n\n"), capabs)
111
141
def test_option(self):
125
155
self.build_tree_contents([("remote/afile", b"somecontent")])
126
156
self.remote_tree.add(["afile"])
127
157
self.remote_tree.commit(b"A commit message", timestamp=1330445983,
128
timezone=0, committer=b'Somebody <jrandom@example.com>')
158
timezone=0, committer=b'Somebody <jrandom@example.com>')
130
160
self.helper.cmd_import(f, ["import", "refs/heads/master"])
131
161
self.assertEqual(
162
b'reset refs/heads/master\n'
132
163
b'commit refs/heads/master\n'
134
165
b'committer Somebody <jrandom@example.com> 1330445983 +0000\n'