Mercurial > hgsubversion
annotate tests/test_single_dir_push.py @ 1549:8410a978c650
compathacks: be compatible with upstream 8a0cac20a1ad memfilectx change
See hg change 8a0cac20a1ad. Since the interface has changed
more than one time, switch to explicit keywords arguments to avoid
surprises.
Since hgsubversion targets hg >= 3.2.4, drop support for hg 3.0 and 3.1
here.
author | Jun Wu <quark@fb.com> |
---|---|
date | Tue, 19 Dec 2017 14:29:55 -0800 |
parents | 0ebcc5bbf692 |
children | d55c9d0ba350 |
rev | line source |
---|---|
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
1 import test_util |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
2 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
3 import errno |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
4 import shutil |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
5 import unittest |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
6 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
7 from mercurial import commands |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
8 from mercurial import context |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
9 from mercurial import hg |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
10 from mercurial import node |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
11 from mercurial import ui |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
12 |
1103
6e1dbf6cbc92
compathacks: new module to collect hacks to work around hg internals changing
Augie Fackler <raf@durin42.com>
parents:
1075
diff
changeset
|
13 from hgsubversion import compathacks |
6e1dbf6cbc92
compathacks: new module to collect hacks to work around hg internals changing
Augie Fackler <raf@durin42.com>
parents:
1075
diff
changeset
|
14 |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
15 class TestSingleDirPush(test_util.TestBase): |
1075
cf325cd90b22
test_single_dir_push: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1055
diff
changeset
|
16 stupid_mode_tests = True |
1055
2d7398fffd0d
push: obsolete rather than rebase & strip when enabled
Dan Villiom Podlaski Christiansen <dan@cabo.dk>
parents:
1047
diff
changeset
|
17 obsolete_mode_tests = True |
2d7398fffd0d
push: obsolete rather than rebase & strip when enabled
Dan Villiom Podlaski Christiansen <dan@cabo.dk>
parents:
1047
diff
changeset
|
18 |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
19 def test_push_single_dir(self): |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
20 # Tests simple pushing from default branch to a single dir repo |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
21 repo, repo_path = self.load_and_fetch('branch_from_tag.svndump', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
22 layout='single', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
23 subdir='') |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
24 def file_callback(repo, memctx, path): |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
25 if path == 'adding_file': |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
26 return compathacks.makememfilectx(repo, |
1549
8410a978c650
compathacks: be compatible with upstream 8a0cac20a1ad memfilectx change
Jun Wu <quark@fb.com>
parents:
1539
diff
changeset
|
27 memctx=memctx, |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
28 path=path, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
29 data='foo', |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
30 islink=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
31 isexec=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
32 copied=False) |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
33 elif path == 'adding_binary': |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
34 return compathacks.makememfilectx(repo, |
1549
8410a978c650
compathacks: be compatible with upstream 8a0cac20a1ad memfilectx change
Jun Wu <quark@fb.com>
parents:
1539
diff
changeset
|
35 memctx=memctx, |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
36 path=path, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
37 data='\0binary', |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
38 islink=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
39 isexec=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
40 copied=False) |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
41 raise IOError(errno.EINVAL, 'Invalid operation: ' + path) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
42 ctx = context.memctx(repo, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
43 (repo['tip'].node(), node.nullid), |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
44 'automated test', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
45 ['adding_file', 'adding_binary'], |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
46 file_callback, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
47 'an_author', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
48 '2009-10-19 18:49:30 -0500', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
49 {'branch': 'default', }) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
50 repo.commitctx(ctx) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
51 hg.update(repo, repo['tip'].node()) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
52 self.pushrevisions() |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
53 self.assertTrue('adding_file' in test_util.svnls(repo_path, '')) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
54 self.assertEqual('application/octet-stream', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
55 test_util.svnpropget(repo_path, 'adding_binary', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
56 'svn:mime-type')) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
57 # Now add another commit and test mime-type being reset |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
58 changes = [('adding_binary', 'adding_binary', 'no longer binary')] |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
59 self.commitchanges(changes) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
60 self.pushrevisions() |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
61 self.assertEqual('', test_util.svnpropget(repo_path, 'adding_binary', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
62 'svn:mime-type')) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
63 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
64 def test_push_single_dir_at_subdir(self): |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
65 repo = self._load_fixture_and_fetch('branch_from_tag.svndump', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
66 layout='single', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
67 subdir='trunk') |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
68 def filectxfn(repo, memctx, path): |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
69 return compathacks.makememfilectx(repo, |
1549
8410a978c650
compathacks: be compatible with upstream 8a0cac20a1ad memfilectx change
Jun Wu <quark@fb.com>
parents:
1539
diff
changeset
|
70 memctx=memctx, |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
71 path=path, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
72 data='contents of %s' % path, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
73 islink=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
74 isexec=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
75 copied=False) |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
76 ctx = context.memctx(repo, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
77 (repo['tip'].node(), node.nullid), |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
78 'automated test', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
79 ['bogus'], |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
80 filectxfn, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
81 'an_author', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
82 '2009-10-19 18:49:30 -0500', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
83 {'branch': 'localhacking', }) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
84 n = repo.commitctx(ctx) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
85 self.assertEqual(self.repo['tip']['bogus'].data(), |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
86 'contents of bogus') |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
87 before = repo['tip'].hex() |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
88 hg.update(repo, self.repo['tip'].hex()) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
89 self.pushrevisions() |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
90 self.assertNotEqual(before, self.repo['tip'].hex()) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
91 self.assertEqual(self.repo['tip']['bogus'].data(), |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
92 'contents of bogus') |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
93 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
94 def test_push_single_dir_one_incoming_and_two_outgoing(self): |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
95 # Tests simple pushing from default branch to a single dir repo |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
96 # Pushes two outgoing over one incoming svn rev |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
97 # (used to cause an "unknown revision") |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
98 # This can happen if someone committed to svn since our last pull (race). |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
99 repo, repo_path = self.load_and_fetch('branch_from_tag.svndump', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
100 layout='single', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
101 subdir='trunk') |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
102 self.add_svn_rev(repo_path, {'trunk/alpha': 'Changed'}) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
103 def file_callback(repo, memctx, path): |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
104 return compathacks.makememfilectx(repo, |
1549
8410a978c650
compathacks: be compatible with upstream 8a0cac20a1ad memfilectx change
Jun Wu <quark@fb.com>
parents:
1539
diff
changeset
|
105 memctx=memctx, |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
106 path=path, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
107 data='data of %s' % path, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
108 islink=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
109 isexec=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
110 copied=False) |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
111 for fn in ['one', 'two']: |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
112 ctx = context.memctx(repo, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
113 (repo['tip'].node(), node.nullid), |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
114 'automated test', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
115 [fn], |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
116 file_callback, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
117 'an_author', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
118 '2009-10-19 18:49:30 -0500', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
119 {'branch': 'default', }) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
120 repo.commitctx(ctx) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
121 hg.update(repo, repo['tip'].node()) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
122 self.pushrevisions(expected_extra_back=1) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
123 self.assertTrue('trunk/one' in test_util.svnls(repo_path, '')) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
124 self.assertTrue('trunk/two' in test_util.svnls(repo_path, '')) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
125 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
126 def test_push_single_dir_branch(self): |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
127 # Tests local branches pushing to a single dir repo. Creates a fork at |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
128 # tip. The default branch adds a file called default, while branch foo |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
129 # adds a file called foo, then tries to push the foo branch and default |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
130 # branch in that order. |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
131 repo, repo_path = self.load_and_fetch('branch_from_tag.svndump', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
132 layout='single', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
133 subdir='') |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
134 def file_callback(data): |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
135 def cb(repo, memctx, path): |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
136 if path == data: |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
137 return compathacks.makememfilectx(repo, |
1549
8410a978c650
compathacks: be compatible with upstream 8a0cac20a1ad memfilectx change
Jun Wu <quark@fb.com>
parents:
1539
diff
changeset
|
138 memctx=memctx, |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
139 path=path, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
140 data=data, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
141 islink=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
142 isexec=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
143 copied=False) |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
144 raise IOError(errno.EINVAL, 'Invalid operation: ' + path) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
145 return cb |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
146 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
147 def commit_to_branch(name, parent): |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
148 repo.commitctx(context.memctx(repo, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
149 (parent, node.nullid), |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
150 'automated test (%s)' % name, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
151 [name], |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
152 file_callback(name), |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
153 'an_author', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
154 '2009-10-19 18:49:30 -0500', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
155 {'branch': name, })) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
156 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
157 parent = repo['tip'].node() |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
158 commit_to_branch('default', parent) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
159 commit_to_branch('foo', parent) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
160 hg.update(repo, repo['foo'].node()) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
161 self.pushrevisions() |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
162 repo = self.repo # repo is outdated after the rebase happens, refresh |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
163 self.assertTrue('foo' in test_util.svnls(repo_path, '')) |
1103
6e1dbf6cbc92
compathacks: new module to collect hacks to work around hg internals changing
Augie Fackler <raf@durin42.com>
parents:
1075
diff
changeset
|
164 self.assertEqual(compathacks.branchset(repo), set(['default'])) |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
165 # Have to cross to another branch head, so hg.update doesn't work |
1342
c6b01fd34694
trying to fix progress output
Augie Fackler <raf@durin42.com>
parents:
1205
diff
changeset
|
166 commands.update(self.ui(), |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
167 self.repo, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
168 self.repo.branchheads('default')[1], |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
169 clean=True) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
170 self.pushrevisions() |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
171 self.assertTrue('default' in test_util.svnls(repo_path, '')) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
172 self.assertEquals(len(self.repo.branchheads('default')), 1) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
173 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
174 @test_util.requiresoption('branch') |
1075
cf325cd90b22
test_single_dir_push: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1055
diff
changeset
|
175 def test_push_single_dir_renamed_branch(self): |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
176 # Tests pulling and pushing with a renamed branch |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
177 # Based on test_push_single_dir |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
178 repo_path = self.load_svndump('branch_from_tag.svndump') |
1343
e597714cb420
tests: pass --quiet anyplace we call dispatch to run a command
Augie Fackler <raf@durin42.com>
parents:
1342
diff
changeset
|
179 cmd = ['clone', '--quiet', '--layout=single', '--branch=flaf'] |
1075
cf325cd90b22
test_single_dir_push: use stupid mode metaclass
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
1055
diff
changeset
|
180 if self.stupid: |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
181 cmd.append('--stupid') |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
182 cmd += [test_util.fileurl(repo_path), self.wc_path] |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
183 test_util.dispatch(cmd) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
184 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
185 def file_callback(repo, memctx, path): |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
186 if path == 'adding_file': |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
187 return compathacks.makememfilectx(repo, |
1549
8410a978c650
compathacks: be compatible with upstream 8a0cac20a1ad memfilectx change
Jun Wu <quark@fb.com>
parents:
1539
diff
changeset
|
188 memctx=memctx, |
1205
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
189 path=path, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
190 data='foo', |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
191 islink=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
192 isexec=False, |
f1dd304be8aa
test_single_dir_push: call makememfilectx
Sean Farley <sean.michael.farley@gmail.com>
parents:
1103
diff
changeset
|
193 copied=False) |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
194 raise IOError(errno.EINVAL, 'Invalid operation: ' + path) |
1539
0ebcc5bbf692
tests: when making a `memctx`, make sure to use a single repo instance
Augie Fackler <raf@durin42.com>
parents:
1343
diff
changeset
|
195 lr = self.repo |
0ebcc5bbf692
tests: when making a `memctx`, make sure to use a single repo instance
Augie Fackler <raf@durin42.com>
parents:
1343
diff
changeset
|
196 ctx = context.memctx(lr, |
0ebcc5bbf692
tests: when making a `memctx`, make sure to use a single repo instance
Augie Fackler <raf@durin42.com>
parents:
1343
diff
changeset
|
197 (lr['tip'].node(), node.nullid), |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
198 'automated test', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
199 ['adding_file'], |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
200 file_callback, |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
201 'an_author', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
202 '2009-10-19 18:49:30 -0500', |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
203 {'branch': 'default', }) |
1539
0ebcc5bbf692
tests: when making a `memctx`, make sure to use a single repo instance
Augie Fackler <raf@durin42.com>
parents:
1343
diff
changeset
|
204 lr.commitctx(ctx) |
1047
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
205 hg.update(self.repo, self.repo['tip'].node()) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
206 self.pushrevisions() |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
207 self.assertTrue('adding_file' in test_util.svnls(repo_path, '')) |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
208 |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
209 self.assertEquals(set(['flaf']), |
3092b3c109a8
tests: split single directory tests that push & clone in two modules
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
diff
changeset
|
210 set(self.repo[i].branch() for i in self.repo)) |