Mercurial > hgsubversion
annotate tests/test_fetch_command.py @ 1045:67e11b650e94
handle invalid UTF-8 in commit messages consistently
312f36a425f0 fixed this for replay, but not for stupid mode; we
address this by consolidating our means of generating a Mercurial
commit message in a single function in 'util.py'.
author | Dan Villiom Podlaski Christiansen <dan@cabo.dk> |
---|---|
date | Thu, 08 Aug 2013 09:38:55 +0200 |
parents | d741f536f23a |
children | 903c9c9dfe6a |
rev | line source |
---|---|
643
d2ef7220a079
tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
569
diff
changeset
|
1 import test_util |
d2ef7220a079
tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
569
diff
changeset
|
2 |
717
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
3 import os |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
4 import unittest |
717
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
5 import urllib |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
6 |
717
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
7 from mercurial import commands |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
8 from mercurial import hg |
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
9 from mercurial import node |
195 | 10 from mercurial import ui |
924
e252f9355933
test_fetch_command: fix if local encoding is not UTF-8
Patrick Mezard <patrick@mezard.eu>
parents:
910
diff
changeset
|
11 from mercurial import encoding |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
12 |
91
7d10165cf3d9
tests: Mock the mercurial.ui.ui class like we really should to capture output.
Augie Fackler <durin42@gmail.com>
parents:
78
diff
changeset
|
13 class TestBasicRepoLayout(test_util.TestBase): |
237
c90cfa665b81
Cope with date-less revisions.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
218
diff
changeset
|
14 |
c90cfa665b81
Cope with date-less revisions.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
218
diff
changeset
|
15 def test_no_dates(self): |
c90cfa665b81
Cope with date-less revisions.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
218
diff
changeset
|
16 repo = self._load_fixture_and_fetch('test_no_dates.svndump') |
245
f8e9b74df403
Fix test_no_dates to not be TZ-sensitive.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
237
diff
changeset
|
17 local_epoch = repo[0].date() |
f8e9b74df403
Fix test_no_dates to not be TZ-sensitive.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
237
diff
changeset
|
18 self.assertEqual(local_epoch[0], local_epoch[1]) |
237
c90cfa665b81
Cope with date-less revisions.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
218
diff
changeset
|
19 self.assertEqual(repo[1].date(), repo[2].date()) |
c90cfa665b81
Cope with date-less revisions.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
218
diff
changeset
|
20 |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
21 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
|
22 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
|
23 self.assertEqual(node.hex(repo['tip'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
24 '434ed487136c1b47c1e8f952edb4dc5a8e6328df') |
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
25 self.assertEqual(repo['tip'].extra()['convert_revision'], |
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
26 'svn:df2126f7-00ab-4d49-b42c-7e981dde0bcf/trunk@2') |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
27 self.assertEqual(repo['tip'], repo[0]) |
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_two_revs(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('two_revs.svndump') |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
31 self.assertEqual(node.hex(repo[0].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
32 '434ed487136c1b47c1e8f952edb4dc5a8e6328df') |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
33 self.assertEqual(node.hex(repo['tip'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
34 'c95251e0dd04697deee99b79cc407d7db76e6a5f') |
14
d78dbf88c13d
Started a meaningful test suite.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
35 self.assertEqual(repo['tip'], repo[1]) |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
36 |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
37 def test_branches(self): |
22
95d0109e495e
Refactor tests so I can reuse code more.
Augie Fackler <durin42@gmail.com>
parents:
21
diff
changeset
|
38 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
|
39 self.assertEqual(node.hex(repo[0].node()), |
542
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
263
diff
changeset
|
40 'a1ff9f5d90852ce7f8e607fa144066b0a06bdc57') |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
41 self.assertEqual(node.hex(repo['tip'].node()), |
542
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
263
diff
changeset
|
42 '545e36ed13615e39c5c8fb0c325109d8cb8e00c3') |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
43 self.assertEqual(len(repo['tip'].parents()), 1) |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
44 self.assertEqual(repo['tip'].parents()[0], repo['default']) |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
45 self.assertEqual(repo['tip'].extra()['convert_revision'], |
542
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
263
diff
changeset
|
46 'svn:3cd547df-371e-4add-bccf-aba732a2baf5/branches/the_branch@4') |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
47 self.assertEqual(repo['default'].extra()['convert_revision'], |
542
bb00f7ca5b8c
Rewrite simple_branch.sh fixture from svn dump
Patrick Mezard <pmezard@gmail.com>
parents:
263
diff
changeset
|
48 'svn:3cd547df-371e-4add-bccf-aba732a2baf5/trunk@3') |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
49 self.assertEqual(len(repo.heads()), 1) |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
50 |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
51 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
|
52 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
|
53 self.assertEqual(node.hex(repo[0].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
54 '434ed487136c1b47c1e8f952edb4dc5a8e6328df') |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
55 self.assertEqual(node.hex(repo['tip'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
56 '1083037b18d85cd84fa211c5adbaeff0fea2cd9f') |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
57 self.assertEqual(node.hex(repo['the_branch'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
58 '4e256962fc5df545e2e0a51d0d1dc61c469127e6') |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
59 self.assertEqual(node.hex(repo['the_branch'].parents()[0].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
60 'f1ff5b860f5dbb9a59ad0921a79da77f10f25109') |
15
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
61 self.assertEqual(len(repo['tip'].parents()), 1) |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
62 self.assertEqual(repo['tip'], repo['default']) |
db32dee803a8
Add some basic tests of branching.
Augie Fackler <durin42@gmail.com>
parents:
14
diff
changeset
|
63 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
|
64 |
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
|
65 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
|
66 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
|
67 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
|
68 |
8626f3d2e50b
Add a small stack of tests that exercise some of the interesting special cases.
Augie Fackler <durin42@gmail.com>
parents:
18
diff
changeset
|
69 |
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_diff(self): |
135
e33c7a4bcebb
tests: Fix a missing pass of stupid=True.
Augie Fackler <durin42@gmail.com>
parents:
125
diff
changeset
|
71 repo = self._load_fixture_and_fetch('many_special_cases.svndump', |
e33c7a4bcebb
tests: Fix a missing pass of stupid=True.
Augie Fackler <durin42@gmail.com>
parents:
125
diff
changeset
|
72 stupid=True) |
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
|
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 def _many_special_cases_checks(self, repo): |
569
95eca255739e
test_fetch_command: handle changes in revision extra ordering gracefully
Augie Fackler <durin42@gmail.com>
parents:
542
diff
changeset
|
76 self.assertEquals(node.hex(repo[0].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
77 '434ed487136c1b47c1e8f952edb4dc5a8e6328df') |
569
95eca255739e
test_fetch_command: handle changes in revision extra ordering gracefully
Augie Fackler <durin42@gmail.com>
parents:
542
diff
changeset
|
78 # two possible hashes for bw compat to hg < 1.5, since hg 1.5 |
95eca255739e
test_fetch_command: handle changes in revision extra ordering gracefully
Augie Fackler <durin42@gmail.com>
parents:
542
diff
changeset
|
79 # sorts entries in extra() |
95eca255739e
test_fetch_command: handle changes in revision extra ordering gracefully
Augie Fackler <durin42@gmail.com>
parents:
542
diff
changeset
|
80 self.assertTrue(node.hex(repo['tip'].node()) in |
95eca255739e
test_fetch_command: handle changes in revision extra ordering gracefully
Augie Fackler <durin42@gmail.com>
parents:
542
diff
changeset
|
81 ('e92012d8c170a0236c84166167f149c2e28548c6', |
95eca255739e
test_fetch_command: handle changes in revision extra ordering gracefully
Augie Fackler <durin42@gmail.com>
parents:
542
diff
changeset
|
82 'b7bdc73041b1852563deb1ef3f4153c2fe4484f2')) |
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
|
83 self.assertEqual(node.hex(repo['the_branch'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
84 '4e256962fc5df545e2e0a51d0d1dc61c469127e6') |
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
|
85 self.assertEqual(node.hex(repo['the_branch'].parents()[0].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
86 'f1ff5b860f5dbb9a59ad0921a79da77f10f25109') |
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
|
87 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
|
88 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
|
89 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
|
90 |
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
|
91 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
|
92 repo = self._load_fixture_and_fetch('file_mixed_with_branches.svndump') |
203
907c160c6289
Refactor branch handling to be much more dynamic (and hopefully robust).
Augie Fackler <durin42@gmail.com>
parents:
195
diff
changeset
|
93 self.assertEqual(node.hex(repo['default'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
94 '434ed487136c1b47c1e8f952edb4dc5a8e6328df') |
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
|
95 assert 'README' not in repo |
218
a360ddc97719
branches: change handling again, but this time a little less magic.
Augie Fackler <durin42@gmail.com>
parents:
215
diff
changeset
|
96 assert '../branches' not in repo |
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
|
97 |
950
a80b01ceb1fc
editor: relax copyfrom dir checks to avoid extra missing entries
Patrick Mezard <patrick@mezard.eu>
parents:
938
diff
changeset
|
98 def test_files_copied_from_outside_btt(self, stupid=False): |
41
496c0354019c
Improved handling of copies from outside of trunk.
Augie Fackler <durin42@gmail.com>
parents:
40
diff
changeset
|
99 repo = self._load_fixture_and_fetch( |
950
a80b01ceb1fc
editor: relax copyfrom dir checks to avoid extra missing entries
Patrick Mezard <patrick@mezard.eu>
parents:
938
diff
changeset
|
100 'test_files_copied_from_outside_btt.svndump', stupid=stupid) |
41
496c0354019c
Improved handling of copies from outside of trunk.
Augie Fackler <durin42@gmail.com>
parents:
40
diff
changeset
|
101 self.assertEqual(node.hex(repo['tip'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
102 '3c78170e30ddd35f2c32faa0d8646ab75bba4f73') |
218
a360ddc97719
branches: change handling again, but this time a little less magic.
Augie Fackler <durin42@gmail.com>
parents:
215
diff
changeset
|
103 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
|
104 |
950
a80b01ceb1fc
editor: relax copyfrom dir checks to avoid extra missing entries
Patrick Mezard <patrick@mezard.eu>
parents:
938
diff
changeset
|
105 def test_files_copied_from_outside_btt_stupid(self): |
a80b01ceb1fc
editor: relax copyfrom dir checks to avoid extra missing entries
Patrick Mezard <patrick@mezard.eu>
parents:
938
diff
changeset
|
106 self.test_files_copied_from_outside_btt(stupid=True) |
a80b01ceb1fc
editor: relax copyfrom dir checks to avoid extra missing entries
Patrick Mezard <patrick@mezard.eu>
parents:
938
diff
changeset
|
107 |
43
af7ac6c03452
Fix a bug with added files from outside branches/trunk/tags.
Augie Fackler <durin42@gmail.com>
parents:
41
diff
changeset
|
108 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
|
109 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
|
110 'file_renamed_in_from_outside_btt.svndump') |
215
b5ef9a404f5d
Stopped idiotic filtering of revisions that did not edit something branches/tags/trunk.
Augie Fackler <durin42@gmail.com>
parents:
207
diff
changeset
|
111 self.assert_('LICENSE.file' in repo['default']) |
43
af7ac6c03452
Fix a bug with added files from outside branches/trunk/tags.
Augie Fackler <durin42@gmail.com>
parents:
41
diff
changeset
|
112 |
112
e58c2f1de059
Fix a regression in converting repositories with files copied in from outside
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
113 def test_renamed_dir_in_from_outside_btt_not_repo_root(self): |
e58c2f1de059
Fix a regression in converting repositories with files copied in from outside
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
114 repo = self._load_fixture_and_fetch( |
e58c2f1de059
Fix a regression in converting repositories with files copied in from outside
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
115 'fetch_missing_files_subdir.svndump', subdir='foo') |
e58c2f1de059
Fix a regression in converting repositories with files copied in from outside
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
116 self.assertEqual(node.hex(repo['tip'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
117 '269dcdd4361b2847e9f4288d4500e55d35df1f52') |
112
e58c2f1de059
Fix a regression in converting repositories with files copied in from outside
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
118 self.assert_('bar/alpha' in repo['tip']) |
e58c2f1de059
Fix a regression in converting repositories with files copied in from outside
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
119 self.assert_('foo' in repo['tip']) |
e58c2f1de059
Fix a regression in converting repositories with files copied in from outside
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
120 self.assert_('bar/alpha' not in repo['tip'].parents()[0]) |
e58c2f1de059
Fix a regression in converting repositories with files copied in from outside
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
121 self.assert_('foo' in repo['tip'].parents()[0]) |
e58c2f1de059
Fix a regression in converting repositories with files copied in from outside
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
122 |
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
|
123 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
|
124 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
|
125 '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
|
126 self.assertEqual(node.hex(repo['oldest'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
127 '926671740dec045077ab20f110c1595f935334fa') |
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
|
128 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
|
129 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
|
130 self.assertEqual(node.hex(repo['tip'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
131 '1a6c3f30911d57abb67c257ec0df3e7bc44786f7') |
111
5497d1264b4d
fetch_command: Fix mis-converted executable when svn:executable was set to the
Augie Fackler <durin42@gmail.com>
parents:
101
diff
changeset
|
132 |
136
cf6fe8457570
Fix an apparent regression where branch name didn't get properly stored for
Augie Fackler <durin42@gmail.com>
parents:
135
diff
changeset
|
133 def test_propedit_with_nothing_else(self, stupid=False): |
cf6fe8457570
Fix an apparent regression where branch name didn't get properly stored for
Augie Fackler <durin42@gmail.com>
parents:
135
diff
changeset
|
134 repo = self._load_fixture_and_fetch('branch_prop_edit.svndump', |
cf6fe8457570
Fix an apparent regression where branch name didn't get properly stored for
Augie Fackler <durin42@gmail.com>
parents:
135
diff
changeset
|
135 stupid=stupid) |
cf6fe8457570
Fix an apparent regression where branch name didn't get properly stored for
Augie Fackler <durin42@gmail.com>
parents:
135
diff
changeset
|
136 self.assertEqual(repo['tip'].description(), 'Commit bogus propchange.') |
cf6fe8457570
Fix an apparent regression where branch name didn't get properly stored for
Augie Fackler <durin42@gmail.com>
parents:
135
diff
changeset
|
137 self.assertEqual(repo['tip'].branch(), 'dev_branch') |
cf6fe8457570
Fix an apparent regression where branch name didn't get properly stored for
Augie Fackler <durin42@gmail.com>
parents:
135
diff
changeset
|
138 |
cf6fe8457570
Fix an apparent regression where branch name didn't get properly stored for
Augie Fackler <durin42@gmail.com>
parents:
135
diff
changeset
|
139 def test_propedit_with_nothing_else_stupid(self): |
cf6fe8457570
Fix an apparent regression where branch name didn't get properly stored for
Augie Fackler <durin42@gmail.com>
parents:
135
diff
changeset
|
140 self.test_propedit_with_nothing_else(stupid=True) |
cf6fe8457570
Fix an apparent regression where branch name didn't get properly stored for
Augie Fackler <durin42@gmail.com>
parents:
135
diff
changeset
|
141 |
144
19aabf67c792
test_fetch_command: test file and directory deletions
Patrick Mezard <pmezard@gmail.com>
parents:
138
diff
changeset
|
142 def test_entry_deletion(self, stupid=False): |
19aabf67c792
test_fetch_command: test file and directory deletions
Patrick Mezard <pmezard@gmail.com>
parents:
138
diff
changeset
|
143 repo = self._load_fixture_and_fetch('delentries.svndump', |
19aabf67c792
test_fetch_command: test file and directory deletions
Patrick Mezard <pmezard@gmail.com>
parents:
138
diff
changeset
|
144 stupid=stupid) |
19aabf67c792
test_fetch_command: test file and directory deletions
Patrick Mezard <pmezard@gmail.com>
parents:
138
diff
changeset
|
145 files = list(sorted(repo['tip'].manifest())) |
19aabf67c792
test_fetch_command: test file and directory deletions
Patrick Mezard <pmezard@gmail.com>
parents:
138
diff
changeset
|
146 self.assertEqual(['aa', 'd1/c', 'd1/d2prefix'], files) |
19aabf67c792
test_fetch_command: test file and directory deletions
Patrick Mezard <pmezard@gmail.com>
parents:
138
diff
changeset
|
147 |
19aabf67c792
test_fetch_command: test file and directory deletions
Patrick Mezard <pmezard@gmail.com>
parents:
138
diff
changeset
|
148 def test_entry_deletion_stupid(self): |
19aabf67c792
test_fetch_command: test file and directory deletions
Patrick Mezard <pmezard@gmail.com>
parents:
138
diff
changeset
|
149 self.test_entry_deletion(stupid=True) |
19aabf67c792
test_fetch_command: test file and directory deletions
Patrick Mezard <pmezard@gmail.com>
parents:
138
diff
changeset
|
150 |
207
b20a6c149021
fetch: Fix a bogus case where no files in the root level of trunk caused breakage in the branch detection.
Augie Fackler <durin42@gmail.com>
parents:
203
diff
changeset
|
151 def test_fetch_when_trunk_has_no_files(self, stupid=False): |
b20a6c149021
fetch: Fix a bogus case where no files in the root level of trunk caused breakage in the branch detection.
Augie Fackler <durin42@gmail.com>
parents:
203
diff
changeset
|
152 repo = self._load_fixture_and_fetch('file_not_in_trunk_root.svndump', stupid=stupid) |
b20a6c149021
fetch: Fix a bogus case where no files in the root level of trunk caused breakage in the branch detection.
Augie Fackler <durin42@gmail.com>
parents:
203
diff
changeset
|
153 self.assertEqual(repo['tip'].branch(), 'default') |
b20a6c149021
fetch: Fix a bogus case where no files in the root level of trunk caused breakage in the branch detection.
Augie Fackler <durin42@gmail.com>
parents:
203
diff
changeset
|
154 |
b20a6c149021
fetch: Fix a bogus case where no files in the root level of trunk caused breakage in the branch detection.
Augie Fackler <durin42@gmail.com>
parents:
203
diff
changeset
|
155 def test_fetch_when_trunk_has_no_files_stupid(self): |
b20a6c149021
fetch: Fix a bogus case where no files in the root level of trunk caused breakage in the branch detection.
Augie Fackler <durin42@gmail.com>
parents:
203
diff
changeset
|
156 self.test_fetch_when_trunk_has_no_files(stupid=True) |
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
|
157 |
717
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
158 def test_path_quoting(self, stupid=False): |
866
20e73b5ab6f7
test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents:
865
diff
changeset
|
159 repo_path = self.load_svndump('non_ascii_path_1.svndump') |
717
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
160 subdir = '/b\xC3\xB8b' |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
161 quoted_subdir = urllib.quote(subdir) |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
162 |
866
20e73b5ab6f7
test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents:
865
diff
changeset
|
163 repo_url = test_util.fileurl(repo_path) |
717
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
164 wc_path = self.wc_path |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
165 wc2_path = wc_path + '-2' |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
166 |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
167 ui = self.ui(stupid=stupid) |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
168 |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
169 commands.clone(ui, repo_url + subdir, wc_path) |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
170 commands.clone(ui, repo_url + quoted_subdir, wc2_path) |
832
e9af7eba88db
globally: clean up whitespace around operators and commas to conform with PEP8
Yonggang Luo <luoyonggang@gmail.com>
parents:
717
diff
changeset
|
171 repo = hg.repository(ui, wc_path) |
717
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
172 repo2 = hg.repository(ui, wc2_path) |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
173 |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
174 self.assertEqual(repo['tip'].extra()['convert_revision'], |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
175 repo2['tip'].extra()['convert_revision']) |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
176 self.assertEqual(len(repo), len(repo2)) |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
177 |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
178 for r in repo: |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
179 self.assertEqual(repo[r].hex(), repo2[r].hex()) |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
180 |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
181 def test_path_quoting_stupid(self): |
910
312f36a425f0
Ignore invalid utf8 in commit messages
David Schleimer <dschleimer@fb.com>
parents:
866
diff
changeset
|
182 repo = self.test_path_quoting(True) |
312f36a425f0
Ignore invalid utf8 in commit messages
David Schleimer <dschleimer@fb.com>
parents:
866
diff
changeset
|
183 |
717
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
184 |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
185 def test_identical_fixtures(self): |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
186 '''ensure that the non_ascii_path_N fixtures are identical''' |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
187 fixturepaths = [ |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
188 os.path.join(test_util.FIXTURES, 'non_ascii_path_1.svndump'), |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
189 os.path.join(test_util.FIXTURES, 'non_ascii_path_2.svndump'), |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
190 ] |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
191 self.assertMultiLineEqual(open(fixturepaths[0]).read(), |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
192 open(fixturepaths[1]).read()) |
ae5968ffe6fe
svnwrap: fix handling of quotable URLs (fixes #197, refs #132)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
643
diff
changeset
|
193 |
1045
67e11b650e94
handle invalid UTF-8 in commit messages consistently
Dan Villiom Podlaski Christiansen <dan@cabo.dk>
parents:
1044
diff
changeset
|
194 def test_invalid_message(self, stupid=False): |
67e11b650e94
handle invalid UTF-8 in commit messages consistently
Dan Villiom Podlaski Christiansen <dan@cabo.dk>
parents:
1044
diff
changeset
|
195 repo = self._load_fixture_and_fetch('invalid_utf8.tar.gz', stupid=stupid) |
924
e252f9355933
test_fetch_command: fix if local encoding is not UTF-8
Patrick Mezard <patrick@mezard.eu>
parents:
910
diff
changeset
|
196 # changelog returns descriptions in local encoding |
e252f9355933
test_fetch_command: fix if local encoding is not UTF-8
Patrick Mezard <patrick@mezard.eu>
parents:
910
diff
changeset
|
197 desc = encoding.fromlocal(repo[0].description()) |
e252f9355933
test_fetch_command: fix if local encoding is not UTF-8
Patrick Mezard <patrick@mezard.eu>
parents:
910
diff
changeset
|
198 self.assertEqual(desc.decode('utf8'), |
910
312f36a425f0
Ignore invalid utf8 in commit messages
David Schleimer <dschleimer@fb.com>
parents:
866
diff
changeset
|
199 u'bl\xe5b\xe6rgr\xf8d') |
312f36a425f0
Ignore invalid utf8 in commit messages
David Schleimer <dschleimer@fb.com>
parents:
866
diff
changeset
|
200 |
1045
67e11b650e94
handle invalid UTF-8 in commit messages consistently
Dan Villiom Podlaski Christiansen <dan@cabo.dk>
parents:
1044
diff
changeset
|
201 def test_invalid_message_stupid(self): |
67e11b650e94
handle invalid UTF-8 in commit messages consistently
Dan Villiom Podlaski Christiansen <dan@cabo.dk>
parents:
1044
diff
changeset
|
202 self.test_invalid_message(True) |
67e11b650e94
handle invalid UTF-8 in commit messages consistently
Dan Villiom Podlaski Christiansen <dan@cabo.dk>
parents:
1044
diff
changeset
|
203 |
910
312f36a425f0
Ignore invalid utf8 in commit messages
David Schleimer <dschleimer@fb.com>
parents:
866
diff
changeset
|
204 |
91
7d10165cf3d9
tests: Mock the mercurial.ui.ui class like we really should to capture output.
Augie Fackler <durin42@gmail.com>
parents:
78
diff
changeset
|
205 class TestStupidPull(test_util.TestBase): |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
206 def test_stupid(self): |
865
04729f3a3d17
test_util: merge load_fixture_and_fetch() into TestBase method
Patrick Mezard <patrick@mezard.eu>
parents:
833
diff
changeset
|
207 repo = self._load_fixture_and_fetch('two_heads.svndump', stupid=True) |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
208 self.assertEqual(node.hex(repo[0].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
209 '434ed487136c1b47c1e8f952edb4dc5a8e6328df') |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
210 self.assertEqual(node.hex(repo['tip'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
211 '1083037b18d85cd84fa211c5adbaeff0fea2cd9f') |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
212 self.assertEqual(node.hex(repo['the_branch'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
213 '4e256962fc5df545e2e0a51d0d1dc61c469127e6') |
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
214 self.assertEqual(repo['the_branch'].extra()['convert_revision'], |
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
215 'svn:df2126f7-00ab-4d49-b42c-7e981dde0bcf/branches/the_branch@5') |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
216 self.assertEqual(node.hex(repo['the_branch'].parents()[0].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
217 'f1ff5b860f5dbb9a59ad0921a79da77f10f25109') |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
218 self.assertEqual(len(repo['tip'].parents()), 1) |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
219 self.assertEqual(repo['default'].extra()['convert_revision'], |
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
220 'svn:df2126f7-00ab-4d49-b42c-7e981dde0bcf/trunk@6') |
18
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
221 self.assertEqual(repo['tip'], repo['default']) |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
222 self.assertEqual(len(repo.heads()), 2) |
f4c751037a4a
Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents:
16
diff
changeset
|
223 |
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
|
224 def test_oldest_not_trunk_and_tag_vendor_branch(self): |
865
04729f3a3d17
test_util: merge load_fixture_and_fetch() into TestBase method
Patrick Mezard <patrick@mezard.eu>
parents:
833
diff
changeset
|
225 repo = self._load_fixture_and_fetch( |
78
072010a271c6
Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents:
67
diff
changeset
|
226 'tagged_vendor_and_oldest_not_trunk.svndump', |
865
04729f3a3d17
test_util: merge load_fixture_and_fetch() into TestBase method
Patrick Mezard <patrick@mezard.eu>
parents:
833
diff
changeset
|
227 stupid=True) |
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
|
228 self.assertEqual(node.hex(repo['oldest'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
229 '926671740dec045077ab20f110c1595f935334fa') |
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
|
230 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
|
231 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
|
232 self.assertEqual(node.hex(repo['tip'].node()), |
154
6fa97cfbf62f
fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents:
144
diff
changeset
|
233 '1a6c3f30911d57abb67c257ec0df3e7bc44786f7') |
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
|
234 |
938
f9014e28721b
editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents:
924
diff
changeset
|
235 def test_empty_repo(self, stupid=False): |
f9014e28721b
editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents:
924
diff
changeset
|
236 # This used to crash HgEditor because it could be closed without |
f9014e28721b
editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents:
924
diff
changeset
|
237 # having been initialized again. |
f9014e28721b
editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents:
924
diff
changeset
|
238 self._load_fixture_and_fetch('emptyrepo2.svndump', stupid=stupid) |
f9014e28721b
editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents:
924
diff
changeset
|
239 |
f9014e28721b
editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents:
924
diff
changeset
|
240 def test_empty_repo_stupid(self): |
f9014e28721b
editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents:
924
diff
changeset
|
241 self.test_empty_repo(stupid=True) |
f9014e28721b
editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents:
924
diff
changeset
|
242 |
952
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
243 def test_fetch_revert(self, stupid=False): |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
244 repo = self._load_fixture_and_fetch('revert.svndump', stupid=stupid) |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
245 graph = self.getgraph(repo) |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
246 refgraph = """\ |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
247 o changeset: 3:937dcd1206d4 |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
248 | branch: |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
249 | tags: tip |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
250 | summary: revert2 |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
251 | files: a dir/b |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
252 | |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
253 o changeset: 2:9317a748b7c3 |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
254 | branch: |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
255 | tags: |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
256 | summary: revert |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
257 | files: a dir/b |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
258 | |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
259 o changeset: 1:243259a4138a |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
260 | branch: |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
261 | tags: |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
262 | summary: changefiles |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
263 | files: a dir/b |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
264 | |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
265 o changeset: 0:ab86791fc857 |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
266 branch: |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
267 tags: |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
268 summary: init |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
269 files: a dir/b |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
270 """ |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
271 self.assertEqual(refgraph.strip(), graph.strip()) |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
272 |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
273 def test_fetch_revert_stupid(self): |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
274 self.test_fetch_revert(stupid=True) |
9c3b4f59e7e6
stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents:
950
diff
changeset
|
275 |
961
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
276 def test_fetch_movetotrunk(self, stupid=False): |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
277 repo = self._load_fixture_and_fetch('movetotrunk.svndump', |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
278 stupid=stupid, subdir='sub1/sub2') |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
279 graph = self.getgraph(repo) |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
280 refgraph = """\ |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
281 o changeset: 0:02996a5980ba |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
282 branch: |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
283 tags: tip |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
284 summary: move to trunk |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
285 files: a dir/b |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
286 """ |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
287 self.assertEqual(refgraph.strip(), graph.strip()) |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
288 |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
289 def test_fetch_movetotrunk_stupid(self): |
b729909d3793
tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents:
952
diff
changeset
|
290 self.test_fetch_movetotrunk(stupid=True) |