# HG changeset patch # User Dan Villiom Podlaski Christiansen # Date 1281549454 -7200 # Node ID d101b39f6c51118ed0ce5366c6af9c94fcc37ba5 # Parent 9cf547fc36e83918317f06877df8f72391178ee7 test_startrev: add a few assertions about clone lengths A few tweaks are added to the test to ensure that all tests pass these assertions: Some fixtures fail them by resulting in empty clones. Explicitly blacklisting such fixtures allows as to ensure that the other fixtures continue to work as expected. Other fixtures contain no files in trunk at HEAD, so we test them with other subdirectories instead. diff --git a/tests/test_startrev.py b/tests/test_startrev.py --- a/tests/test_startrev.py +++ b/tests/test_startrev.py @@ -20,6 +20,11 @@ def _do_case(self, name, subdir, stupid) for f in fulltip: self.assertMultiLineEqual(fulltip[f].data(), headtip[f].data()) + self.assertNotEqual(len(fullclone), 0, "full clone shouldn't be empty") + self.assertEqual(len(headclone), 1, + "shallow clone should have just one revision, not %d" + % len(headclone)) + def buildmethod(case, name, subdir, stupid): m = lambda self: self._do_case(case, subdir.strip('/'), stupid) m.__name__ = name @@ -28,10 +33,28 @@ def buildmethod(case, name, subdir, stup return m +# these fixtures contain no files at HEAD and would result in empty clones +nofiles = set([ + 'binaryfiles.svndump', + 'emptyrepo.svndump', +]) + +# these fixtures contain no files in trunk at HEAD and would result in an empty +# shallow clone if cloning trunk, so we use another subdirectory +subdirmap = { + 'commit-to-tag.svndump': '/branches/magic', + 'pushexternals.svndump': '', + 'tag_name_same_as_branch.svndump': '/branches/magic', +} + attrs = {'_do_case': _do_case, } + for case in [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')]: - subdir = test_util.subdir.get(case, '') + '/trunk' + if case in nofiles: + continue + + subdir = test_util.subdir.get(case, '') + subdirmap.get(case, '/trunk') bname = 'test_' + case[:-len('.svndump')] attrs[bname] = buildmethod(case, bname, subdir, False)