Mercurial > hgsubversion
comparison tests/comprehensive/test_verify_and_startrev.py @ 1106:5cb6c95e0283 stable
Merge default and stable so I can do stable releases again.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Tue, 11 Feb 2014 12:48:49 -0500 |
parents | cd0d14e25757 |
children | ff4e102932ed |
comparison
equal
deleted
inserted
replaced
1020:b5b1fce26f1f | 1106:5cb6c95e0283 |
---|---|
35 'correct.svndump', | 35 'correct.svndump', |
36 'corrupt.svndump', | 36 'corrupt.svndump', |
37 'emptyrepo2.svndump', | 37 'emptyrepo2.svndump', |
38 ]) | 38 ]) |
39 | 39 |
40 def _do_case(self, name, stupid, layout): | 40 def _do_case(self, name, layout): |
41 subdir = test_util.subdir.get(name, '') | 41 subdir = test_util.subdir.get(name, '') |
42 repo, svnpath = self.load_and_fetch(name, subdir=subdir, stupid=stupid, | 42 config = {} |
43 layout=layout) | 43 for branch, path in test_util.custom.get(name, {}).iteritems(): |
44 assert len(self.repo) > 0 | 44 config['hgsubversionbranch.%s' % branch] = path |
45 repo, svnpath = self.load_and_fetch(name, | |
46 subdir=subdir, | |
47 layout=layout, | |
48 config=config) | |
49 assert test_util.repolen(self.repo) > 0 | |
45 for i in repo: | 50 for i in repo: |
46 ctx = repo[i] | 51 ctx = repo[i] |
47 self.assertEqual(verify.verify(repo.ui, repo, rev=ctx.node(), | 52 self.assertEqual(verify.verify(repo.ui, repo, rev=ctx.node(), |
48 stupid=True), 0) | 53 stupid=True), 0) |
49 self.assertEqual(verify.verify(repo.ui, repo, rev=ctx.node(), | 54 self.assertEqual(verify.verify(repo.ui, repo, rev=ctx.node(), |
50 stupid=False), 0) | 55 stupid=False), 0) |
51 | 56 |
52 # check a startrev clone | 57 # check a startrev clone |
53 if layout == 'single' and name not in _skipshallow: | 58 if layout == 'single' and name not in _skipshallow: |
54 self.wc_path += '_shallow' | 59 self.wc_path += '_shallow' |
55 shallowrepo = self.fetch(svnpath, subdir=subdir, stupid=stupid, | 60 shallowrepo = self.fetch(svnpath, subdir=subdir, |
56 layout='single', startrev='HEAD') | 61 layout='single', startrev='HEAD') |
57 | 62 |
58 self.assertEqual(len(shallowrepo), 1, | 63 self.assertEqual(test_util.repolen(shallowrepo), 1, |
59 "shallow clone should have just one revision, not %d" | 64 "shallow clone should have just one revision, not %d" |
60 % len(shallowrepo)) | 65 % test_util.repolen(shallowrepo)) |
61 | 66 |
62 fulltip = repo['tip'] | 67 fulltip = repo['tip'] |
63 shallowtip = shallowrepo['tip'] | 68 shallowtip = shallowrepo['tip'] |
64 | 69 |
65 repo.ui.pushbuffer() | 70 repo.ui.pushbuffer() |
83 | 88 |
84 for f in fulltip: | 89 for f in fulltip: |
85 self.assertMultiLineEqual(fulltip[f].data(), shallowtip[f].data()) | 90 self.assertMultiLineEqual(fulltip[f].data(), shallowtip[f].data()) |
86 | 91 |
87 | 92 |
88 def buildmethod(case, name, stupid, layout): | 93 def buildmethod(case, name, layout): |
89 m = lambda self: self._do_case(case, stupid, layout) | 94 m = lambda self: self._do_case(case, layout) |
90 m.__name__ = name | 95 m.__name__ = name |
91 bits = case, stupid and 'stupid' or 'real', layout | 96 m.__doc__ = 'Test verify on %s (%s)' % (case, layout) |
92 m.__doc__ = 'Test verify on %s with %s replay. (%s)' % bits | |
93 return m | 97 return m |
94 | 98 |
95 attrs = {'_do_case': _do_case} | 99 attrs = {'_do_case': _do_case, 'stupid_mode_tests': True} |
96 fixtures = [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')] | 100 fixtures = [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')] |
97 for case in fixtures: | 101 for case in fixtures: |
98 if case in _skipall: | 102 if case in _skipall: |
99 continue | 103 continue |
100 bname = 'test_' + case[:-len('.svndump')] | 104 bname = 'test_' + case[:-len('.svndump')] |
101 if case not in _skipstandard: | 105 if case not in _skipstandard: |
102 attrs[bname] = buildmethod(case, bname, False, 'standard') | 106 attrs[bname] = buildmethod(case, bname, 'standard') |
103 name = bname + '_stupid' | 107 attrs[bname + '_single'] = buildmethod(case, bname + '_single', 'single') |
104 attrs[name] = buildmethod(case, name, True, 'standard') | 108 if case in test_util.custom: |
105 name = bname + '_single' | 109 attrs[bname + '_custom'] = buildmethod(case, bname + '_custom', 'custom') |
106 attrs[name] = buildmethod(case, name, False, 'single') | |
107 # Disabled because the "stupid and real are the same" tests | |
108 # verify this plus even more. | |
109 # name = bname + '_single_stupid' | |
110 # attrs[name] = buildmethod(case, name, True, 'single') | |
111 | 110 |
112 VerifyTests = type('VerifyTests', (test_util.TestBase,), attrs) | 111 VerifyTests = type('VerifyTests', (test_util.TestBase,), attrs) |
113 | |
114 def suite(): | |
115 all_tests = [unittest.TestLoader().loadTestsFromTestCase(VerifyTests)] | |
116 return unittest.TestSuite(all_tests) |