Mercurial > hgsubversion
annotate tests/test_fetch_command.py @ 59:430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
changes that fix problems when trunk is not the oldest branch. Also includes
fixes for copying from a tag that we chose not to create (eg tagging a vendor
branch) and includes tests for all of those things.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Tue, 04 Nov 2008 16:38:16 -0600 |
parents | af7ac6c03452 |
children | e319c9168910 |
rev | line source |
---|---|
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
1 import os |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
2 import shutil |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
3 import tempfile |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
4 import unittest |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
5 |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
6 from mercurial import hg |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
7 from mercurial import ui |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
8 from mercurial import node |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
9 |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
10 import fetch_command |
16
48a44546c12f
Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
15
diff
changeset
|
11 import test_util |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
12 |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
13 |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
14 class TestBasicRepoLayout(unittest.TestCase): |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
15 def setUp(self): |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
16 self.oldwd = os.getcwd() |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
17 self.tmpdir = tempfile.mkdtemp('svnwrap_test') |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
18 self.repo_path = '%s/testrepo' % self.tmpdir |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
19 self.wc_path = '%s/testrepo_wc' % self.tmpdir |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
20 |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
21 def tearDown(self): |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
22 shutil.rmtree(self.tmpdir) |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
23 os.chdir(self.oldwd) |
25
99f8e4b535e9
svn 1.4 and 1.5 have different ideas of diff output for prop changes.
Augie Fackler <durin42@gmail.com>
parents:
22
diff
changeset
|
24 |
22
95d0109e495e
Refactor tests so I can reuse code more.
Augie Fackler <durin42@gmail.com>
parents:
21
diff
changeset
|
25 def _load_fixture_and_fetch(self, fixture_name): |
25
99f8e4b535e9
svn 1.4 and 1.5 have different ideas of diff output for prop changes.
Augie Fackler <durin42@gmail.com>
parents:
22
diff
changeset
|
26 return test_util.load_fixture_and_fetch(fixture_name, self.repo_path, |
22
95d0109e495e
Refactor tests so I can reuse code more.
Augie Fackler <durin42@gmail.com>
parents:
21
diff
changeset
|
27 self.wc_path) |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
28 |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
29 def test_fresh_fetch_single_rev(self): |
22
95d0109e495e
Refactor tests so I can reuse code more.
Augie Fackler <durin42@gmail.com>
parents:
21
diff
changeset
|
30 repo = self._load_fixture_and_fetch('single_rev.svndump') |
21
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
31 self.assertEqual(node.hex(repo['tip'].node()), |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
32 'a47d0ce778660a91c31bf2c21c448e9ee296ac90') |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
33 self.assertEqual(repo['tip'], repo[0]) |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
34 |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
35 def test_fresh_fetch_two_revs(self): |
22
95d0109e495e
Refactor tests so I can reuse code more.
Augie Fackler <durin42@gmail.com>
parents:
21
diff
changeset
|
36 repo = self._load_fixture_and_fetch('two_revs.svndump') |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
37 # TODO there must be a better way than repo[0] for this check |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
38 self.assertEqual(node.hex(repo[0].node()), |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
39 'a47d0ce778660a91c31bf2c21c448e9ee296ac90') |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
40 self.assertEqual(node.hex(repo['tip'].node()), |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
41 'bf3767835b3b32ecc775a298c2fa27134dd91c11') |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
42 self.assertEqual(repo['tip'], repo[1]) |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
43 |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
44 def test_branches(self): |
22
95d0109e495e
Refactor tests so I can reuse code more.
Augie Fackler <durin42@gmail.com>
parents:
21
diff
changeset
|
45 repo = self._load_fixture_and_fetch('simple_branch.svndump') |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
46 # TODO there must be a better way than repo[0] for this check |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
47 self.assertEqual(node.hex(repo[0].node()), |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
48 'a47d0ce778660a91c31bf2c21c448e9ee296ac90') |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
49 self.assertEqual(node.hex(repo['tip'].node()), |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
50 '9dfb0a19494f45c36e22f3c6d1b21d80638a7f6e') |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
51 self.assertEqual(len(repo['tip'].parents()), 1) |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
52 self.assertEqual(repo['tip'].parents()[0], repo['default']) |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
53 self.assertEqual(len(repo.heads()), 1) |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
54 |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
55 def test_two_branches_with_heads(self): |
22
95d0109e495e
Refactor tests so I can reuse code more.
Augie Fackler <durin42@gmail.com>
parents:
21
diff
changeset
|
56 repo = self._load_fixture_and_fetch('two_heads.svndump') |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
57 # TODO there must be a better way than repo[0] for this check |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
58 self.assertEqual(node.hex(repo[0].node()), |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
59 'a47d0ce778660a91c31bf2c21c448e9ee296ac90') |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
60 self.assertEqual(node.hex(repo['tip'].node()), |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
61 'a595c77cfcaa3d1ba9e04b2c55c68bc6bf2b0fbf') |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
62 self.assertEqual(node.hex(repo['the_branch'].node()), |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
63 '8ccaba5f0eae124487e413abd904a013f7f6fdeb') |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
64 self.assertEqual(node.hex(repo['the_branch'].parents()[0].node()), |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
65 '9dfb0a19494f45c36e22f3c6d1b21d80638a7f6e') |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
66 self.assertEqual(len(repo['tip'].parents()), 1) |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
67 self.assertEqual(repo['tip'], repo['default']) |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
68 self.assertEqual(len(repo.heads()), 2) |
16
48a44546c12f
Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
15
diff
changeset
|
69 |
21
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
70 def test_many_special_cases_replay(self): |
22
95d0109e495e
Refactor tests so I can reuse code more.
Augie Fackler <durin42@gmail.com>
parents:
21
diff
changeset
|
71 repo = self._load_fixture_and_fetch('many_special_cases.svndump') |
21
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
72 # TODO there must be a better way than repo[0] for this check |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
73 self._many_special_cases_checks(repo) |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
74 |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
75 |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
76 def test_many_special_cases_diff(self): |
22
95d0109e495e
Refactor tests so I can reuse code more.
Augie Fackler <durin42@gmail.com>
parents:
21
diff
changeset
|
77 repo = self._load_fixture_and_fetch('many_special_cases.svndump') |
21
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
78 # TODO there must be a better way than repo[0] for this check |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
79 self._many_special_cases_checks(repo) |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
80 |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
81 def _many_special_cases_checks(self, repo): |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
82 self.assertEqual(node.hex(repo[0].node()), |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
83 'a47d0ce778660a91c31bf2c21c448e9ee296ac90') |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
84 self.assertEqual(node.hex(repo['tip'].node()), |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
85 'a7742757189db8aea5f4c6721cbbfb1a09f00ddf') |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
86 self.assertEqual(node.hex(repo['the_branch'].node()), |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
87 '8ccaba5f0eae124487e413abd904a013f7f6fdeb') |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
88 self.assertEqual(node.hex(repo['the_branch'].parents()[0].node()), |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
89 '9dfb0a19494f45c36e22f3c6d1b21d80638a7f6e') |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
90 self.assertEqual(len(repo['tip'].parents()), 1) |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
91 self.assertEqual(repo['tip'], repo['default']) |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
92 self.assertEqual(len(repo.heads()), 2) |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
93 |
40
9952f03ddfbe
Add a test that proves files in the branches directory don't cause breakage.
Augie Fackler <durin42@gmail.com>
parents:
25
diff
changeset
|
94 def test_file_mixed_with_branches(self): |
9952f03ddfbe
Add a test that proves files in the branches directory don't cause breakage.
Augie Fackler <durin42@gmail.com>
parents:
25
diff
changeset
|
95 repo = self._load_fixture_and_fetch('file_mixed_with_branches.svndump') |
9952f03ddfbe
Add a test that proves files in the branches directory don't cause breakage.
Augie Fackler <durin42@gmail.com>
parents:
25
diff
changeset
|
96 self.assertEqual(node.hex(repo['tip'].node()), |
9952f03ddfbe
Add a test that proves files in the branches directory don't cause breakage.
Augie Fackler <durin42@gmail.com>
parents:
25
diff
changeset
|
97 'a47d0ce778660a91c31bf2c21c448e9ee296ac90') |
9952f03ddfbe
Add a test that proves files in the branches directory don't cause breakage.
Augie Fackler <durin42@gmail.com>
parents:
25
diff
changeset
|
98 assert 'README' not in repo |
9952f03ddfbe
Add a test that proves files in the branches directory don't cause breakage.
Augie Fackler <durin42@gmail.com>
parents:
25
diff
changeset
|
99 |
41
496c0354019c
Improved handling of copies from outside of trunk.
Augie Fackler <durin42@gmail.com>
parents:
40
diff
changeset
|
100 def test_files_copied_from_outside_btt(self): |
496c0354019c
Improved handling of copies from outside of trunk.
Augie Fackler <durin42@gmail.com>
parents:
40
diff
changeset
|
101 repo = self._load_fixture_and_fetch( |
496c0354019c
Improved handling of copies from outside of trunk.
Augie Fackler <durin42@gmail.com>
parents:
40
diff
changeset
|
102 'test_files_copied_from_outside_btt.svndump') |
496c0354019c
Improved handling of copies from outside of trunk.
Augie Fackler <durin42@gmail.com>
parents:
40
diff
changeset
|
103 self.assertEqual(node.hex(repo['tip'].node()), |
496c0354019c
Improved handling of copies from outside of trunk.
Augie Fackler <durin42@gmail.com>
parents:
40
diff
changeset
|
104 'c4e669a763a70f751c71d4534a34a65f398d71d4') |
496c0354019c
Improved handling of copies from outside of trunk.
Augie Fackler <durin42@gmail.com>
parents:
40
diff
changeset
|
105 self.assertEqual(len(repo.changelog), 2) |
21
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
106 |
43
af7ac6c03452
Fix a bug with added files from outside branches/trunk/tags.
Augie Fackler <durin42@gmail.com>
parents:
41
diff
changeset
|
107 def test_file_renamed_in_from_outside_btt(self): |
af7ac6c03452
Fix a bug with added files from outside branches/trunk/tags.
Augie Fackler <durin42@gmail.com>
parents:
41
diff
changeset
|
108 repo = self._load_fixture_and_fetch( |
af7ac6c03452
Fix a bug with added files from outside branches/trunk/tags.
Augie Fackler <durin42@gmail.com>
parents:
41
diff
changeset
|
109 'file_renamed_in_from_outside_btt.svndump') |
af7ac6c03452
Fix a bug with added files from outside branches/trunk/tags.
Augie Fackler <durin42@gmail.com>
parents:
41
diff
changeset
|
110 self.assert_('LICENSE.file' in repo['tip']) |
af7ac6c03452
Fix a bug with added files from outside branches/trunk/tags.
Augie Fackler <durin42@gmail.com>
parents:
41
diff
changeset
|
111 |
59
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
112 def test_oldest_not_trunk_and_tag_vendor_branch(self): |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
113 repo = self._load_fixture_and_fetch( |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
114 'tagged_vendor_and_oldest_not_trunk.svndump') |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
115 self.assertEqual(node.hex(repo['oldest'].node()), |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
116 'd73002bcdeffe389a8df81ee43303d36e79e8ca4') |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
117 self.assertEqual(repo['tip'].parents()[0].parents()[0], |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
118 repo['oldest']) |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
119 self.assertEqual(node.hex(repo['tip'].node()), |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
120 '9cf09e6ff7fa938188c3bcc9dd87abd7842c080c') |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
121 #'1316ef606dda89354ee8c4df725e6264177b5129') |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
122 |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
123 |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
124 class TestStupidPull(unittest.TestCase): |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
125 def setUp(self): |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
126 self.oldwd = os.getcwd() |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
127 self.tmpdir = tempfile.mkdtemp('svnwrap_test') |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
128 self.repo_path = '%s/testrepo' % self.tmpdir |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
129 self.wc_path = '%s/testrepo_wc' % self.tmpdir |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
130 |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
131 def tearDown(self): |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
132 shutil.rmtree(self.tmpdir) |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
133 os.chdir(self.oldwd) |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
134 |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
135 def test_stupid(self): |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
136 test_util.load_svndump_fixture(self.repo_path, 'two_heads.svndump') |
21
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
137 fetch_command.fetch_revisions(ui.ui(), |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
138 svn_url='file://%s' % self.repo_path, |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
139 hg_repo_path=self.wc_path, |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
140 stupid=True) |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
141 repo = hg.repository(ui.ui(), self.wc_path) |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
142 # TODO there must be a better way than repo[0] for this check |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
143 self.assertEqual(node.hex(repo[0].node()), |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
144 'a47d0ce778660a91c31bf2c21c448e9ee296ac90') |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
145 self.assertEqual(node.hex(repo['tip'].node()), |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
146 'a595c77cfcaa3d1ba9e04b2c55c68bc6bf2b0fbf') |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
147 self.assertEqual(node.hex(repo['the_branch'].node()), |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
148 '8ccaba5f0eae124487e413abd904a013f7f6fdeb') |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
149 self.assertEqual(node.hex(repo['the_branch'].parents()[0].node()), |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
150 '9dfb0a19494f45c36e22f3c6d1b21d80638a7f6e') |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
151 self.assertEqual(len(repo['tip'].parents()), 1) |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
152 self.assertEqual(repo['tip'], repo['default']) |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
153 self.assertEqual(len(repo.heads()), 2) |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
154 |
59
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
155 def test_oldest_not_trunk_and_tag_vendor_branch(self): |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
156 test_util.load_svndump_fixture(self.repo_path, |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
157 'tagged_vendor_and_oldest_not_trunk.svndump') |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
158 fetch_command.fetch_revisions(ui.ui(), |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
159 svn_url='file://%s' % self.repo_path, |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
160 hg_repo_path=self.wc_path, |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
161 stupid=True) |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
162 repo = hg.repository(ui.ui(), self.wc_path) |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
163 self.assertEqual(node.hex(repo['oldest'].node()), |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
164 'd73002bcdeffe389a8df81ee43303d36e79e8ca4') |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
165 self.assertEqual(repo['tip'].parents()[0].parents()[0], |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
166 repo['oldest']) |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
167 self.assertEqual(node.hex(repo['tip'].node()), |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
168 '9cf09e6ff7fa938188c3bcc9dd87abd7842c080c') |
430af23bef4a
Performance fix for branches-from-tags in real replay, which is tied up with
Augie Fackler <durin42@gmail.com>
parents:
43
diff
changeset
|
169 |
16
48a44546c12f
Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
15
diff
changeset
|
170 def suite(): |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
171 all = [unittest.TestLoader().loadTestsFromTestCase(TestBasicRepoLayout), |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
172 unittest.TestLoader().loadTestsFromTestCase(TestStupidPull), |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
173 ] |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
174 return unittest.TestSuite(all) |