comparison tests/test_tags.py @ 91:7d10165cf3d9

tests: Mock the mercurial.ui.ui class like we really should to capture output. Has the nice side effect that we can use nose 0.11's multiprocess plugin.
author Augie Fackler <durin42@gmail.com>
date Fri, 14 Nov 2008 16:52:30 -0600
parents 072010a271c6
children a3b717e4abf5
comparison
equal deleted inserted replaced
90:4c419603d41b 91:7d10165cf3d9
8 8
9 import test_util 9 import test_util
10 10
11 import svncommand 11 import svncommand
12 12
13 class TestTags(unittest.TestCase): 13 class TestTags(test_util.TestBase):
14 def setUp(self):
15 self.oldwd = os.getcwd()
16 self.tmpdir = tempfile.mkdtemp('svnwrap_test')
17 self.repo_path = '%s/testrepo' % self.tmpdir
18 self.wc_path = '%s/testrepo_wc' % self.tmpdir
19
20 def tearDown(self):
21 test_util.rmtree(self.tmpdir)
22 os.chdir(self.oldwd)
23
24 def _load_fixture_and_fetch(self, fixture_name, stupid=False): 14 def _load_fixture_and_fetch(self, fixture_name, stupid=False):
25 return test_util.load_fixture_and_fetch(fixture_name, self.repo_path, 15 return test_util.load_fixture_and_fetch(fixture_name, self.repo_path,
26 self.wc_path, stupid=stupid) 16 self.wc_path, stupid=stupid)
27 17
28 def _test_tag_revision_info(self, repo): 18 def _test_tag_revision_info(self, repo):
29 self.assertEqual(node.hex(repo[0].node()), 19 self.assertEqual(node.hex(repo[0].node()),
30 'a47d0ce778660a91c31bf2c21c448e9ee296ac90') 20 'a47d0ce778660a91c31bf2c21c448e9ee296ac90')
31 self.assertEqual(node.hex(repo['tip'].node()), 21 self.assertEqual(node.hex(repo['tip'].node()),
32 'bf3767835b3b32ecc775a298c2fa27134dd91c11') 22 'bf3767835b3b32ecc775a298c2fa27134dd91c11')
33 self.assertEqual(repo['tip'], repo[1]) 23 self.assertEqual(repo['tip'], repo[1])
34 24
35 def test_tags(self, stupid=False): 25 def test_tags(self, stupid=False):
36 repo = self._load_fixture_and_fetch('basic_tag_tests.svndump', 26 repo = self._load_fixture_and_fetch('basic_tag_tests.svndump',
37 stupid=stupid) 27 stupid=stupid)
38 self._test_tag_revision_info(repo) 28 self._test_tag_revision_info(repo)
39 svncommand.generate_hg_tags(ui.ui(), self.wc_path) 29 svncommand.generate_hg_tags(ui.ui(), self.wc_path)
40 repo = hg.repository(ui.ui(), self.wc_path) 30 repo = hg.repository(ui.ui(), self.wc_path)
41 self.assertEqual(repo['tip'].node(), repo['tag/tag_r3'].node()) 31 self.assertEqual(repo['tip'].node(), repo['tag/tag_r3'].node())
42 self.assertEqual(repo['tip'].node(), repo['tag/copied_tag'].node()) 32 self.assertEqual(repo['tip'].node(), repo['tag/copied_tag'].node())
43 33
44 def test_tags_stupid(self): 34 def test_tags_stupid(self):
45 self.test_tags(stupid=True) 35 self.test_tags(stupid=True)
46 36
47 def test_remove_tag(self, stupid=False): 37 def test_remove_tag(self, stupid=False):
48 repo = self._load_fixture_and_fetch('remove_tag_test.svndump', 38 repo = self._load_fixture_and_fetch('remove_tag_test.svndump',
49 stupid=stupid) 39 stupid=stupid)
50 self._test_tag_revision_info(repo) 40 self._test_tag_revision_info(repo)
51 svncommand.generate_hg_tags(ui.ui(), self.wc_path) 41 svncommand.generate_hg_tags(ui.ui(), self.wc_path)
52 repo = hg.repository(ui.ui(), self.wc_path) 42 repo = hg.repository(ui.ui(), self.wc_path)
53 self.assertEqual(repo['tip'].node(), repo['tag/tag_r3'].node()) 43 self.assertEqual(repo['tip'].node(), repo['tag/tag_r3'].node())
54 self.assert_('tag/copied_tag' not in repo.tags()) 44 self.assert_('tag/copied_tag' not in repo.tags())
55 45
56 def test_remove_tag_stupid(self): 46 def test_remove_tag_stupid(self):
57 self.test_remove_tag(stupid=True) 47 self.test_remove_tag(stupid=True)
58 48
59 def test_rename_tag(self, stupid=False): 49 def test_rename_tag(self, stupid=False):
60 repo = self._load_fixture_and_fetch('rename_tag_test.svndump', 50 repo = self._load_fixture_and_fetch('rename_tag_test.svndump',
61 stupid=stupid) 51 stupid=stupid)
62 self._test_tag_revision_info(repo) 52 self._test_tag_revision_info(repo)
63 svncommand.generate_hg_tags(ui.ui(), self.wc_path) 53 svncommand.generate_hg_tags(ui.ui(), self.wc_path)
64 repo = hg.repository(ui.ui(), self.wc_path) 54 repo = hg.repository(ui.ui(), self.wc_path)
65 self.assertEqual(repo['tip'].node(), repo['tag/tag_r3'].node()) 55 self.assertEqual(repo['tip'].node(), repo['tag/tag_r3'].node())
66 self.assertEqual(repo['tip'].node(), repo['tag/other_tag_r3'].node()) 56 self.assertEqual(repo['tip'].node(), repo['tag/other_tag_r3'].node())
67 self.assert_('tag/copied_tag' not in repo.tags()) 57 self.assert_('tag/copied_tag' not in repo.tags())
68 58
69 def test_rename_tag_stupid(self): 59 def test_rename_tag_stupid(self):
70 self.test_rename_tag(stupid=True) 60 self.test_rename_tag(stupid=True)
71 61
72 def test_branch_from_tag(self, stupid=False): 62 def test_branch_from_tag(self, stupid=False):
73 repo = self._load_fixture_and_fetch('branch_from_tag.svndump', 63 repo = self._load_fixture_and_fetch('branch_from_tag.svndump',
74 stupid=stupid) 64 stupid=stupid)
75 svncommand.generate_hg_tags(ui.ui(), self.wc_path) 65 svncommand.generate_hg_tags(ui.ui(), self.wc_path)
76 repo = hg.repository(ui.ui(), self.wc_path) 66 repo = hg.repository(ui.ui(), self.wc_path)
77 self.assertEqual(repo['tip'].node(), repo['branch_from_tag'].node()) 67 self.assertEqual(repo['tip'].node(), repo['branch_from_tag'].node())
78 self.assertEqual(repo[1].node(), repo['tag/tag_r3'].node()) 68 self.assertEqual(repo[1].node(), repo['tag/tag_r3'].node())
79 self.assertEqual(repo['branch_from_tag'].parents()[0].node(), 69 self.assertEqual(repo['branch_from_tag'].parents()[0].node(),
80 repo['tag/copied_tag'].node()) 70 repo['tag/copied_tag'].node())
81 71
82 def test_branch_from_tag_stupid(self): 72 def test_branch_from_tag_stupid(self):
83 self.test_branch_from_tag(stupid=True) 73 self.test_branch_from_tag(stupid=True)
84 74
85 def test_tag_by_renaming_branch(self, stupid=False): 75 def test_tag_by_renaming_branch(self, stupid=False):
86 repo = self._load_fixture_and_fetch('tag_by_rename_branch.svndump', 76 repo = self._load_fixture_and_fetch('tag_by_rename_branch.svndump',
87 stupid=stupid) 77 stupid=stupid)
88 svncommand.generate_hg_tags(ui.ui(), self.wc_path) 78 svncommand.generate_hg_tags(ui.ui(), self.wc_path)
89 repo = hg.repository(ui.ui(), self.wc_path) 79 repo = hg.repository(ui.ui(), self.wc_path)
90 self.assertEqual(node.hex(repo['tip'].node()), 80 self.assertEqual(node.hex(repo['tip'].node()),
91 '1b941f92acc343939274bd8bbf25984fa9706bb9') 81 '1b941f92acc343939274bd8bbf25984fa9706bb9')
92 self.assertEqual(node.hex(repo['tag/dummy'].node()), 82 self.assertEqual(node.hex(repo['tag/dummy'].node()),
93 '68f5f7d82b00a2efe3aca28b615ebab98235d55f') 83 '68f5f7d82b00a2efe3aca28b615ebab98235d55f')
94 84
95 def test_tag_by_renaming_branch_stupid(self): 85 def test_tag_by_renaming_branch_stupid(self):
96 self.test_tag_by_renaming_branch(stupid=True) 86 self.test_tag_by_renaming_branch(stupid=True)
97 87
98 def suite(): 88 def suite():
99 return unittest.TestLoader().loadTestsFromTestCase(TestTags) 89 return unittest.TestLoader().loadTestsFromTestCase(TestTags)