Mercurial > hgsubversion
view tests/test_fetch_symlinks.py @ 342:76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
The change only applies to the ambiguous URL schemes: file, http and
https. The others - svn+ssh and svn - behave the same as previously.
For http and https, the wrapping is implemented in 'svnrepo.py': Only
when the attempt to create a httprepo instance fails, will the URL
be considered for Subversion URL.
For file, the ambiguity is treated much like the Mercurial core
distinguishes bundle and directories. In this case, a directory that
looks like a Subversion repository will *not* be considered for a
Mercurial clone.
Tthe command lines are more similar to before this refactor. The only
option added to push & pull is --stupid; others are only added to
clone. Any of these options specified to clone will be added to the
generated '.hgrc'.
Also, the -r/--rev option now works for clone & push.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Wed, 20 May 2009 18:38:01 +0200 |
parents | b37c401b7f92 |
children | d2ef7220a079 |
line wrap: on
line source
import unittest import test_util class TestFetchSymlinks(test_util.TestBase): def _load_fixture_and_fetch(self, fixture_name, stupid): return test_util.load_fixture_and_fetch(fixture_name, self.repo_path, self.wc_path, stupid=stupid) def test_symlinks(self, stupid=False): repo = self._load_fixture_and_fetch('symlinks.svndump', stupid) # Check no symlink contains the 'link ' prefix for rev in repo: r = repo[rev] for f in r.manifest(): if 'l' not in r[f].flags(): continue self.assertFalse(r[f].data().startswith('link ')) # Check symlinks in tip links = { 0: { 'linka': 'a', 'linka2': 'a', 'd/linka': 'a', }, 1: { 'linkaa': 'a', 'linka2': 'a', 'd2/linka': 'a', }, 2: { 'linkaa': 'b', 'linka2': 'a', 'd2/linka': 'b', }, 3: { }, } for rev in repo: ctx = repo[rev] for f in ctx.manifest(): self.assertEqual(f in links[rev], 'l' in ctx[f].flags()) if f in links[rev]: self.assertEqual(links[rev][f], ctx[f].data()) for f in links[rev]: self.assertTrue(f in ctx) def test_symlinks_stupid(self): self.test_symlinks(True) def suite(): all = [unittest.TestLoader().loadTestsFromTestCase(TestFetchSymlinks), ] return unittest.TestSuite(all)