Mercurial > hgsubversion
comparison tests/test_startrev.py @ 653:ab454ee515d4
test_startrev: new tests inspired by test_rebuildmeta
The tests for start revision support are inspired by the rebuildmeta
tests; for every single fixture, a full and a shallow clone is
performed, and the two are then compared.
| author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
|---|---|
| date | Tue, 20 Jul 2010 12:53:47 +0200 |
| parents | |
| children | 9cf547fc36e8 |
comparison
equal
deleted
inserted
replaced
| 652:c3900ad3bf69 | 653:ab454ee515d4 |
|---|---|
| 1 import test_util | |
| 2 | |
| 3 import os | |
| 4 import unittest | |
| 5 | |
| 6 def _do_case(self, name, subdir, stupid): | |
| 7 wc_base = self.wc_path | |
| 8 self.wc_path = wc_base + '_full' | |
| 9 headclone = self._load_fixture_and_fetch(name, subdir=subdir, stupid=stupid, | |
| 10 layout='single', startrev='HEAD') | |
| 11 self.wc_path = wc_base + '_head' | |
| 12 fullclone = self._load_fixture_and_fetch(name, subdir=subdir, stupid=stupid, | |
| 13 layout='single') | |
| 14 | |
| 15 fulltip = fullclone['tip'] | |
| 16 headtip = headclone['tip'] | |
| 17 # viewing diff's of lists of files is easier on the eyes | |
| 18 self.assertMultiLineEqual('\n'.join(fulltip), '\n'.join(headtip)) | |
| 19 | |
| 20 for f in fulltip: | |
| 21 self.assertMultiLineEqual(fulltip[f].data(), headtip[f].data()) | |
| 22 | |
| 23 def buildmethod(case, name, subdir, stupid): | |
| 24 m = lambda self: self._do_case(case, subdir, stupid) | |
| 25 m.__name__ = name | |
| 26 m.__doc__ = ('Test clone with startrev on %s%s with %s replay.' % | |
| 27 (case, subdir, (stupid and 'stupid') or 'real')) | |
| 28 return m | |
| 29 | |
| 30 | |
| 31 attrs = {'_do_case': _do_case, | |
| 32 } | |
| 33 for case in [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')]: | |
| 34 # this fixture results in an empty repository, don't use it | |
| 35 if case == 'project_root_not_repo_root.svndump': | |
| 36 continue | |
| 37 subdir = test_util.subdir.get(case, '') | |
| 38 | |
| 39 bname = 'test_' + case[:-len('.svndump')] | |
| 40 attrs[bname] = buildmethod(case, bname, subdir, False) | |
| 41 name = bname + '_stupid' | |
| 42 attrs[name] = buildmethod(case, name, subdir, True) | |
| 43 | |
| 44 StartRevTests = type('StartRevTests', (test_util.TestBase, ), attrs) | |
| 45 | |
| 46 | |
| 47 def suite(): | |
| 48 all = [unittest.TestLoader().loadTestsFromTestCase(StartRevTests), | |
| 49 ] | |
| 50 return unittest.TestSuite(all) |
