annotate tests/test_utility_commands.py @ 981:82bbb3428684

pull: save the last pulled revision *after* converting revisions Otherwise, a KeyboardInterrupt may lead to an unpulled revision being incorrectly saved as pulled in the lastpulled file. This will lead to the interrupted revision being incorrectly skipped at the next pull, leading to an incorrect conversion -- one might even say corrupt. Due to it's nature of requiring a manual interrupt, this bug is difficult to test.
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Sun, 11 Nov 2012 15:31:19 +0100
parents 8faa91951bb1
children 68191be64af8
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
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
19
178
33ebdcb75bcd test_utility_commands: fix normalized URL references under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 160
diff changeset
20 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
21 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
22 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
23 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
24 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
25 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
26 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
27 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
28 '''
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
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
30 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
31 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
32
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
33 class UtilityTests(test_util.TestBase):
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
34 def test_info_output(self):
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
35 repo, repo_path = self.load_and_fetch('two_heads.svndump')
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
36 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
37 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
38 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
39 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
40 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
41 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
42 {'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
43 '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
44 '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
45 '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
46 })
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
47 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
48 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
49 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
50 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
51 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
52 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
53 {'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
54 '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
55 '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
56 '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
57 })
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
58 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
59 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
60 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
61 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
62 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
63 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
64 {'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
65 '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
66 '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
67 '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
68 })
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
69 self.assertMultiLineEqual(actual, expected)
921
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
70 destpath = self.wc_path + '_clone'
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
71 test_util.hgclone(u, self.repo, destpath)
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
72 repo2 = hg.repository(u, destpath)
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
73 repo2.ui.setconfig('paths', 'default-push',
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
74 self.repo.ui.config('paths', 'default'))
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
75 hg.update(repo2, 'default')
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
76 svncommands.rebuildmeta(u, repo2, [])
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
77 u.pushbuffer()
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
78 svncommands.info(u, repo2)
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
79 actual = u.popbuffer()
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
80 expected = (expected_info_output %
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
81 {'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
82 'repourl': repourl(repo_path),
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
83 'branch': 'trunk',
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
84 'rev': 6,
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
85 })
8faa91951bb1 svnremoterepo: use and prefer default-push
David Schleimer <dschleimer@fb.com>
parents: 918
diff changeset
86 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
87
549
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
88 def test_info_single(self):
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
89 repo, repo_path = self.load_and_fetch('two_heads.svndump', subdir='trunk')
549
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
90 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
91 u = self.ui()
549
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
92 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
93 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
94 actual = u.popbuffer()
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
95 expected = (expected_info_output %
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
96 {'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
97 '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
98 'branch': 'trunk',
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
99 'rev': 6,
b97f5734e5a8 utility_commands: unbreak hg svn info with single-directory clones
Augie Fackler <durin42@gmail.com>
parents: 503
diff changeset
100 })
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
101 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
102
754
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
103 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
104 self._load_fixture_and_fetch('two_heads.svndump')
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
105 test_util.rmtree(self.repo.join('svn'))
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
106 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
107 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
108 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
109 svncommands.info,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
110 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
111 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
112 svncommands.genignore,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
113 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
114
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
115 os.remove(self.repo.join('hgrc'))
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
116 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
117 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
118 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
119 svncommands.info,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
120 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
121 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
122 svncommands.genignore,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
123 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
124
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
125 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
126 svncommands.rebuildmeta,
caa527346a0f svncommands: abort on missing metadata or Subversion URL (fixes #226)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 746
diff changeset
127 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
128
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
129 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
130 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
131 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
132 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
133 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
134 def filectxfn(repo, memctx, path):
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
135 return context.memfilectx(path=path,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
136 data='added',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
137 islink=False,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
138 isexec=False,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
139 copied=False)
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
140 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
141 parents,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
142 'automated test',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
143 ['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
144 filectxfn,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
145 'testy',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
146 '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
147 {'branch': 'localbranch', })
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
148 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
149 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
150 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
151 actual = u.popbuffer()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
152 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
153
157
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
154 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
155
256
7932d098cb5f Refactor commands to wrap their hg equivalent adding a --svn flag where sane.
Augie Fackler <durin42@gmail.com>
parents: 253
diff changeset
156 # 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
157 u.pushbuffer()
403
37c96b78b8c0 uisetup: use a single loop/abstraction for wrapping all the commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 347
diff changeset
158 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
159 actual = u.popbuffer()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
160 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
161
256
7932d098cb5f Refactor commands to wrap their hg equivalent adding a --svn flag where sane.
Augie Fackler <durin42@gmail.com>
parents: 253
diff changeset
162 # 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
163 u.pushbuffer()
403
37c96b78b8c0 uisetup: use a single loop/abstraction for wrapping all the commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 347
diff changeset
164 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
165 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
166 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
167
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
168 u.pushbuffer()
403
37c96b78b8c0 uisetup: use a single loop/abstraction for wrapping all the commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 347
diff changeset
169 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
170 actual = u.popbuffer()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
171 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
172
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
173 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
174 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
175 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
176 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
177 def filectxfn(repo, memctx, path):
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
178 return context.memfilectx(path=path,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
179 data='added',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
180 islink=False,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
181 isexec=False,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
182 copied=False)
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
183 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
184 parents,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
185 'automated test',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
186 ['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
187 filectxfn,
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
188 'testy',
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
189 '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
190 {'branch': 'localbranch', })
91541523ea5c utility_commands: Test outgoing and fix it to work again.
Augie Fackler <durin42@gmail.com>
parents: 153
diff changeset
191 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
192 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
193 u.pushbuffer()
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
194 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
195 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
196 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
197 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
198 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
199 u.pushbuffer()
867
50c13e01c7e3 test_util: add a load_and_fetch() returning the repo_path
Patrick Mezard <patrick@mezard.eu>
parents: 866
diff changeset
200 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
201 actual = u.popbuffer()
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
202 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
203
149
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
204 def test_rebase(self):
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
205 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
206 parents = (self.repo[0].node(), revlog.nullid,)
149
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
207 def filectxfn(repo, memctx, path):
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
208 return context.memfilectx(path=path,
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
209 data='added',
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
210 islink=False,
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
211 isexec=False,
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
212 copied=False)
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
213 ctx = context.memctx(self.repo,
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
214 parents,
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
215 'automated test',
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
216 ['added_bogus_file', 'other_added_file', ],
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
217 filectxfn,
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
218 'testy',
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
219 '2008-12-21 16:32:00 -0500',
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
220 {'branch': 'localbranch', })
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
221 self.repo.commitctx(ctx)
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
222 self.assertEqual(self.repo['tip'].branch(), 'localbranch')
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
223 beforerebasehash = self.repo['tip'].node()
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
224 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
225 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
226 self.assertEqual(self.repo['tip'].branch(), 'localbranch')
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
227 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
228 self.assertNotEqual(beforerebasehash, self.repo['tip'].node())
04800fda7af5 rebase: preserve local branch names.
Augie Fackler <durin42@gmail.com>
parents: 140
diff changeset
229
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
230 def test_genignore(self):
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
231 """ Test generation of .hgignore file. """
865
04729f3a3d17 test_util: merge load_fixture_and_fetch() into TestBase method
Patrick Mezard <patrick@mezard.eu>
parents: 833
diff changeset
232 repo = self._load_fixture_and_fetch('ignores.svndump', noupdate=False)
576
d96aa92d9ad9 tests: silence test suite by using quiet UIs everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 573
diff changeset
233 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
234 u.pushbuffer()
865
04729f3a3d17 test_util: merge load_fixture_and_fetch() into TestBase method
Patrick Mezard <patrick@mezard.eu>
parents: 833
diff changeset
235 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
236 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
237 '.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
238
550
f0159775e0f1 utility_commands: fix hg svn genignore for single-directory mode
Augie Fackler <durin42@gmail.com>
parents: 549
diff changeset
239 def test_genignore_single(self):
f0159775e0f1 utility_commands: fix hg svn genignore for single-directory mode
Augie Fackler <durin42@gmail.com>
parents: 549
diff changeset
240 self._load_fixture_and_fetch('ignores.svndump', subdir='trunk')
f0159775e0f1 utility_commands: fix hg svn genignore for single-directory mode
Augie Fackler <durin42@gmail.com>
parents: 549
diff changeset
241 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
242 u = self.ui()
550
f0159775e0f1 utility_commands: fix hg svn genignore for single-directory mode
Augie Fackler <durin42@gmail.com>
parents: 549
diff changeset
243 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
244 svncommands.genignore(u, self.repo, self.wc_path)
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
245 self.assertMultiLineEqual(open(os.path.join(self.wc_path, '.hgignore')).read(),
550
f0159775e0f1 utility_commands: fix hg svn genignore for single-directory mode
Augie Fackler <durin42@gmail.com>
parents: 549
diff changeset
246 '.hgignore\nsyntax:glob\nblah\notherblah\nbaz/magic\n')
f0159775e0f1 utility_commands: fix hg svn genignore for single-directory mode
Augie Fackler <durin42@gmail.com>
parents: 549
diff changeset
247
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
248 def test_list_authors(self):
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
249 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
250 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
251 u.pushbuffer()
578
de384e4e0423 merge commands from utility_commands into svncommands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 576
diff changeset
252 svncommands.listauthors(u,
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
253 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
254 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
255 actual = u.popbuffer()
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
256 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
257
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
258 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
259 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
260 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
261 svncommands.listauthors(self.ui(),
866
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
262 args=[test_util.fileurl(repo_path)],
20e73b5ab6f7 test_util: merge load_svndump_fixture() into TestBase
Patrick Mezard <patrick@mezard.eu>
parents: 865
diff changeset
263 authors=author_path)
743
045120d3a110 test_utility_commands: use self.assertMultiLineEqual().
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 643
diff changeset
264 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
265
899
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
266 def test_svnverify(self, stupid=False):
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
267 repo, repo_path = self.load_and_fetch('binaryfiles.svndump',
899
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
268 noupdate=False, stupid=stupid)
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
269 ret = verify.verify(self.ui(), repo, [], rev=1, stupid=stupid)
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
270 self.assertEqual(0, ret)
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
271 repo_path = self.load_svndump('binaryfiles-broken.svndump')
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
272 u = self.ui()
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
273 u.pushbuffer()
899
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
274 ret = verify.verify(u, repo, [test_util.fileurl(repo_path)],
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
275 rev=1, stupid=stupid)
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
276 output = u.popbuffer()
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
277 self.assertEqual(1, ret)
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
278 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
279 self.assertMultiLineEqual("""\
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
280 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
281 difference in: binary2
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
282 unexpected file: binary1
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
283 missing file: binary3
880
d4312a6f7a87 test_utility_commands: test verify command
Patrick Mezard <patrick@mezard.eu>
parents: 867
diff changeset
284 """, output)
153
46f6b872c988 tests: Fix some missing suite definitions so that running the full testsuite
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
285
899
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
286 def test_svnverify_stupid(self):
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
287 self.test_svnverify(True)
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
288
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
289 def test_corruption(self, stupid=False):
892
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
290 SUCCESS = 0
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
291 FAILURE = 1
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
292
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
293 repo, repo_path = self.load_and_fetch('correct.svndump', layout='single',
899
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
294 subdir='', stupid=stupid)
892
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
295
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
296 ui = self.ui()
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
297
899
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
298 self.assertEqual(SUCCESS, verify.verify(ui, self.repo, rev='tip',
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
299 stupid=stupid))
892
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
300
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
301 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
302
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
303 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
304
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
305 ui.pushbuffer()
897
6bc8046e3d0a move verify to a file of its own
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 892
diff changeset
306 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
307 actual = ui.popbuffer()
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
308
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
309 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
310 actual = set(actual.splitlines())
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
311
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
312 expected = set([
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
313 '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
314 'missing file: missing-file',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
315 '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
316 'wrong flags for: symlink',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
317 '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
318 '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
319 'difference in: regular-file',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
320 'unexpected file: empty-file',
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
321 ])
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
322
3bfb7e985c47 svn verify: add a test for corrupt repositories.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 887
diff changeset
323 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
324
899
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
325 def test_corruption_stupid(self):
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
326 self.test_corruption(True)
7f90bb48c9de svn verify: use a custom editor and get_revision()
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 897
diff changeset
327
918
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
328 def test_svnrebuildmeta(self):
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
329 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
330 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
331 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
332 # rebuildmeta with original repo
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
333 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
334 # rebuildmeta with unrelated repo
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
335 self.assertRaises(hgutil.Abort,
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
336 svncommands.rebuildmeta,
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
337 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
338 # 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
339 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
340 unsafe_skip_uuid_check=True)
761a87134501 rebuildmeta: accept unrelated svn repo with --unsafe-skip-uuid-check
Patrick Mezard <patrick@mezard.eu>
parents: 899
diff changeset
341
153
46f6b872c988 tests: Fix some missing suite definitions so that running the full testsuite
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
342 def suite():
833
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 832
diff changeset
343 all_tests = [unittest.TestLoader().loadTestsFromTestCase(UtilityTests),
153
46f6b872c988 tests: Fix some missing suite definitions so that running the full testsuite
Augie Fackler <durin42@gmail.com>
parents: 149
diff changeset
344 ]
833
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 832
diff changeset
345 return unittest.TestSuite(all_tests)