Mercurial > hgsubversion
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 173:f244eaee5069 | 174:f80132c5fea5 |
|---|---|
| 1 import cStringIO | |
| 2 import os | |
| 3 import shutil | |
| 4 import sys | |
| 5 import tempfile | |
| 6 import unittest | |
| 7 | |
| 8 from mercurial import hg | |
| 9 from mercurial import ui | |
| 10 from mercurial import node | |
| 11 | |
| 12 import fetch_command | |
| 13 import svnexternals | |
| 14 import test_util | |
| 15 | |
| 16 | |
| 17 class TestFetchExternals(test_util.TestBase): | |
| 18 def test_externalsfile(self): | |
| 19 f = svnexternals.externalsfile() | |
| 20 f['t1'] = 'dir1 -r10 svn://foobar' | |
| 21 f['t 2'] = 'dir2 -r10 svn://foobar' | |
| 22 f['t3'] = ['dir31 -r10 svn://foobar', 'dir32 -r10 svn://foobar'] | |
| 23 | |
| 24 refext = """\ | |
| 25 [t 2] | |
| 26 dir2 -r10 svn://foobar | |
| 27 [t1] | |
| 28 dir1 -r10 svn://foobar | |
| 29 [t3] | |
| 30 dir31 -r10 svn://foobar | |
| 31 dir32 -r10 svn://foobar | |
| 32 """ | |
| 33 value = f.write() | |
| 34 self.assertEqual(refext, value) | |
| 35 | |
| 36 f2 = svnexternals.externalsfile() | |
| 37 f2.read(value) | |
| 38 self.assertEqual(sorted(f), sorted(f2)) | |
| 39 for t in f: | |
| 40 self.assertEqual(f[t], f2[t]) | |
| 41 | |
| 42 def test_externals(self, stupid=False): | |
| 43 repo = self._load_fixture_and_fetch('externals.svndump', stupid=stupid) | |
| 44 | |
| 45 ref0 = """\ | |
| 46 [.] | |
| 47 ../externals/project1 deps/project1 | |
| 48 """ | |
| 49 self.assertEqual(ref0, repo[0]['.hgsvnexternals'].data()) | |
| 50 ref1 = """\ | |
| 51 [.] | |
| 52 ../externals/project1 deps/project1 | |
| 53 ../externals/project2 deps/project2 | |
| 54 """ | |
| 55 self.assertEqual(ref1, repo[1]['.hgsvnexternals'].data()) | |
| 56 | |
| 57 ref2 = """\ | |
| 58 [.] | |
| 59 ../externals/project2 deps/project2 | |
| 60 [subdir] | |
| 61 ../externals/project1 deps/project1 | |
| 62 [subdir2] | |
| 63 ../externals/project1 deps/project1 | |
| 64 """ | |
| 65 self.assertEqual(ref2, repo[2]['.hgsvnexternals'].data()) | |
| 66 | |
| 67 ref3 = """\ | |
| 68 [.] | |
| 69 ../externals/project2 deps/project2 | |
| 70 [subdir2] | |
| 71 ../externals/project1 deps/project1 | |
| 72 """ | |
| 73 self.assertEqual(ref3, repo[3]['.hgsvnexternals'].data()) | |
| 74 | |
| 75 ref4 = """\ | |
| 76 [.] | |
| 77 ../externals/project2 deps/project2 | |
| 78 """ | |
| 79 self.assertEqual(ref4, repo[4]['.hgsvnexternals'].data()) | |
| 80 | |
| 81 def test_externals_stupid(self): | |
| 82 self.test_externals(True) | |
| 83 | |
| 84 def suite(): | |
| 85 all = [unittest.TestLoader().loadTestsFromTestCase(TestFetchExternals), | |
| 86 ] | |
| 87 return unittest.TestSuite(all) |
