Mercurial > hgsubversion
annotate tests/test_fetch_branches.py @ 1107:0f16e11b2c2b stable
layouts: fix crash when importing hgext_hgsubversion
This change was introduced in 4a92eb1484ba and fixed importing issues for
mercurial < 2.8. Unfortunately, this broke imports for newer versions of
mercurial that have hgsubversion installed in sys.path.
We now wrap the import in a try-block to catch this ImportError.
author | Sean Farley <sean.michael.farley@gmail.com> |
---|---|
date | Thu, 06 Feb 2014 14:30:05 -0600 |
parents | 6e1dbf6cbc92 |
children | ba8485b9fee0 |
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:
588
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:
588
diff
changeset
|
2 |
117
3afe404042a3
Add a disabled test for unrelated branches
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
3 import unittest |
3afe404042a3
Add a disabled test for unrelated branches
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
4 |
1039
3df6ed4e7561
drop support for pre-2.0 versions of Mercurial
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
950
diff
changeset
|
5 from mercurial import error |
284
f8f9a2993705
Implement parseurl support (#revision in repository urls)
Martijn Pieters <mj@zopatista.com>
parents:
278
diff
changeset
|
6 from mercurial import hg |
133
2242dd1163c6
hg_delta_editor: fix bad parent revision calculation in the case of a branch
Augie Fackler <durin42@gmail.com>
parents:
131
diff
changeset
|
7 from mercurial import node |
2242dd1163c6
hg_delta_editor: fix bad parent revision calculation in the case of a branch
Augie Fackler <durin42@gmail.com>
parents:
131
diff
changeset
|
8 |
1103
6e1dbf6cbc92
compathacks: new module to collect hacks to work around hg internals changing
Augie Fackler <raf@durin42.com>
parents:
1094
diff
changeset
|
9 from hgsubversion import compathacks |
6e1dbf6cbc92
compathacks: new module to collect hacks to work around hg internals changing
Augie Fackler <raf@durin42.com>
parents:
1094
diff
changeset
|
10 |
117
3afe404042a3
Add a disabled test for unrelated branches
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
11 class TestFetchBranches(test_util.TestBase): |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
12 stupid_mode_tests = True |
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
13 |
284
f8f9a2993705
Implement parseurl support (#revision in repository urls)
Martijn Pieters <mj@zopatista.com>
parents:
278
diff
changeset
|
14 def _load_fixture_and_fetch_with_anchor(self, fixture_name, anchor): |
866
20e73b5ab6f7
test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents:
865
diff
changeset
|
15 repo_path = self.load_svndump(fixture_name) |
20e73b5ab6f7
test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents:
865
diff
changeset
|
16 source = '%s#%s' % (test_util.fileurl(repo_path), anchor) |
816
86d124a8768e
Fix hg.clone() calls changed by d976542986d2
Patrick Mezard <pmezard@gmail.com>
parents:
815
diff
changeset
|
17 test_util.hgclone(self.ui(), source, self.wc_path) |
576
d96aa92d9ad9
tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
551
diff
changeset
|
18 return hg.repository(self.ui(), self.wc_path) |
284
f8f9a2993705
Implement parseurl support (#revision in repository urls)
Martijn Pieters <mj@zopatista.com>
parents:
278
diff
changeset
|
19 |
815
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
20 def branches(self, repo): |
425
f5222d021665
tests: fix for new branch heads change in upstream hg.
Augie Fackler <durin42@gmail.com>
parents:
397
diff
changeset
|
21 hctxs = [repo[hn] for hn in repo.heads()] |
815
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
22 openbranches = set(ctx.branch() for ctx in hctxs if |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
23 ctx.extra().get('close', None) != '1') |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
24 closedbranches = set(ctx.branch() for ctx in hctxs if |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
25 ctx.extra().get('close', None) == '1') |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
26 return sorted(openbranches), sorted(closedbranches) |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
27 |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
28 def openbranches(self, repo): |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
29 return self.branches(repo)[0] |
372
a62965b179c1
Test for open branches in the pull result.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
344
diff
changeset
|
30 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
31 def test_rename_branch_parent(self): |
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
32 repo = self._load_fixture_and_fetch('rename_branch_parent_dir.svndump') |
551
d17cec76e769
replay: correctly handle renaming the parent dir of a branch
Augie Fackler <durin42@gmail.com>
parents:
473
diff
changeset
|
33 heads = [repo[n] for n in repo.heads()] |
d17cec76e769
replay: correctly handle renaming the parent dir of a branch
Augie Fackler <durin42@gmail.com>
parents:
473
diff
changeset
|
34 heads = dict([(ctx.branch(), ctx) for ctx in heads]) |
d17cec76e769
replay: correctly handle renaming the parent dir of a branch
Augie Fackler <durin42@gmail.com>
parents:
473
diff
changeset
|
35 # Let these tests disabled yet as the fix is not obvious |
d17cec76e769
replay: correctly handle renaming the parent dir of a branch
Augie Fackler <durin42@gmail.com>
parents:
473
diff
changeset
|
36 self.assertEqual(['dev_branch'], self.openbranches(repo)) |
d17cec76e769
replay: correctly handle renaming the parent dir of a branch
Augie Fackler <durin42@gmail.com>
parents:
473
diff
changeset
|
37 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
38 def test_unrelatedbranch(self): |
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
39 repo = self._load_fixture_and_fetch('unrelatedbranch.svndump') |
117
3afe404042a3
Add a disabled test for unrelated branches
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
40 heads = [repo[n] for n in repo.heads()] |
3afe404042a3
Add a disabled test for unrelated branches
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
41 heads = dict([(ctx.branch(), ctx) for ctx in heads]) |
3afe404042a3
Add a disabled test for unrelated branches
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
42 # Let these tests disabled yet as the fix is not obvious |
120
f508c1fa19a5
hg_delta_editor: do not assume branches are copied from trunk by default
Patrick Mezard <pmezard@gmail.com>
parents:
117
diff
changeset
|
43 self.assertEqual(heads['branch1'].manifest().keys(), ['b']) |
f508c1fa19a5
hg_delta_editor: do not assume branches are copied from trunk by default
Patrick Mezard <pmezard@gmail.com>
parents:
117
diff
changeset
|
44 self.assertEqual(heads['branch2'].manifest().keys(), ['a', 'b']) |
117
3afe404042a3
Add a disabled test for unrelated branches
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
45 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
46 def test_unorderedbranch(self): |
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
47 repo = self._load_fixture_and_fetch('unorderedbranch.svndump') |
131
4d42dbbb5127
hg_delta_editor: fix parent revision detection on branch copy
Patrick Mezard <pmezard@gmail.com>
parents:
120
diff
changeset
|
48 r = repo['branch'] |
4d42dbbb5127
hg_delta_editor: fix parent revision detection on branch copy
Patrick Mezard <pmezard@gmail.com>
parents:
120
diff
changeset
|
49 self.assertEqual(0, r.parents()[0].rev()) |
4d42dbbb5127
hg_delta_editor: fix parent revision detection on branch copy
Patrick Mezard <pmezard@gmail.com>
parents:
120
diff
changeset
|
50 self.assertEqual(['a', 'c', 'z'], sorted(r.manifest())) |
4d42dbbb5127
hg_delta_editor: fix parent revision detection on branch copy
Patrick Mezard <pmezard@gmail.com>
parents:
120
diff
changeset
|
51 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
52 def test_renamed_branch_to_trunk(self): |
950
a80b01ceb1fc
editor: relax copyfrom dir checks to avoid extra missing entries
Patrick Mezard <patrick@mezard.eu>
parents:
866
diff
changeset
|
53 config = {'hgsubversion.failonmissing': 'true'} |
147
22162380c4b9
Improve branch closing in the case of a single-rev replacement of one branch
Augie Fackler <durin42@gmail.com>
parents:
133
diff
changeset
|
54 repo = self._load_fixture_and_fetch('branch_rename_to_trunk.svndump', |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
55 config=config) |
201
883976b654b6
Be more explicit about which branch I'm checking.
Augie Fackler <durin42@gmail.com>
parents:
158
diff
changeset
|
56 self.assertEqual(repo['default'].parents()[0].branch(), 'dev_branch') |
815
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
57 self.assert_('iota' in repo['default']) |
133
2242dd1163c6
hg_delta_editor: fix bad parent revision calculation in the case of a branch
Augie Fackler <durin42@gmail.com>
parents:
131
diff
changeset
|
58 self.assertEqual(repo['old_trunk'].parents()[0].branch(), 'default') |
815
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
59 self.assert_('iota' not in repo['old_trunk']) |
372
a62965b179c1
Test for open branches in the pull result.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
344
diff
changeset
|
60 expected = ['default', 'old_trunk'] |
a62965b179c1
Test for open branches in the pull result.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
344
diff
changeset
|
61 self.assertEqual(self.openbranches(repo), expected) |
133
2242dd1163c6
hg_delta_editor: fix bad parent revision calculation in the case of a branch
Augie Fackler <durin42@gmail.com>
parents:
131
diff
changeset
|
62 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
63 def test_replace_trunk_with_branch(self): |
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
64 repo = self._load_fixture_and_fetch('replace_trunk_with_branch.svndump') |
147
22162380c4b9
Improve branch closing in the case of a single-rev replacement of one branch
Augie Fackler <durin42@gmail.com>
parents:
133
diff
changeset
|
65 self.assertEqual(repo['default'].parents()[0].branch(), 'test') |
375
af9fc01299b4
Make branch closing more Mercurial-like.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
372
diff
changeset
|
66 self.assertEqual(repo['tip'].branch(), 'default') |
af9fc01299b4
Make branch closing more Mercurial-like.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
372
diff
changeset
|
67 self.assertEqual(repo['tip'].extra().get('close'), '1') |
372
a62965b179c1
Test for open branches in the pull result.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
344
diff
changeset
|
68 self.assertEqual(self.openbranches(repo), ['default']) |
147
22162380c4b9
Improve branch closing in the case of a single-rev replacement of one branch
Augie Fackler <durin42@gmail.com>
parents:
133
diff
changeset
|
69 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
70 def test_copybeforeclose(self): |
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
71 repo = self._load_fixture_and_fetch('copybeforeclose.svndump') |
397
1b9d004a8c0a
branches: correctly deal with branch closing directly after copy/rename
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
375
diff
changeset
|
72 self.assertEqual(repo['tip'].branch(), 'test') |
1b9d004a8c0a
branches: correctly deal with branch closing directly after copy/rename
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
375
diff
changeset
|
73 self.assertEqual(repo['test'].extra().get('close'), '1') |
1b9d004a8c0a
branches: correctly deal with branch closing directly after copy/rename
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
375
diff
changeset
|
74 self.assertEqual(repo['test']['b'].data(), 'a\n') |
1b9d004a8c0a
branches: correctly deal with branch closing directly after copy/rename
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
375
diff
changeset
|
75 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
76 def test_branch_create_with_dir_delete_works(self): |
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
77 repo = self._load_fixture_and_fetch('branch_create_with_dir_delete.svndump') |
232
c0063328587f
Fix and test for directory deletes during branch creation.
Augie Fackler <durin42@gmail.com>
parents:
201
diff
changeset
|
78 self.assertEqual(repo['tip'].manifest().keys(), |
c0063328587f
Fix and test for directory deletes during branch creation.
Augie Fackler <durin42@gmail.com>
parents:
201
diff
changeset
|
79 ['alpha', 'beta', 'iota', 'gamma', ]) |
c0063328587f
Fix and test for directory deletes during branch creation.
Augie Fackler <durin42@gmail.com>
parents:
201
diff
changeset
|
80 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
81 def test_branch_tip_update_to_default(self): |
278
60acc38eac96
clone: prefer tip of default to overall tip when updating
Martijn Pieters <mj@zopatista.com>
parents:
232
diff
changeset
|
82 repo = self._load_fixture_and_fetch('unorderedbranch.svndump', |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
83 noupdate=False) |
278
60acc38eac96
clone: prefer tip of default to overall tip when updating
Martijn Pieters <mj@zopatista.com>
parents:
232
diff
changeset
|
84 self.assertEqual(repo[None].branch(), 'default') |
60acc38eac96
clone: prefer tip of default to overall tip when updating
Martijn Pieters <mj@zopatista.com>
parents:
232
diff
changeset
|
85 self.assertTrue('tip' not in repo[None].tags()) |
337
46e69be8e2c8
Reorganize to have a more conventional module structure.
Augie Fackler <durin42@gmail.com>
parents:
326
diff
changeset
|
86 |
344
4dfab1b8b7be
Mention what failed when given a non-numeric revision to clone/pull.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
87 def test_branch_pull_anchor(self): |
1039
3df6ed4e7561
drop support for pre-2.0 versions of Mercurial
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
950
diff
changeset
|
88 self.assertRaises(error.RepoLookupError, |
344
4dfab1b8b7be
Mention what failed when given a non-numeric revision to clone/pull.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
89 self._load_fixture_and_fetch_with_anchor, |
4dfab1b8b7be
Mention what failed when given a non-numeric revision to clone/pull.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
90 'unorderedbranch.svndump', 'NaN') |
284
f8f9a2993705
Implement parseurl support (#revision in repository urls)
Martijn Pieters <mj@zopatista.com>
parents:
278
diff
changeset
|
91 repo = self._load_fixture_and_fetch_with_anchor( |
344
4dfab1b8b7be
Mention what failed when given a non-numeric revision to clone/pull.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
337
diff
changeset
|
92 'unorderedbranch.svndump', '4') |
1103
6e1dbf6cbc92
compathacks: new module to collect hacks to work around hg internals changing
Augie Fackler <raf@durin42.com>
parents:
1094
diff
changeset
|
93 self.assertTrue('c' not in compathacks.branchset(repo)) |
278
60acc38eac96
clone: prefer tip of default to overall tip when updating
Martijn Pieters <mj@zopatista.com>
parents:
232
diff
changeset
|
94 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
95 def test_branches_weird_moves(self): |
865
04729f3a3d17
test_util: merge load_fixture_and_fetch() into TestBase method
Patrick Mezard <patrick@mezard.eu>
parents:
833
diff
changeset
|
96 repo = self._load_fixture_and_fetch('renamedproject.svndump', |
313
942f198b8ff5
hg_delta_editor: detect new branches issued from non-branch directories
Patrick Mezard <pmezard@gmail.com>
parents:
284
diff
changeset
|
97 subdir='project') |
942f198b8ff5
hg_delta_editor: detect new branches issued from non-branch directories
Patrick Mezard <pmezard@gmail.com>
parents:
284
diff
changeset
|
98 heads = [repo[n] for n in repo.heads()] |
942f198b8ff5
hg_delta_editor: detect new branches issued from non-branch directories
Patrick Mezard <pmezard@gmail.com>
parents:
284
diff
changeset
|
99 heads = dict((ctx.branch(), ctx) for ctx in heads) |
942f198b8ff5
hg_delta_editor: detect new branches issued from non-branch directories
Patrick Mezard <pmezard@gmail.com>
parents:
284
diff
changeset
|
100 mdefault = sorted(heads['default'].manifest().keys()) |
942f198b8ff5
hg_delta_editor: detect new branches issued from non-branch directories
Patrick Mezard <pmezard@gmail.com>
parents:
284
diff
changeset
|
101 mbranch = sorted(heads['branch'].manifest().keys()) |
942f198b8ff5
hg_delta_editor: detect new branches issued from non-branch directories
Patrick Mezard <pmezard@gmail.com>
parents:
284
diff
changeset
|
102 self.assertEqual(mdefault, ['a', 'b', 'd/a']) |
942f198b8ff5
hg_delta_editor: detect new branches issued from non-branch directories
Patrick Mezard <pmezard@gmail.com>
parents:
284
diff
changeset
|
103 self.assertEqual(mbranch, ['a']) |
942f198b8ff5
hg_delta_editor: detect new branches issued from non-branch directories
Patrick Mezard <pmezard@gmail.com>
parents:
284
diff
changeset
|
104 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
105 def test_branch_delete_parent_dir(self): |
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
106 repo = self._load_fixture_and_fetch('branch_delete_parent_dir.svndump') |
815
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
107 openb, closedb = self.branches(repo) |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
108 self.assertEqual(openb, []) |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
109 self.assertEqual(closedb, ['dev_branch']) |
e62e84a9464b
test_fetch_branches: stop comparing converted nodeids
Patrick Mezard <pmezard@gmail.com>
parents:
643
diff
changeset
|
110 self.assertEqual(list(repo['dev_branch']), ['foo']) |
473
45df4d9320fa
Fix 'parent dir of a branch is deleted' refactoring from 343da84.
Max Bowsher <maxb@f2s.com>
parents:
425
diff
changeset
|
111 |
1061
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
112 def test_replace_branch_with_branch(self): |
b8142bbf6656
test_fetch_branches: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1048
diff
changeset
|
113 repo = self._load_fixture_and_fetch('replace_branch_with_branch.svndump') |
1048
903c9c9dfe6a
tests: count revisions explicitly
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1044
diff
changeset
|
114 self.assertEqual(7, test_util.repolen(repo)) |
582
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
115 # tip is former topological branch1 being closed |
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
116 ctx = repo['tip'] |
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
117 self.assertEqual('1', ctx.extra().get('close', '0')) |
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
118 self.assertEqual('branch1', ctx.branch()) |
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
119 # r5 is where the replacement takes place |
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
120 ctx = repo[5] |
588
2723152c8111
stupid: fix getcopies() logic
Patrick Mezard <pmezard@gmail.com>
parents:
587
diff
changeset
|
121 self.assertEqual(set(['a', 'c', 'dir/e', 'dir2/e', 'f', 'g']), set(ctx)) |
582
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
122 self.assertEqual('0', ctx.extra().get('close', '0')) |
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
123 self.assertEqual('branch1', ctx.branch()) |
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
124 self.assertEqual('c\n', ctx['c'].data()) |
585
c3ba4ca81d16
editor: fix replaced files content in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
582
diff
changeset
|
125 self.assertEqual('d\n', ctx['a'].data()) |
587
c06f59441f8e
editor: fix replaced directory copies
Patrick Mezard <pmezard@gmail.com>
parents:
585
diff
changeset
|
126 self.assertEqual('e\n', ctx['dir/e'].data()) |
c06f59441f8e
editor: fix replaced directory copies
Patrick Mezard <pmezard@gmail.com>
parents:
585
diff
changeset
|
127 self.assertEqual('e\n', ctx['dir2/e'].data()) |
588
2723152c8111
stupid: fix getcopies() logic
Patrick Mezard <pmezard@gmail.com>
parents:
587
diff
changeset
|
128 self.assertEqual('f\n', ctx['f'].data()) |
2723152c8111
stupid: fix getcopies() logic
Patrick Mezard <pmezard@gmail.com>
parents:
587
diff
changeset
|
129 self.assertEqual('g\n', ctx['g'].data()) |
2723152c8111
stupid: fix getcopies() logic
Patrick Mezard <pmezard@gmail.com>
parents:
587
diff
changeset
|
130 for f in ctx: |
2723152c8111
stupid: fix getcopies() logic
Patrick Mezard <pmezard@gmail.com>
parents:
587
diff
changeset
|
131 self.assertTrue(not ctx[f].renamed()) |
582
44c56a7727c4
editor: fix issamefile() and copy detection in replay mode
Patrick Mezard <pmezard@gmail.com>
parents:
576
diff
changeset
|
132 |
1093
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
133 def test_misspelled_branches_tags(self): |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
134 config = { |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
135 'hgsubversion.branchdir': 'branchez', |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
136 'hgsubversion.tagpaths': 'tagz', |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
137 } |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
138 '''Tests using the tags dir for branches and the branches dir for tags''' |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
139 repo = self._load_fixture_and_fetch('misspelled_branches_tags.svndump', |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
140 layout='standard', |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
141 config=config) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
142 |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
143 heads = set([repo[n].branch() for n in repo.heads()]) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
144 expected_heads = set(['default', 'branch']) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
145 |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
146 self.assertEqual(heads, expected_heads) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
147 |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
148 tags = set(repo.tags()) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
149 expected_tags = set(['tip', 'tag_from_trunk', 'tag_from_branch']) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
150 self.assertEqual(tags, expected_tags) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
151 |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
152 def test_subdir_branches_tags(self): |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
153 '''Tests using the tags dir for branches and the branches dir for tags''' |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
154 config = { |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
155 'hgsubversion.branchdir': 'bran/ches', |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
156 'hgsubversion.tagpaths': 'ta/gs', |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
157 } |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
158 repo = self._load_fixture_and_fetch('subdir_branches_tags.svndump', |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
159 layout='standard', |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
160 config=config) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
161 |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
162 heads = set([repo[n].branch() for n in repo.heads()]) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
163 expected_heads = set(['default', 'branch']) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
164 |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
165 self.assertEqual(heads, expected_heads) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
166 |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
167 tags = set(repo.tags()) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
168 expected_tags = set(['tip', 'tag_from_trunk', 'tag_from_branch']) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
169 self.assertEqual(tags, expected_tags) |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
170 |
1094
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
171 def test_subproject_fetch(self): |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
172 config = { |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
173 'hgsubversion.infix': 'project', |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
174 } |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
175 repo = self._load_fixture_and_fetch('subprojects.svndump', |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
176 layout='standard', |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
177 config=config) |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
178 |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
179 heads = set([repo[n].branch() for n in repo.heads()]) |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
180 expected_heads = set(['default', 'branch']) |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
181 self.assertEqual(heads, expected_heads) |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
182 |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
183 tags = set(repo.tags()) |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
184 expected_tags = set(['tip', 'tag_from_trunk', 'tag_from_branch']) |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
185 self.assertEqual(tags, expected_tags) |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
186 |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
187 for head in repo.heads(): |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
188 ctx = repo[head] |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
189 self.assertFalse('project/file' in ctx, 'failed to strip infix') |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
190 self.assertTrue('file' in ctx, 'failed to track a simple file') |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
191 self.assertFalse('other/phile' in ctx, 'pulled in other project') |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
192 self.assertFalse('phile' in ctx, 'merged other project in repo') |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
193 |
9a7e3dbd0f6e
layouts: add support for an infix between tbt and the hg root
David Schleimer <dschleimer@fb.com>
parents:
1093
diff
changeset
|
194 |
1093
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
195 def suite(): |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
196 all_tests = [unittest.TestLoader().loadTestsFromTestCase(TestFetchBranches), |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
197 ] |
791382a21cc4
layouts: add support for configuring branches directory
David Schleimer <dschleimer@fb.com>
parents:
1061
diff
changeset
|
198 return unittest.TestSuite(all_tests) |