annotate tests/test_fetch_mappings.py @ 962:8648ccfb8325

editor: process missing files with regular files Missing files were stored directly in RevisionMeta and resolved after the revision was replayed. It means the missing files set was no pruned by delete_entry() actions or by the filemap, and some of them were fetched for no reason. Say you convert: A branch/foo/bar (from trunk/foo/bar:123) with a filemap excluding "foo/bar". Since the directory was excluded in trunk the files cannot be found and were marked as missing even though they were discarded afterwards.
author Patrick Mezard <patrick@mezard.eu>
date Sat, 20 Oct 2012 22:22:02 +0200
parents 502613f6b583
children 64d961130a07
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
1 """Tests for author maps and file maps.
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
2 """
643
d2ef7220a079 tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 641
diff changeset
3 import test_util
d2ef7220a079 tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 641
diff changeset
4
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
5 import os
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
6 import unittest
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
7
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 257
diff changeset
8 from mercurial import commands
641
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
9 from mercurial import hg
179
a336e3e82648 Fetch: add a filemap argument for use in converting old repositories to
Graham Booker <gbooker@cod3r.com>
parents: 168
diff changeset
10 from mercurial import node
636
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
11 from mercurial import util as hgutil
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
12
430
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
13 from hgsubversion import maps
641
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
14 from hgsubversion import svncommands
769
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
15 from hgsubversion import util
899
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
16 from hgsubversion import verify
430
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
17
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
18 class MapTests(test_util.TestBase):
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
19 @property
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
20 def authors(self):
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
21 return os.path.join(self.tmpdir, 'authormap')
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
22
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
23 @property
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
24 def filemap(self):
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
25 return os.path.join(self.tmpdir, 'filemap')
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
26
574
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
27 @property
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
28 def branchmap(self):
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
29 return os.path.join(self.tmpdir, 'branchmap')
822
033b86e0f56d stupid/filemap: disable this since it doesn't currently work
Augie Fackler <durin42@gmail.com>
parents: 816
diff changeset
30
729
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
31 @property
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
32 def tagmap(self):
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
33 return os.path.join(self.tmpdir, 'tagmap')
574
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
34
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
35 def test_author_map(self, stupid=False):
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
36 repo_path = self.load_svndump('replace_trunk_with_branch.svndump')
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
37 authormap = open(self.authors, 'w')
360
27e9fea5d114 Author maps: strip comments.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 358
diff changeset
38 authormap.write('Augie=Augie Fackler <durin42@gmail.com> # stuffy\n')
358
2c0649064455 Author maps: handle lines without = gracefully.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 331
diff changeset
39 authormap.write("Augie Fackler <durin42@gmail.com>\n")
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
40 authormap.close()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 574
diff changeset
41 ui = self.ui(stupid)
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 574
diff changeset
42 ui.setconfig('hgsubversion', 'authormap', self.authors)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
43 commands.clone(ui, test_util.fileurl(repo_path),
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 257
diff changeset
44 self.wc_path, authors=self.authors)
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
45 self.assertEqual(self.repo[0].user(),
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
46 'Augie Fackler <durin42@gmail.com>')
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
47 self.assertEqual(self.repo['tip'].user(),
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
48 'evil@5b65bade-98f3-4993-a01f-b7a6710da339')
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
49
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
50 def test_author_map_stupid(self):
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
51 self.test_author_map(True)
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
52
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
53 def test_author_map_closing_author(self, stupid=False):
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
54 repo_path = self.load_svndump('replace_trunk_with_branch.svndump')
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
55 authormap = open(self.authors, 'w')
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
56 authormap.write("evil=Testy <test@test>")
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
57 authormap.close()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 574
diff changeset
58 ui = self.ui(stupid)
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 574
diff changeset
59 ui.setconfig('hgsubversion', 'authormap', self.authors)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
60 commands.clone(ui, test_util.fileurl(repo_path),
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 257
diff changeset
61 self.wc_path, authors=self.authors)
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
62 self.assertEqual(self.repo[0].user(),
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
63 'Augie@5b65bade-98f3-4993-a01f-b7a6710da339')
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
64 self.assertEqual(self.repo['tip'].user(),
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
65 'Testy <test@test>')
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
66
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
67 def test_author_map_closing_author_stupid(self):
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
68 self.test_author_map_closing_author(True)
203
907c160c6289 Refactor branch handling to be much more dynamic (and hopefully robust).
Augie Fackler <durin42@gmail.com>
parents: 179
diff changeset
69
735
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
70 def test_author_map_no_author(self, stupid=False):
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
71 repo, repo_path = self.load_and_fetch('no-author.svndump',
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
72 stupid=stupid)
735
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
73 users = set(self.repo[r].user() for r in self.repo)
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
74 expected_users = ['(no author)@%s' % self.repo.svnmeta().uuid]
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
75 self.assertEqual(sorted(users), expected_users)
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
76 test_util.rmtree(self.wc_path)
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
77
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
78 authormap = open(self.authors, 'w')
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
79 authormap.write("(no author)=Testy <test@example.com>")
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
80 authormap.close()
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
81 ui = self.ui(stupid)
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
82 ui.setconfig('hgsubversion', 'authormap', self.authors)
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
83 commands.clone(ui, test_util.fileurl(repo_path),
735
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
84 self.wc_path, authors=self.authors)
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
85 users = set(self.repo[r].user() for r in self.repo)
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
86 expected_users = ['Testy <test@example.com>']
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
87 self.assertEqual(sorted(users), expected_users)
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
88
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
89 def test_author_map_no_author_stupid(self):
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
90 self.test_author_map_no_author(True)
c2b9e08ecf10 maps: map a missing author to '(no author)'
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 729
diff changeset
91
430
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
92 def test_author_map_no_overwrite(self):
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
93 cwd = os.path.dirname(__file__)
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
94 orig = os.path.join(cwd, 'fixtures', 'author-map-test.txt')
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
95 new = open(self.authors, 'w')
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
96 new.write(open(orig).read())
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
97 new.close()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 574
diff changeset
98 test = maps.AuthorMap(self.ui(), self.authors)
430
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
99 fromself = set(test)
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
100 test.load(orig)
833
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 822
diff changeset
101 all_tests = set(test)
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 822
diff changeset
102 self.assertEqual(fromself.symmetric_difference(all_tests), set())
430
2851b81c65ce maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 360
diff changeset
103
962
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
104 def _loadwithfilemap(self, svndump, filemapcontent, stupid=False,
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
105 failonmissing=True):
954
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
106 repo_path = self.load_svndump(svndump)
179
a336e3e82648 Fetch: add a filemap argument for use in converting old repositories to
Graham Booker <gbooker@cod3r.com>
parents: 168
diff changeset
107 filemap = open(self.filemap, 'w')
954
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
108 filemap.write(filemapcontent)
179
a336e3e82648 Fetch: add a filemap argument for use in converting old repositories to
Graham Booker <gbooker@cod3r.com>
parents: 168
diff changeset
109 filemap.close()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 574
diff changeset
110 ui = self.ui(stupid)
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 574
diff changeset
111 ui.setconfig('hgsubversion', 'filemap', self.filemap)
960
502613f6b583 editor: ignore added or copied files excluded by a filemap
Patrick Mezard <patrick@mezard.eu>
parents: 954
diff changeset
112 ui.setconfig('hgsubversion', 'failoninvalidreplayfile', 'true')
962
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
113 ui.setconfig('hgsubversion', 'failonmissing', failonmissing)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
114 commands.clone(ui, test_util.fileurl(repo_path),
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 257
diff changeset
115 self.wc_path, filemap=self.filemap)
954
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
116 return self.repo
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
117
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
118 def test_file_map(self, stupid=False):
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
119 repo = self._loadwithfilemap('replace_trunk_with_branch.svndump',
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
120 "include alpha\n", stupid)
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
121 self.assertEqual(node.hex(repo[0].node()), '88e2c7492d83e4bf30fbb2dcbf6aa24d60ac688d')
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
122 self.assertEqual(node.hex(repo['default'].node()), 'e524296152246b3837fe9503c83b727075835155')
203
907c160c6289 Refactor branch handling to be much more dynamic (and hopefully robust).
Augie Fackler <durin42@gmail.com>
parents: 179
diff changeset
123
179
a336e3e82648 Fetch: add a filemap argument for use in converting old repositories to
Graham Booker <gbooker@cod3r.com>
parents: 168
diff changeset
124 def test_file_map_stupid(self):
822
033b86e0f56d stupid/filemap: disable this since it doesn't currently work
Augie Fackler <durin42@gmail.com>
parents: 816
diff changeset
125 # TODO: re-enable test if we ever reinstate this feature
033b86e0f56d stupid/filemap: disable this since it doesn't currently work
Augie Fackler <durin42@gmail.com>
parents: 816
diff changeset
126 self.assertRaises(hgutil.Abort, self.test_file_map, True)
203
907c160c6289 Refactor branch handling to be much more dynamic (and hopefully robust).
Augie Fackler <durin42@gmail.com>
parents: 179
diff changeset
127
179
a336e3e82648 Fetch: add a filemap argument for use in converting old repositories to
Graham Booker <gbooker@cod3r.com>
parents: 168
diff changeset
128 def test_file_map_exclude(self, stupid=False):
954
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
129 repo = self._loadwithfilemap('replace_trunk_with_branch.svndump',
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
130 "exclude alpha\n", stupid)
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
131 self.assertEqual(node.hex(repo[0].node()), '2c48f3525926ab6c8b8424bcf5eb34b149b61841')
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
132 self.assertEqual(node.hex(repo['default'].node()), 'b37a3c0297b71f989064d9b545b5a478bbed7cc1')
203
907c160c6289 Refactor branch handling to be much more dynamic (and hopefully robust).
Augie Fackler <durin42@gmail.com>
parents: 179
diff changeset
133
179
a336e3e82648 Fetch: add a filemap argument for use in converting old repositories to
Graham Booker <gbooker@cod3r.com>
parents: 168
diff changeset
134 def test_file_map_exclude_stupid(self):
822
033b86e0f56d stupid/filemap: disable this since it doesn't currently work
Augie Fackler <durin42@gmail.com>
parents: 816
diff changeset
135 # TODO: re-enable test if we ever reinstate this feature
033b86e0f56d stupid/filemap: disable this since it doesn't currently work
Augie Fackler <durin42@gmail.com>
parents: 816
diff changeset
136 self.assertRaises(hgutil.Abort, self.test_file_map_exclude, True)
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
137
847
0de18c5c2e35 Respect filemap rule order (rules that come first are overridden by rules that come later)
Vitaliy Filippov <vitalif@yourcmc.ru>
parents: 833
diff changeset
138 def test_file_map_rule_order(self):
954
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
139 repo = self._loadwithfilemap('replace_trunk_with_branch.svndump',
1f77bd6ec0e5 test_fetch_mappings: reduce copy/paste
Patrick Mezard <patrick@mezard.eu>
parents: 930
diff changeset
140 "exclude alpha\ninclude .\nexclude gamma\n")
848
4e203a47102a filemap tests: check the attributes we care about, rather than shas
Augie Fackler <durin42@gmail.com>
parents: 847
diff changeset
141 # The exclusion of alpha is overridden by the later rule to
4e203a47102a filemap tests: check the attributes we care about, rather than shas
Augie Fackler <durin42@gmail.com>
parents: 847
diff changeset
142 # include all of '.', whereas gamma should remain excluded
4e203a47102a filemap tests: check the attributes we care about, rather than shas
Augie Fackler <durin42@gmail.com>
parents: 847
diff changeset
143 # because it's excluded after the root directory.
4e203a47102a filemap tests: check the attributes we care about, rather than shas
Augie Fackler <durin42@gmail.com>
parents: 847
diff changeset
144 self.assertEqual(self.repo[0].manifest().keys(),
4e203a47102a filemap tests: check the attributes we care about, rather than shas
Augie Fackler <durin42@gmail.com>
parents: 847
diff changeset
145 ['alpha', 'beta'])
4e203a47102a filemap tests: check the attributes we care about, rather than shas
Augie Fackler <durin42@gmail.com>
parents: 847
diff changeset
146 self.assertEqual(self.repo['default'].manifest().keys(),
4e203a47102a filemap tests: check the attributes we care about, rather than shas
Augie Fackler <durin42@gmail.com>
parents: 847
diff changeset
147 ['alpha', 'beta'])
847
0de18c5c2e35 Respect filemap rule order (rules that come first are overridden by rules that come later)
Vitaliy Filippov <vitalif@yourcmc.ru>
parents: 833
diff changeset
148
960
502613f6b583 editor: ignore added or copied files excluded by a filemap
Patrick Mezard <patrick@mezard.eu>
parents: 954
diff changeset
149 def test_file_map_copy(self):
962
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
150 # Exercise excluding files copied from a non-excluded directory.
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
151 # There will be missing files as we are copying from an excluded
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
152 # directory.
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
153 repo = self._loadwithfilemap('copies.svndump', "exclude dir2\n",
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
154 failonmissing=False)
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
155 self.assertEqual(['dir/a', 'dir3/a'], list(repo['tip']))
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
156
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
157 def test_file_map_exclude_copy_source_and_dest(self):
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
158 # dir3 is excluded and copied from dir2 which is also excluded.
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
159 # dir3 files should not be marked as missing and fetched.
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
160 repo = self._loadwithfilemap('copies.svndump',
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
161 "exclude dir2\nexclude dir3\n")
960
502613f6b583 editor: ignore added or copied files excluded by a filemap
Patrick Mezard <patrick@mezard.eu>
parents: 954
diff changeset
162 self.assertEqual(['dir/a'], list(repo['tip']))
502613f6b583 editor: ignore added or copied files excluded by a filemap
Patrick Mezard <patrick@mezard.eu>
parents: 954
diff changeset
163
962
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
164 def test_file_map_include_file_exclude_dir(self):
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
165 # dir3 is excluded but we want dir3/a, which is also copied from
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
166 # an exluded dir2. dir3/a should be fetched.
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
167 repo = self._loadwithfilemap('copies.svndump',
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
168 "include .\nexclude dir2\nexclude dir3\ninclude dir3/a\n",
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
169 failonmissing=False)
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
170 self.assertEqual(['dir/a', 'dir3/a'], list(repo['tip']))
8648ccfb8325 editor: process missing files with regular files
Patrick Mezard <patrick@mezard.eu>
parents: 960
diff changeset
171
574
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
172 def test_branchmap(self, stupid=False):
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
173 repo_path = self.load_svndump('branchmap.svndump')
574
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
174 branchmap = open(self.branchmap, 'w')
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
175 branchmap.write("badname = good-name # stuffy\n")
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
176 branchmap.write("feature = default\n")
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
177 branchmap.close()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 574
diff changeset
178 ui = self.ui(stupid)
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 574
diff changeset
179 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
180 commands.clone(ui, test_util.fileurl(repo_path),
574
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
181 self.wc_path, branchmap=self.branchmap)
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
182 branches = set(self.repo[i].branch() for i in self.repo)
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
183 self.assert_('badname' not in branches)
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
184 self.assert_('good-name' in branches)
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
185 self.assertEquals(self.repo[2].branch(), 'default')
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
186
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
187 def test_branchmap_stupid(self):
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
188 self.test_branchmap(True)
8e025a6f0db4 add basic branchmap functionality, to rename branches
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 430
diff changeset
189
634
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
190 def test_branchmap_tagging(self, stupid=False):
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
191 '''test tagging a renamed branch, which used to raise an exception'''
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
192 repo_path = self.load_svndump('commit-to-tag.svndump')
634
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
193 branchmap = open(self.branchmap, 'w')
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
194 branchmap.write("magic = art\n")
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
195 branchmap.close()
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
196 ui = self.ui(stupid)
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
197 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
198 commands.clone(ui, test_util.fileurl(repo_path),
634
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
199 self.wc_path, branchmap=self.branchmap)
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
200 branches = set(self.repo[i].branch() for i in self.repo)
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
201 self.assertEquals(sorted(branches), ['art', 'closeme'])
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
202
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
203 def test_branchmap_tagging_stupid(self):
a400f3bf5611 replay/stupid: fix tagging on a branch renamed using a branch map
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 576
diff changeset
204 self.test_branchmap_tagging(True)
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
205
635
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
206 def test_branchmap_empty_commit(self, stupid=False):
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
207 '''test mapping an empty commit on a renamed branch'''
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
208 repo_path = self.load_svndump('propset-branch.svndump')
635
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
209 branchmap = open(self.branchmap, 'w')
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
210 branchmap.write("the-branch = bob\n")
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
211 branchmap.close()
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
212 ui = self.ui(stupid)
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
213 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
214 commands.clone(ui, test_util.fileurl(repo_path),
635
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
215 self.wc_path, branchmap=self.branchmap)
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
216 branches = set(self.repo[i].branch() for i in self.repo)
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
217 self.assertEquals(sorted(branches), ['bob', 'default'])
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
218
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
219 def test_branchmap_empty_commit_stupid(self):
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
220 '''test mapping an empty commit on a renamed branch (stupid)'''
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
221 self.test_branchmap_empty_commit(True)
e2c3349b2cca branchmap: map empty commits in replay mode.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 634
diff changeset
222
639
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
223 def test_branchmap_combine(self, stupid=False):
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
224 '''test combining two branches, but retaining heads'''
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
225 repo_path = self.load_svndump('branchmap.svndump')
639
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
226 branchmap = open(self.branchmap, 'w')
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
227 branchmap.write("badname = default\n")
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
228 branchmap.write("feature = default\n")
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
229 branchmap.close()
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
230 ui = self.ui(stupid)
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
231 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
232 commands.clone(ui, test_util.fileurl(repo_path),
639
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
233 self.wc_path, branchmap=self.branchmap)
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
234 branches = set(self.repo[i].branch() for i in self.repo)
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
235 self.assertEquals(sorted(branches), ['default'])
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
236 self.assertEquals(len(self.repo.heads()), 2)
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
237 self.assertEquals(len(self.repo.branchheads('default')), 2)
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
238
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
239 # test that the mapping does not affect branch info
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
240 branches = self.repo.svnmeta().branches
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
241 self.assertEquals(sorted(branches.keys()),
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
242 [None, 'badname', 'feature'])
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
243
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
244 def test_branchmap_combine_stupid(self):
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
245 '''test combining two branches, but retaining heads (stupid)'''
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
246 self.test_branchmap_combine(True)
b2c8c2079822 tests: add test for combining two branches using the branchmap
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 636
diff changeset
247
641
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
248 def test_branchmap_rebuildmeta(self, stupid=False):
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
249 '''test rebuildmeta on a branchmapped clone'''
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
250 repo_path = self.load_svndump('branchmap.svndump')
641
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
251 branchmap = open(self.branchmap, 'w')
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
252 branchmap.write("badname = dit\n")
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
253 branchmap.write("feature = dah\n")
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
254 branchmap.close()
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
255 ui = self.ui(stupid)
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
256 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
257 commands.clone(ui, test_util.fileurl(repo_path),
641
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
258 self.wc_path, branchmap=self.branchmap)
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
259 originfo = self.repo.svnmeta().branches
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
260
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
261 # clone & rebuild
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
262 ui = self.ui(stupid)
816
86d124a8768e Fix hg.clone() calls changed by d976542986d2
Patrick Mezard <pmezard@gmail.com>
parents: 770
diff changeset
263 src, dest = test_util.hgclone(ui, self.wc_path, self.wc_path + '_clone',
86d124a8768e Fix hg.clone() calls changed by d976542986d2
Patrick Mezard <pmezard@gmail.com>
parents: 770
diff changeset
264 update=False)
930
5bacb9c63e3e Fix more peer breakage with old hg versions
Patrick Mezard <patrick@mezard.eu>
parents: 916
diff changeset
265 src = test_util.getlocalpeer(src)
5bacb9c63e3e Fix more peer breakage with old hg versions
Patrick Mezard <patrick@mezard.eu>
parents: 916
diff changeset
266 dest = test_util.getlocalpeer(dest)
641
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
267 svncommands.rebuildmeta(ui, dest,
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
268 args=[test_util.fileurl(repo_path)])
641
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
269
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
270 # just check the keys; assume the contents are unaffected by the branch
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
271 # map and thus properly tested by other tests
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
272 self.assertEquals(sorted(src.svnmeta().branches),
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
273 sorted(dest.svnmeta().branches))
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
274
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
275 def test_branchmap_rebuildmeta_stupid(self):
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
276 '''test rebuildmeta on a branchmapped clone (stupid)'''
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
277 self.test_branchmap_rebuildmeta(True)
67513cca972f rebuildmeta: handle mapped branch names.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 639
diff changeset
278
702
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
279 def test_branchmap_verify(self, stupid=False):
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
280 '''test verify on a branchmapped clone'''
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
281 repo_path = self.load_svndump('branchmap.svndump')
702
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
282 branchmap = open(self.branchmap, 'w')
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
283 branchmap.write("badname = dit\n")
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
284 branchmap.write("feature = dah\n")
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
285 branchmap.close()
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
286 ui = self.ui(stupid)
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
287 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
288 commands.clone(ui, test_util.fileurl(repo_path),
702
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
289 self.wc_path, branchmap=self.branchmap)
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
290 repo = self.repo
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
291
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
292 for r in repo:
897
6bc8046e3d0a move verify to a file of its own
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 867
diff changeset
293 self.assertEquals(verify.verify(ui, repo, rev=r), 0)
702
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
294
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
295 def test_branchmap_verify_stupid(self):
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
296 '''test verify on a branchmapped clone (stupid)'''
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
297 self.test_branchmap_verify(True)
841399d10c79 verify: fix verifying mapped branches.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
298
636
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
299 def test_branchmap_no_replacement(self):
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
300 '''
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
301 test that empty mappings are rejected
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
302
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
303 Empty mappings are lines like 'this ='. The most sensible thing to do
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
304 is to not convert the 'this' branches. Until we can do that, we settle
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
305 with aborting.
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
306 '''
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
307 repo_path = self.load_svndump('propset-branch.svndump')
636
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
308 branchmap = open(self.branchmap, 'w')
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
309 branchmap.write("closeme =\n")
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
310 branchmap.close()
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
311 self.assertRaises(hgutil.Abort,
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
312 maps.BranchMap, self.ui(), self.branchmap)
d4f433ee709a branchmap: reject empty mappings
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 635
diff changeset
313
729
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
314 def test_tagmap(self, stupid=False):
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
315 repo_path = self.load_svndump('basic_tag_tests.svndump')
729
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
316 tagmap = open(self.tagmap, 'w')
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
317 tagmap.write("tag_r3 = 3.x # stuffy\n")
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
318 tagmap.write("copied_tag = \n")
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
319 tagmap.close()
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
320
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
321 ui = self.ui(stupid)
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
322 ui.setconfig('hgsubversion', 'tagmap', self.tagmap)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
323 commands.clone(ui, test_util.fileurl(repo_path),
729
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
324 self.wc_path, tagmap=self.tagmap)
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
325 tags = self.repo.tags()
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
326 assert 'tag_r3' not in tags
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
327 assert '3.x' in tags
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
328 assert 'copied_tag' not in tags
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
329
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
330 def test_tagmap_stupid(self):
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
331 self.test_tagmap(True)
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
332
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
333 def test_tagren_changed(self, stupid=False):
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
334 repo_path = self.load_svndump('commit-to-tag.svndump')
729
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
335 tagmap = open(self.tagmap, 'w')
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
336 tagmap.write("edit-at-create = edit-past\n")
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
337 tagmap.write("also-edit = \n")
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
338 tagmap.write("will-edit = edit-future\n")
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
339 tagmap.close()
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
340
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
341 ui = self.ui(stupid)
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
342 ui.setconfig('hgsubversion', 'tagmap', self.tagmap)
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 848
diff changeset
343 commands.clone(ui, test_util.fileurl(repo_path),
729
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
344 self.wc_path, tagmap=self.tagmap)
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
345 tags = self.repo.tags()
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
346
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
347 def test_tagren_changed_stupid(self):
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
348 self.test_tagren_changed(True)
467b95348e6a implement tag renames
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 702
diff changeset
349
769
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
350 def test_empty_log_message(self, stupid=False):
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
351 repo, repo_path = self.load_and_fetch('empty-log-message.svndump',
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
352 stupid=stupid)
769
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
353
770
4dfc41b15d9a make the default substition for an empty commit description the empty string
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 769
diff changeset
354 self.assertEqual(repo['tip'].description(), '')
769
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
355
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
356 test_util.rmtree(self.wc_path)
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
357
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
358 ui = self.ui(stupid)
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
359 ui.setconfig('hgsubversion', 'defaultmessage', 'blyf')
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
360 commands.clone(ui, test_util.fileurl(repo_path), self.wc_path)
769
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
361
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
362 self.assertEqual(self.repo['tip'].description(), 'blyf')
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
363
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
364
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
365 def test_empty_log_message_stupid(self):
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
366 self.test_empty_log_message(True)
cc1d4aa3ba41 configurable substitution for empty commit message (fixes #195)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 768
diff changeset
367
168
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
368 def suite():
4f26fa049452 authormap: Add tests, fix in stupid mode.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
369 return unittest.TestLoader().loadTestsFromTestCase(MapTests)