Mercurial > hgsubversion
diff tests/test_externals.py @ 174:f80132c5fea5
Convert svn:externals properties into a .hgsvnexternals file
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Fri, 02 Jan 2009 15:54:05 -0600 |
parents | |
children | 2412800b1258 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/tests/test_externals.py @@ -0,0 +1,87 @@ +import cStringIO +import os +import shutil +import sys +import tempfile +import unittest + +from mercurial import hg +from mercurial import ui +from mercurial import node + +import fetch_command +import svnexternals +import test_util + + +class TestFetchExternals(test_util.TestBase): + def test_externalsfile(self): + f = svnexternals.externalsfile() + f['t1'] = 'dir1 -r10 svn://foobar' + f['t 2'] = 'dir2 -r10 svn://foobar' + f['t3'] = ['dir31 -r10 svn://foobar', 'dir32 -r10 svn://foobar'] + + refext = """\ +[t 2] + dir2 -r10 svn://foobar +[t1] + dir1 -r10 svn://foobar +[t3] + dir31 -r10 svn://foobar + dir32 -r10 svn://foobar +""" + value = f.write() + self.assertEqual(refext, value) + + f2 = svnexternals.externalsfile() + f2.read(value) + self.assertEqual(sorted(f), sorted(f2)) + for t in f: + self.assertEqual(f[t], f2[t]) + + def test_externals(self, stupid=False): + repo = self._load_fixture_and_fetch('externals.svndump', stupid=stupid) + + ref0 = """\ +[.] + ../externals/project1 deps/project1 +""" + self.assertEqual(ref0, repo[0]['.hgsvnexternals'].data()) + ref1 = """\ +[.] + ../externals/project1 deps/project1 + ../externals/project2 deps/project2 +""" + self.assertEqual(ref1, repo[1]['.hgsvnexternals'].data()) + + ref2 = """\ +[.] + ../externals/project2 deps/project2 +[subdir] + ../externals/project1 deps/project1 +[subdir2] + ../externals/project1 deps/project1 +""" + self.assertEqual(ref2, repo[2]['.hgsvnexternals'].data()) + + ref3 = """\ +[.] + ../externals/project2 deps/project2 +[subdir2] + ../externals/project1 deps/project1 +""" + self.assertEqual(ref3, repo[3]['.hgsvnexternals'].data()) + + ref4 = """\ +[.] + ../externals/project2 deps/project2 +""" + self.assertEqual(ref4, repo[4]['.hgsvnexternals'].data()) + + def test_externals_stupid(self): + self.test_externals(True) + +def suite(): + all = [unittest.TestLoader().loadTestsFromTestCase(TestFetchExternals), + ] + return unittest.TestSuite(all)