154
154
return ZipFileWrapper(fileobj, 'w')
155
155
return self.make_archive(maker)
157
def make_tar_with_bzrdir(self):
159
tar_file = tarfile.open('tar-with-bzrdir.tar', 'w', result)
160
os.mkdir('toplevel-dir')
161
tar_file.add('toplevel-dir')
162
os.mkdir('toplevel-dir/.bzr')
163
tar_file.add('toplevel-dir/.bzr')
165
rmtree('toplevel-dir')
169
def test_top_path(self):
170
self.assertEqual(top_path('ab/b/c'), 'ab')
171
self.assertEqual(top_path('etc'), 'etc')
172
self.assertEqual(top_path('project-0.1'), 'project-0.1')
157
def test_top_directory(self):
158
self.assertEqual(top_directory('ab/b/c'), 'ab')
159
self.assertEqual(top_directory('/etc'), '/')
174
161
def test_common_directory(self):
175
162
self.assertEqual(common_directory(['ab/c/d', 'ab/c/e']), 'ab')
176
163
self.assertIs(common_directory(['ab/c/d', 'ac/c/e']), None)
177
self.assertEqual('FEEDME', common_directory(['FEEDME']))
164
self.assertIs(None, common_directory(['FEEDME']))
179
166
def test_untar(self):
180
167
def builder(fileobj, mode='w'):
235
222
import_tar(tree, tar_file)
236
223
self.assertTrue(tree.path2id('README') is not None)
238
def test_no_crash_with_bzrdir(self):
239
tar_file = self.make_tar_with_bzrdir()
240
tree = BzrDir.create_standalone_workingtree('tree')
241
import_tar(tree, tar_file)
242
# So long as it did not crash, that should be ok
244
225
def test_suite():
245
226
return makeSuite(TestImport)