Mercurial > hgsubversion
diff tests/test_single_dir_clone.py @ 499:1fd3cfa47c5e
Support for single-directory clones.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Fri, 16 Oct 2009 23:33:41 -0400 |
parents | |
children | 5ddc212dbc56 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/tests/test_single_dir_clone.py @@ -0,0 +1,72 @@ +import shutil + +import test_util + + +class TestSingleDir(test_util.TestBase): + def test_clone_single_dir_simple(self): + repo = self._load_fixture_and_fetch('branch_from_tag.svndump', + stupid=False, + layout='single', + subdir='') + self.assertEqual(repo.branchtags().keys(), ['default']) + self.assertEqual(repo['tip'].manifest().keys(), + ['trunk/beta', + 'tags/copied_tag/alpha', + 'trunk/alpha', + 'tags/copied_tag/beta', + 'branches/branch_from_tag/alpha', + 'tags/tag_r3/alpha', + 'tags/tag_r3/beta', + 'branches/branch_from_tag/beta']) + + def test_auto_detect_single(self): + repo = self._load_fixture_and_fetch('branch_from_tag.svndump', + stupid=False, + layout='auto') + self.assertEqual(repo.branchtags().keys(), ['default', + 'branch_from_tag']) + oldmanifest = test_util.filtermanifest(repo['default'].manifest().keys()) + # remove standard layout + shutil.rmtree(self.wc_path) + # try again with subdir to get single dir clone + repo = self._load_fixture_and_fetch('branch_from_tag.svndump', + stupid=False, + layout='auto', + subdir='trunk') + self.assertEqual(repo.branchtags().keys(), ['default', ]) + self.assertEqual(repo['default'].manifest().keys(), oldmanifest) + + def test_externals_single(self): + repo = self._load_fixture_and_fetch('externals.svndump', + stupid=False, + layout='single') + for rev in repo: + assert '.hgsvnexternals' not in repo[rev].manifest() + return # TODO enable test when externals in single are fixed + expect = """[.] + -r2 ^/externals/project2@2 deps/project2 +[subdir] + ^/externals/project1 deps/project1 +[subdir2] + ^/externals/project1 deps/project1 +""" + test = 2 + self.assertEqual(self.repo[test]['.hgsvnexternals'].data(), expect) + + def test_externals_single_whole_repo(self): + # This is the test which demonstrates the brokenness of externals + return # TODO enable test when externals in single are fixed + repo = self._load_fixture_and_fetch('externals.svndump', + stupid=False, + layout='single', + subdir='') + for rev in repo: + rc = repo[rev] + if '.hgsvnexternals' in rc: + extdata = rc['.hgsvnexternals'].data() + assert '[.]' not in extdata + print extdata + expect = '' # Not honestly sure what this should be... + test = 4 + self.assertEqual(self.repo[test]['.hgsvnexternals'].data(), expect)