annotate tests/test_unaffected_core.py @ 960:502613f6b583

editor: ignore added or copied files excluded by a filemap Files brought by a copied add_directory() were processed despite being excluded by the filemap. This was also the case with added files. The conversion was still correct because they were eventually filtered out in the replay.convert_rev() but processing them in itself may be problematic. Filemaps are often use to exclude large binary files and before this change, some of them could be marked as missing and be fetched before being discarded. A test configuration entry named hgsubversion.failoninvalidreplayfile was added to help testing this case. It should become the default behaviour in the future.
author Patrick Mezard <patrick@mezard.eu>
date Sun, 14 Oct 2012 15:51:12 +0200
parents 312b37bc5e20
children d741f536f23a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
713
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
1 import test_util
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
2
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
3 import os
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
4 import unittest
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
5
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
6 from mercurial import commands
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
7 from mercurial import dispatch
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
8 from mercurial import error
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
9 from mercurial import hg
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
10 from mercurial import node
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
11 from mercurial import ui
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
12
813
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
13 def _dispatch(ui, cmd):
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
14 try:
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
15 req = dispatch.request(cmd, ui=ui)
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
16 dispatch._dispatch(req)
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
17 except AttributeError:
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
18 dispatch._dispatch(ui, cmd)
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
19
713
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
20 class TestMercurialCore(test_util.TestBase):
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
21 '''
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
22 Test that the core Mercurial operations aren't broken by hgsubversion.
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
23 '''
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
24
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
25 @test_util.requiresoption('updaterev')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
26 def test_update(self):
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
27 ''' Test 'clone --updaterev' '''
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
28 ui = self.ui()
813
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
29 _dispatch(ui, ['init', self.wc_path])
713
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
30 repo = self.repo
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
31 repo.ui.setconfig('ui', 'username', 'anonymous')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
32
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
33 fpath = os.path.join(self.wc_path, 'it')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
34 f = file(fpath, 'w')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
35 f.write('C1')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
36 f.flush()
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
37 commands.add(ui, repo)
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
38 commands.commit(ui, repo, message="C1")
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
39 f.write('C2')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
40 f.flush()
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
41 commands.commit(ui, repo, message="C2")
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
42 f.write('C3')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
43 f.flush()
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
44 commands.commit(ui, repo, message="C3")
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
45
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
46 self.assertEqual(len(repo), 3)
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
47
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
48 updaterev = 1
813
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
49 _dispatch(ui, ['clone', self.wc_path, self.wc_path + '2',
713
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
50 '--updaterev=%s' % updaterev])
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
51
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
52 repo2 = hg.repository(ui, self.wc_path + '2')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
53
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
54 self.assertEqual(str(repo[updaterev]), str(repo2['.']))
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
55
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
56 @test_util.requiresoption('branch')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
57 def test_branch(self):
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
58 ''' Test 'clone --branch' '''
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
59 ui = self.ui()
813
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
60 _dispatch(ui, ['init', self.wc_path])
713
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
61 repo = self.repo
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
62 repo.ui.setconfig('ui', 'username', 'anonymous')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
63
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
64 fpath = os.path.join(self.wc_path, 'it')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
65 f = file(fpath, 'w')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
66 f.write('C1')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
67 f.flush()
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
68 commands.add(ui, repo)
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
69 commands.branch(ui, repo, label="B1")
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
70 commands.commit(ui, repo, message="C1")
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
71 f.write('C2')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
72 f.flush()
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
73 commands.branch(ui, repo, label="default")
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
74 commands.commit(ui, repo, message="C2")
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
75 f.write('C3')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
76 f.flush()
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
77 commands.branch(ui, repo, label="B2")
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
78 commands.commit(ui, repo, message="C3")
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
79
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
80 self.assertEqual(len(repo), 3)
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
81
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
82 branch = 'B1'
813
f07bfd66db13 test_util: handle dispatch.dispatch() taking a request
Patrick Mezard <pmezard@gmail.com>
parents: 713
diff changeset
83 _dispatch(ui, ['clone', self.wc_path, self.wc_path + '2',
713
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
84 '--branch', branch])
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
85
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
86 repo2 = hg.repository(ui, self.wc_path + '2')
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
87
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
88 self.assertEqual(repo[branch].hex(), repo2['.'].hex())
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
89
69c0e7c4faf9 clone: call the wrapped function (fixes #181)
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff changeset
90 def suite():
833
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 813
diff changeset
91 all_tests = [unittest.TestLoader().loadTestsFromTestCase(TestMercurialCore)]
312b37bc5e20 tests: avoid shadowing Python builtin all()
Yonggang Luo <luoyonggang@gmail.com>
parents: 813
diff changeset
92 return unittest.TestSuite(all_tests)