Mercurial > hgsubversion
comparison tests/test_externals.py @ 763:6463b34bbcb6
svnexternals: support subrepos based externals checkout
| author | Patrick Mezard <pmezard@gmail.com> |
|---|---|
| date | Thu, 25 Nov 2010 21:55:21 +0100 |
| parents | c31a1f92e1c6 |
| children | bc5c176b63eb |
comparison
equal
deleted
inserted
replaced
| 762:c31a1f92e1c6 | 763:6463b34bbcb6 |
|---|---|
| 1 import test_util | 1 import test_util |
| 2 | 2 |
| 3 import os, unittest | 3 import os, unittest, sys |
| 4 | 4 |
| 5 from mercurial import commands | 5 from mercurial import commands |
| 6 from mercurial import util as hgutil | |
| 7 try: | |
| 8 from mercurial import subrepo | |
| 9 # require svnsubrepo and hg >= 1.7.1 | |
| 10 subrepo.svnsubrepo | |
| 11 hgutil.checknlink | |
| 12 except (ImportError, AttributeError), e: | |
| 13 print >>sys.stderr, 'test_externals: skipping .hgsub tests' | |
| 14 subrepo = None | |
| 6 | 15 |
| 7 from hgsubversion import svnexternals | 16 from hgsubversion import svnexternals |
| 8 | 17 |
| 9 class TestFetchExternals(test_util.TestBase): | 18 class TestFetchExternals(test_util.TestBase): |
| 10 def test_externalsfile(self): | 19 def test_externalsfile(self): |
| 202 2 deps/project2 | 211 2 deps/project2 |
| 203 """, repo[6]['.hgsubstate'].data()) | 212 """, repo[6]['.hgsubstate'].data()) |
| 204 | 213 |
| 205 def test_hgsub_stupid(self): | 214 def test_hgsub_stupid(self): |
| 206 self.test_hgsub(True) | 215 self.test_hgsub(True) |
| 216 | |
| 217 def test_updatehgsub(self): | |
| 218 def checkdeps(ui, repo, rev, deps, nodeps): | |
| 219 commands.update(ui, repo, node=str(rev)) | |
| 220 for d in deps: | |
| 221 p = os.path.join(repo.root, d) | |
| 222 self.assertTrue(os.path.isdir(p), | |
| 223 'missing: %s@%r' % (d, repo[None].rev())) | |
| 224 for d in nodeps: | |
| 225 p = os.path.join(repo.root, d) | |
| 226 self.assertTrue(not os.path.isdir(p), | |
| 227 'unexpected: %s@%r' % (d, repo[None].rev())) | |
| 228 | |
| 229 if subrepo is None: | |
| 230 return | |
| 231 | |
| 232 ui = self.ui() | |
| 233 repo = self._load_fixture_and_fetch('externals.svndump', | |
| 234 stupid=0, externals='subrepos') | |
| 235 checkdeps(ui, repo, 0, ['deps/project1'], []) | |
| 236 checkdeps(ui, repo, 1, ['deps/project1', 'deps/project2'], []) | |
| 237 checkdeps(ui, repo, 2, ['subdir/deps/project1', 'subdir2/deps/project1', | |
| 238 'deps/project2'], | |
| 239 ['deps/project1']) | |
| 240 checkdeps(ui, repo, 3, ['subdir/deps/project1', 'deps/project2'], | |
| 241 ['subdir2/deps/project1']) | |
| 242 checkdeps(ui, repo, 4, ['subdir/deps/project1'], ['deps/project2']) | |
| 207 | 243 |
| 208 class TestPushExternals(test_util.TestBase): | 244 class TestPushExternals(test_util.TestBase): |
| 209 def setUp(self): | 245 def setUp(self): |
| 210 test_util.TestBase.setUp(self) | 246 test_util.TestBase.setUp(self) |
| 211 test_util.load_fixture_and_fetch('pushexternals.svndump', | 247 test_util.load_fixture_and_fetch('pushexternals.svndump', |
