annotate tests/test_fetch_command.py @ 1035:2c64453f98a7

use mercurial.util.deque to support python 2.4 hgsubversion fail with python 2.4 due to the lack of remove() method in collections.deque. Fortunately, mercurial.util.deque is the version to work with python 2.4, so use it.
author Shun-ichi GOTO <gotoh@taiyo.co.jp>
date Fri, 12 Jul 2013 11:21:41 +0900
parents b729909d3793
children d741f536f23a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
906d3f302b45 Remove useless imports.
Augie Fackler <durin42@gmail.com>
parents: 154
diff changeset
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
910
312f36a425f0 Ignore invalid utf8 in commit messages
David Schleimer <dschleimer@fb.com>
parents: 866
diff changeset
194 def test_invalid_message(self):
312f36a425f0 Ignore invalid utf8 in commit messages
David Schleimer <dschleimer@fb.com>
parents: 866
diff changeset
195 repo = self._load_fixture_and_fetch('invalid_utf8.tar.gz')
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
312f36a425f0 Ignore invalid utf8 in commit messages
David Schleimer <dschleimer@fb.com>
parents: 866
diff changeset
201
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
202 class TestStupidPull(test_util.TestBase):
18
f4c751037a4a Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents: 16
diff changeset
203 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
204 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
205 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
206 '434ed487136c1b47c1e8f952edb4dc5a8e6328df')
18
f4c751037a4a Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents: 16
diff changeset
207 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
208 '1083037b18d85cd84fa211c5adbaeff0fea2cd9f')
18
f4c751037a4a Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents: 16
diff changeset
209 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
210 '4e256962fc5df545e2e0a51d0d1dc61c469127e6')
6fa97cfbf62f fetch: Refactor extra creation to be shared by real and diff replay.
Augie Fackler <durin42@gmail.com>
parents: 144
diff changeset
211 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
212 '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
213 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
214 'f1ff5b860f5dbb9a59ad0921a79da77f10f25109')
18
f4c751037a4a Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents: 16
diff changeset
215 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
216 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
217 '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
218 self.assertEqual(repo['tip'], repo['default'])
f4c751037a4a Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents: 16
diff changeset
219 self.assertEqual(len(repo.heads()), 2)
f4c751037a4a Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents: 16
diff changeset
220
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
221 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
222 repo = self._load_fixture_and_fetch(
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 67
diff changeset
223 '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
224 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
225 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
226 '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
227 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
228 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
229 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
230 '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
231
938
f9014e28721b editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents: 924
diff changeset
232 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
233 # 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
234 # having been initialized again.
f9014e28721b editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents: 924
diff changeset
235 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
236
f9014e28721b editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents: 924
diff changeset
237 def test_empty_repo_stupid(self):
f9014e28721b editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents: 924
diff changeset
238 self.test_empty_repo(stupid=True)
f9014e28721b editor: start separating svn copies from open files
Patrick Mezard <patrick@mezard.eu>
parents: 924
diff changeset
239
952
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
240 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
241 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
242 graph = self.getgraph(repo)
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
243 refgraph = """\
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
244 o changeset: 3:937dcd1206d4
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
245 | branch:
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
246 | tags: tip
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
247 | summary: revert2
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
248 | files: a dir/b
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
249 |
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
250 o changeset: 2:9317a748b7c3
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
251 | branch:
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
252 | tags:
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
253 | summary: revert
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
254 | files: a dir/b
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
255 |
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
256 o changeset: 1:243259a4138a
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
257 | branch:
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
258 | tags:
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
259 | summary: changefiles
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
260 | files: a dir/b
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
261 |
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
262 o changeset: 0:ab86791fc857
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
263 branch:
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
264 tags:
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
265 summary: init
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
266 files: a dir/b
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
267 """
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
268 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
269
9c3b4f59e7e6 stupid: do not close branch upon branch-wide revert
Patrick Mezard <patrick@mezard.eu>
parents: 950
diff changeset
270 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
271 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
272
961
b729909d3793 tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents: 952
diff changeset
273 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
274 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
275 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
276 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
277 refgraph = """\
b729909d3793 tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents: 952
diff changeset
278 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
279 branch:
b729909d3793 tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents: 952
diff changeset
280 tags: tip
b729909d3793 tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents: 952
diff changeset
281 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
282 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
283 """
b729909d3793 tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents: 952
diff changeset
284 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
285
b729909d3793 tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents: 952
diff changeset
286 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
287 self.test_fetch_movetotrunk(stupid=True)
b729909d3793 tests: add tests where files are moved from root to trunk
Patrick Mezard <patrick@mezard.eu>
parents: 952
diff changeset
288
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
289 def suite():
833
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 832
diff changeset
290 all_tests = [unittest.TestLoader().loadTestsFromTestCase(TestBasicRepoLayout),
18
f4c751037a4a Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents: 16
diff changeset
291 unittest.TestLoader().loadTestsFromTestCase(TestStupidPull),
f4c751037a4a Add a quick test for diff-based pull.
Augie Fackler <durin42@gmail.com>
parents: 16
diff changeset
292 ]
833
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 832
diff changeset
293 return unittest.TestSuite(all_tests)