annotate tests/test_utility_commands.py @ 1526:5adfb81c4680

util: add method for forcing unicode objects back to utf8 bytes Use this to force all filenames to be bytes, even when underlying svn bindings really want to give us unicodes instead.
author Augie Fackler <raf@durin42.com>
date Thu, 31 Aug 2017 00:45:27 -0400
parents 180e0d5fba2e
children 0ebcc5bbf692
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
643
d2ef7220a079 tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 578
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: 578
diff changeset
2
149
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
3 import os
153
46f6b872c988 tests: Fix some missing suite definitions so that running the full testsuite
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
4 import unittest
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
5 import re
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
6
264
112d57bb736e rebase: moved to wrappers, now a wrapper around rebase triggered with --svn.
Augie Fackler <durin42@gmail.com>
parents: 257
diff changeset
7 from hgext import rebase
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
8 from mercurial import hg
149
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
9 from mercurial import revlog
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
10 from mercurial import context
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
11 from mercurial import node
347
537de0300510 Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 337
diff changeset
12 from mercurial import commands
746
174f03c288d4 svnmeta: abort when no UUID given and none is stored on disk.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 743
diff changeset
13 from mercurial import util as hgutil
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
14
337
46e69be8e2c8 Reorganize to have a more conventional module structure.
Augie Fackler <durin42@gmail.com>
parents: 331
diff changeset
15 from hgsubversion import util
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
16 from hgsubversion import svncommands
897
6bc8046e3d0a move verify to a file of its own
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 892
diff changeset
17 from hgsubversion import verify
337
46e69be8e2c8 Reorganize to have a more conventional module structure.
Augie Fackler <durin42@gmail.com>
parents: 331
diff changeset
18 from hgsubversion import wrappers
1204
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
19 from hgsubversion import compathacks
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
20
178
33ebdcb75bcd test_utility_commands: fix normalized URL references under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 160
diff changeset
21 expected_info_output = '''URL: %(repourl)s/%(branch)s
33ebdcb75bcd test_utility_commands: fix normalized URL references under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 160
diff changeset
22 Repository Root: %(repourl)s
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
23 Repository UUID: df2126f7-00ab-4d49-b42c-7e981dde0bcf
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
24 Revision: %(rev)s
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
25 Node Kind: directory
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
26 Last Changed Author: durin
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
27 Last Changed Rev: %(rev)s
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
28 Last Changed Date: %(date)s
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
29 '''
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
30
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
31 def repourl(repo_path):
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
32 return util.normalize_url(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: 264
diff changeset
33
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
34 class UtilityTests(test_util.TestBase):
1077
8f3a241b790d test_utility_commands: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
35 stupid_mode_tests = True
8f3a241b790d test_utility_commands: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
36
1092
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
37 def test_info_output(self, custom=False):
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
38 if custom:
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
39 config = {
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
40 'hgsubversionbranch.default': 'trunk',
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
41 'hgsubversionbranch.the_branch': 'branches/the_branch',
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
42 }
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
43 else:
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
44 config = {}
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
45 repo, repo_path = self.load_and_fetch('two_heads.svndump', config=config)
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
46 hg.update(self.repo, 'the_branch')
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
47 u = self.ui()
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
48 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
49 svncommands.info(u, self.repo)
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
50 actual = u.popbuffer()
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
51 expected = (expected_info_output %
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
52 {'date': '2008-10-08 01:39:05 +0000 (Wed, 08 Oct 2008)',
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
53 'repourl': repourl(repo_path),
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
54 'branch': 'branches/the_branch',
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
55 'rev': 5,
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
56 })
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
57 self.assertMultiLineEqual(actual, expected)
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
58 hg.update(self.repo, 'default')
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
59 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
60 svncommands.info(u, self.repo)
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
61 actual = u.popbuffer()
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
62 expected = (expected_info_output %
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
63 {'date': '2008-10-08 01:39:29 +0000 (Wed, 08 Oct 2008)',
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
64 'repourl': repourl(repo_path),
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
65 'branch': 'trunk',
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
66 'rev': 6,
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
67 })
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
68 self.assertMultiLineEqual(actual, expected)
503
00ecb2bc005c Add a -r option to hg svn. Use with hg svn info to change the mercurial rev.
Jason Ostrander <jason@sentilla.com>
parents: 403
diff changeset
69 hg.update(self.repo, 'default')
00ecb2bc005c Add a -r option to hg svn. Use with hg svn info to change the mercurial rev.
Jason Ostrander <jason@sentilla.com>
parents: 403
diff changeset
70 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
71 svncommands.info(u, self.repo, rev=3)
503
00ecb2bc005c Add a -r option to hg svn. Use with hg svn info to change the mercurial rev.
Jason Ostrander <jason@sentilla.com>
parents: 403
diff changeset
72 actual = u.popbuffer()
00ecb2bc005c Add a -r option to hg svn. Use with hg svn info to change the mercurial rev.
Jason Ostrander <jason@sentilla.com>
parents: 403
diff changeset
73 expected = (expected_info_output %
00ecb2bc005c Add a -r option to hg svn. Use with hg svn info to change the mercurial rev.
Jason Ostrander <jason@sentilla.com>
parents: 403
diff changeset
74 {'date': '2008-10-08 01:39:05 +0000 (Wed, 08 Oct 2008)',
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
75 'repourl': repourl(repo_path),
503
00ecb2bc005c Add a -r option to hg svn. Use with hg svn info to change the mercurial rev.
Jason Ostrander <jason@sentilla.com>
parents: 403
diff changeset
76 'branch': 'branches/the_branch',
00ecb2bc005c Add a -r option to hg svn. Use with hg svn info to change the mercurial rev.
Jason Ostrander <jason@sentilla.com>
parents: 403
diff changeset
77 'rev': 5,
00ecb2bc005c Add a -r option to hg svn. Use with hg svn info to change the mercurial rev.
Jason Ostrander <jason@sentilla.com>
parents: 403
diff changeset
78 })
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
79 self.assertMultiLineEqual(actual, expected)
921
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
80 destpath = self.wc_path + '_clone'
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
81 test_util.hgclone(u, self.repo, destpath)
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
82 repo2 = hg.repository(u, destpath)
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
83 repo2.ui.setconfig('paths', 'default-push',
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
84 self.repo.ui.config('paths', 'default'))
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
85 hg.update(repo2, 'default')
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
86 svncommands.rebuildmeta(u, repo2, [])
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
87 u.pushbuffer()
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
88 svncommands.info(u, repo2)
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
89 actual = u.popbuffer()
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
90 expected = (expected_info_output %
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
91 {'date': '2008-10-08 01:39:29 +0000 (Wed, 08 Oct 2008)',
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
92 'repourl': repourl(repo_path),
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
93 'branch': 'trunk',
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
94 'rev': 6,
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
95 })
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
96 self.assertMultiLineEqual(actual, expected)
139
89a737852d33 utility_commands: Add tests for url and info. Fix a bad mock in the process.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
97
1092
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
98 def test_info_output_custom(self):
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
99 self.test_info_output(custom=True)
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
100
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
101 def test_info_single(self, custom=False):
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
102 if custom:
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
103 subdir=None
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
104 config = {
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
105 'hgsubversionbranch.default': 'trunk/'
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
106 }
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
107 else:
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
108 subdir='trunk'
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
109 config = {}
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
110 repo, repo_path = self.load_and_fetch('two_heads.svndump',
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
111 subdir=subdir,
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
112 config=config)
549
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
113 hg.update(self.repo, 'tip')
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
114 u = self.ui()
549
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
115 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
116 svncommands.info(u, self.repo)
549
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
117 actual = u.popbuffer()
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
118 expected = (expected_info_output %
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
119 {'date': '2008-10-08 01:39:29 +0000 (Wed, 08 Oct 2008)',
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
120 'repourl': repourl(repo_path),
549
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
121 'branch': 'trunk',
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
122 'rev': 6,
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
123 })
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
124 self.assertMultiLineEqual(expected, actual)
549
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
125
1092
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
126 def test_info_custom_single(self):
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
127 self.test_info_single(custom=True)
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
128
754
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
129 def test_missing_metadata(self):
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
130 self._load_fixture_and_fetch('two_heads.svndump')
1503
180e0d5fba2e join: remove uses of repo.join/wjoin
Durham Goode <durham@fb.com>
parents: 1204
diff changeset
131 os.remove(self.repo.vfs.join('svn/branch_info'))
989
68191be64af8 updatemeta: fix missing errno import
Patrick Mezard <patrick@mezard.eu>
parents: 921
diff changeset
132 svncommands.updatemeta(self.ui(), self.repo, [])
68191be64af8 updatemeta: fix missing errno import
Patrick Mezard <patrick@mezard.eu>
parents: 921
diff changeset
133
1503
180e0d5fba2e join: remove uses of repo.join/wjoin
Durham Goode <durham@fb.com>
parents: 1204
diff changeset
134 test_util.rmtree(self.repo.vfs.join('svn'))
754
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
135 self.assertRaises(hgutil.Abort,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
136 self.repo.svnmeta)
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
137 self.assertRaises(hgutil.Abort,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
138 svncommands.info,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
139 self.ui(), repo=self.repo, args=[])
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
140 self.assertRaises(hgutil.Abort,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
141 svncommands.genignore,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
142 self.ui(), repo=self.repo, args=[])
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
143
1503
180e0d5fba2e join: remove uses of repo.join/wjoin
Durham Goode <durham@fb.com>
parents: 1204
diff changeset
144 os.remove(self.repo.vfs.join('hgrc'))
754
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
145 self.assertRaises(hgutil.Abort,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
146 self.repo.svnmeta)
746
174f03c288d4 svnmeta: abort when no UUID given and none is stored on disk.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 743
diff changeset
147 self.assertRaises(hgutil.Abort,
754
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
148 svncommands.info,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
149 self.ui(), repo=self.repo, args=[])
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
150 self.assertRaises(hgutil.Abort,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
151 svncommands.genignore,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
152 self.ui(), repo=self.repo, args=[])
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
153
746
174f03c288d4 svnmeta: abort when no UUID given and none is stored on disk.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 743
diff changeset
154 self.assertRaises(hgutil.Abort,
754
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
155 svncommands.rebuildmeta,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
156 self.ui(), repo=self.repo, args=[])
746
174f03c288d4 svnmeta: abort when no UUID given and none is stored on disk.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 743
diff changeset
157
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
158 def test_parent_output(self):
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
159 self._load_fixture_and_fetch('two_heads.svndump')
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
160 u = self.ui()
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
161 u.pushbuffer()
832
e9af7eba88db globally: clean up whitespace around operators and commas to conform with PEP8
Yonggang Luo <luoyonggang@gmail.com>
parents: 754
diff changeset
162 parents = (self.repo['the_branch'].node(), revlog.nullid,)
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
163 def filectxfn(repo, memctx, path):
1204
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
164 return compathacks.makememfilectx(repo,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
165 path=path,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
166 data='added',
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
167 islink=False,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
168 isexec=False,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
169 copied=False)
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
170 ctx = context.memctx(self.repo,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
171 parents,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
172 'automated test',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
173 ['added_bogus_file', 'other_added_file', ],
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
174 filectxfn,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
175 'testy',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
176 '2008-12-21 16:32:00 -0500',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
177 {'branch': 'localbranch', })
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
178 new = self.repo.commitctx(ctx)
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
179 hg.update(self.repo, new)
403
37c96b78b8c0 uisetup: use a single loop/abstraction for wrapping all the commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 347
diff changeset
180 wrappers.parents(lambda x, y: None, u, self.repo, svn=True)
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
181 actual = u.popbuffer()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
182 self.assertEqual(actual, '3:4e256962fc5d\n')
256
7932d098cb5f Refactor commands to wrap their hg equivalent adding a --svn flag where sane.
Augie Fackler <durin42@gmail.com>
parents: 253
diff changeset
183
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
184 hg.update(self.repo, 'default')
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
185
256
7932d098cb5f Refactor commands to wrap their hg equivalent adding a --svn flag where sane.
Augie Fackler <durin42@gmail.com>
parents: 253
diff changeset
186 # Make sure styles work
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
187 u.pushbuffer()
403
37c96b78b8c0 uisetup: use a single loop/abstraction for wrapping all the commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 347
diff changeset
188 wrappers.parents(lambda x, y: None, u, self.repo, svn=True, style='compact')
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
189 actual = u.popbuffer()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
190 self.assertEqual(actual, '4:1083037b18d8\n')
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
191
256
7932d098cb5f Refactor commands to wrap their hg equivalent adding a --svn flag where sane.
Augie Fackler <durin42@gmail.com>
parents: 253
diff changeset
192 # custom templates too
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
193 u.pushbuffer()
403
37c96b78b8c0 uisetup: use a single loop/abstraction for wrapping all the commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 347
diff changeset
194 wrappers.parents(lambda x, y: None, u, self.repo, svn=True, template='{node}\n')
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
195 actual = u.popbuffer()
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
196 self.assertEqual(actual, '1083037b18d85cd84fa211c5adbaeff0fea2cd9f\n')
256
7932d098cb5f Refactor commands to wrap their hg equivalent adding a --svn flag where sane.
Augie Fackler <durin42@gmail.com>
parents: 253
diff changeset
197
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
198 u.pushbuffer()
403
37c96b78b8c0 uisetup: use a single loop/abstraction for wrapping all the commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 347
diff changeset
199 wrappers.parents(lambda x, y: None, u, self.repo, svn=True)
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
200 actual = u.popbuffer()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
201 self.assertEqual(actual, '4:1083037b18d8\n')
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
202
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
203 def test_outgoing_output(self):
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
204 repo, repo_path = self.load_and_fetch('two_heads.svndump')
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
205 u = self.ui()
832
e9af7eba88db globally: clean up whitespace around operators and commas to conform with PEP8
Yonggang Luo <luoyonggang@gmail.com>
parents: 754
diff changeset
206 parents = (self.repo['the_branch'].node(), revlog.nullid,)
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
207 def filectxfn(repo, memctx, path):
1204
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
208 return compathacks.makememfilectx(repo,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
209 path=path,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
210 data='added',
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
211 islink=False,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
212 isexec=False,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
213 copied=False)
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
214 ctx = context.memctx(self.repo,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
215 parents,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
216 'automated test',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
217 ['added_bogus_file', 'other_added_file', ],
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
218 filectxfn,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
219 'testy',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
220 '2008-12-21 16:32:00 -0500',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
221 {'branch': 'localbranch', })
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
222 new = self.repo.commitctx(ctx)
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
223 hg.update(self.repo, new)
347
537de0300510 Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 337
diff changeset
224 u.pushbuffer()
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
225 commands.outgoing(u, self.repo, repourl(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: 264
diff changeset
226 actual = u.popbuffer()
347
537de0300510 Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 337
diff changeset
227 self.assertTrue(node.hex(self.repo['localbranch'].node())[:8] in actual)
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
228 self.assertEqual(actual.strip(), '5:6de15430fa20')
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
229 hg.update(self.repo, 'default')
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
230 u.pushbuffer()
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
231 commands.outgoing(u, self.repo, repourl(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: 264
diff changeset
232 actual = u.popbuffer()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
233 self.assertEqual(actual, '')
140
9ffde8662967 util: Add a command to normalize svn urls and use it in a couple of places. Test that it works and prevents failed assertions.
Augie Fackler <durin42@gmail.com>
parents: 139
diff changeset
234
149
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
235 def test_rebase(self):
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
236 self._load_fixture_and_fetch('two_revs.svndump')
832
e9af7eba88db globally: clean up whitespace around operators and commas to conform with PEP8
Yonggang Luo <luoyonggang@gmail.com>
parents: 754
diff changeset
237 parents = (self.repo[0].node(), revlog.nullid,)
149
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
238 def filectxfn(repo, memctx, path):
1204
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
239 return compathacks.makememfilectx(repo,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
240 path=path,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
241 data='added',
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
242 islink=False,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
243 isexec=False,
e73df57b2b07 test_utility_commands: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents: 1092
diff changeset
244 copied=False)
149
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
245 ctx = context.memctx(self.repo,
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
246 parents,
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
247 'automated test',
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
248 ['added_bogus_file', 'other_added_file', ],
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
249 filectxfn,
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
250 'testy',
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
251 '2008-12-21 16:32:00 -0500',
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
252 {'branch': 'localbranch', })
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
253 self.repo.commitctx(ctx)
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
254 self.assertEqual(self.repo['tip'].branch(), 'localbranch')
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
255 beforerebasehash = self.repo['tip'].node()
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
256 hg.update(self.repo, 'tip')
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
257 wrappers.rebase(rebase.rebase, self.ui(), self.repo, svn=True)
149
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
258 self.assertEqual(self.repo['tip'].branch(), 'localbranch')
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
259 self.assertEqual(self.repo['tip'].parents()[0].parents()[0], self.repo[0])
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
260 self.assertNotEqual(beforerebasehash, self.repo['tip'].node())
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
261
1092
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
262 def test_genignore(self, layout='auto'):
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
263 """ Test generation of .hgignore file. """
1092
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
264 if layout == 'custom':
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
265 config = {
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
266 'hgsubversionbranch.default': 'trunk',
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
267 }
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
268 else:
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
269 config = {}
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
270 repo = self._load_fixture_and_fetch('ignores.svndump',
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
271 layout=layout,
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
272 noupdate=False,
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
273 config=config)
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
274 u = self.ui()
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
275 u.pushbuffer()
865
04729f3a3d17 test_util: merge load_fixture_and_fetch() into TestBase method
Patrick Mezard <patrick@mezard.eu>
parents: 833
diff changeset
276 svncommands.genignore(u, repo, self.wc_path)
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
277 self.assertMultiLineEqual(open(os.path.join(self.wc_path, '.hgignore')).read(),
199
91db8fc049b0 Add a genignore utility command that generates an hgignore file by scraping svn:ignore properties.
Augie Fackler <durin42@gmail.com>
parents: 195
diff changeset
278 '.hgignore\nsyntax:glob\nblah\notherblah\nbaz/magic\n')
91db8fc049b0 Add a genignore utility command that generates an hgignore file by scraping svn:ignore properties.
Augie Fackler <durin42@gmail.com>
parents: 195
diff changeset
279
550
f0159775e0f1 utility_commands: fix hg svn genignore for single-directory mode
Augie Fackler <durin42@gmail.com>
parents: 549
diff changeset
280 def test_genignore_single(self):
1092
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
281 self.test_genignore(layout='single')
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
282
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
283 def test_genignore_custom(self):
cd0d14e25757 layouts: add custom layout for those of us that need weird mappings
David Schleimer <dschleimer@fb.com>
parents: 1077
diff changeset
284 self.test_genignore(layout='custom')
550
f0159775e0f1 utility_commands: fix hg svn genignore for single-directory mode
Augie Fackler <durin42@gmail.com>
parents: 549
diff changeset
285
236
c34abd2448b7 Issue #60: Add a svn sub-command to list all authors in a Subversion repository
Daniel Tang <dytang@cs.purdue.edu>
parents: 230
diff changeset
286 def test_list_authors(self):
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
287 repo_path = self.load_svndump('replace_trunk_with_branch.svndump')
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
288 u = self.ui()
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
289 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
290 svncommands.listauthors(u,
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
291 args=[test_util.fileurl(repo_path)],
253
c3d5c4ae9c7c Work with simple command table instead of decorators.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 241
diff changeset
292 authors=None)
331
75f082b5897e Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 264
diff changeset
293 actual = u.popbuffer()
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
294 self.assertMultiLineEqual(actual, 'Augie\nevil\n')
236
c34abd2448b7 Issue #60: Add a svn sub-command to list all authors in a Subversion repository
Daniel Tang <dytang@cs.purdue.edu>
parents: 230
diff changeset
295
c34abd2448b7 Issue #60: Add a svn sub-command to list all authors in a Subversion repository
Daniel Tang <dytang@cs.purdue.edu>
parents: 230
diff changeset
296 def test_list_authors_map(self):
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
297 repo_path = self.load_svndump('replace_trunk_with_branch.svndump')
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
298 author_path = os.path.join(repo_path, 'authors')
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
299 svncommands.listauthors(self.ui(),
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
300 args=[test_util.fileurl(repo_path)],
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
301 authors=author_path)
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
302 self.assertMultiLineEqual(open(author_path).read(), 'Augie=\nevil=\n')
256
7932d098cb5f Refactor commands to wrap their hg equivalent adding a --svn flag where sane.
Augie Fackler <durin42@gmail.com>
parents: 253
diff changeset
303
1077
8f3a241b790d test_utility_commands: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
304 def test_svnverify(self):
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
305 repo, repo_path = self.load_and_fetch('binaryfiles.svndump',
1077
8f3a241b790d test_utility_commands: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
306 noupdate=False)
8f3a241b790d test_utility_commands: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
307 ret = verify.verify(self.ui(), repo, [], rev=1)
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
308 self.assertEqual(0, ret)
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
309 repo_path = self.load_svndump('binaryfiles-broken.svndump')
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
310 u = self.ui()
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
311 u.pushbuffer()
899
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
312 ret = verify.verify(u, repo, [test_util.fileurl(repo_path)],
1077
8f3a241b790d test_utility_commands: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
313 rev=1)
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
314 output = u.popbuffer()
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
315 self.assertEqual(1, ret)
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
316 output = re.sub(r'file://\S+', 'file://', output)
887
f95c429124f3 make assertion failures slightly prettier and more readable
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 881
diff changeset
317 self.assertMultiLineEqual("""\
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
318 verifying d51f46a715a1 against file://
892
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
319 difference in: binary2
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
320 unexpected file: binary1
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
321 missing file: binary3
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
322 """, output)
153
46f6b872c988 tests: Fix some missing suite definitions so that running the full testsuite
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
323
1077
8f3a241b790d test_utility_commands: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
324 def test_corruption(self):
892
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
325 SUCCESS = 0
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
326 FAILURE = 1
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
327
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
328 repo, repo_path = self.load_and_fetch('correct.svndump', layout='single',
1077
8f3a241b790d test_utility_commands: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
329 subdir='')
892
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
330
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
331 ui = self.ui()
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
332
1077
8f3a241b790d test_utility_commands: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 1044
diff changeset
333 self.assertEqual(SUCCESS, verify.verify(ui, self.repo, rev='tip'))
892
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
334
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
335 corrupt_source = test_util.fileurl(self.load_svndump('corrupt.svndump'))
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
336
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
337 repo.ui.setconfig('paths', 'default', corrupt_source)
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
338
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
339 ui.pushbuffer()
897
6bc8046e3d0a move verify to a file of its own
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 892
diff changeset
340 code = verify.verify(ui, repo, rev='tip')
892
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
341 actual = ui.popbuffer()
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
342
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
343 actual = actual.replace(corrupt_source, '$REPO')
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
344 actual = set(actual.splitlines())
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
345
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
346 expected = set([
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
347 'verifying 78e965230a13 against $REPO@1',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
348 'missing file: missing-file',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
349 'wrong flags for: executable-file',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
350 'wrong flags for: symlink',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
351 'wrong flags for: regular-file',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
352 'difference in: another-regular-file',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
353 'difference in: regular-file',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
354 'unexpected file: empty-file',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
355 ])
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
356
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
357 self.assertEqual((FAILURE, expected), (code, actual))
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
358
918
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
359 def test_svnrebuildmeta(self):
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
360 otherpath = self.load_svndump('binaryfiles-broken.svndump')
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
361 otherurl = test_util.fileurl(otherpath)
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
362 self.load_and_fetch('replace_trunk_with_branch.svndump')
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
363 # rebuildmeta with original repo
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
364 svncommands.rebuildmeta(self.ui(), repo=self.repo, args=[])
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
365 # rebuildmeta with unrelated repo
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
366 self.assertRaises(hgutil.Abort,
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
367 svncommands.rebuildmeta,
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
368 self.ui(), repo=self.repo, args=[otherurl])
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
369 # rebuildmeta --unsafe-skip-uuid-check with unrelated repo
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
370 svncommands.rebuildmeta(self.ui(), repo=self.repo, args=[otherurl],
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
371 unsafe_skip_uuid_check=True)