Mercurial > hgsubversion
annotate tests/test_single_dir_push.py @ 1555:cff81f35b31e
cleanup: reference Abort from mercurial.error instead of mercurial.util
It's been there since hg 1.7 or so, which lets us avoid any need for
compat shims.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sat, 24 Mar 2018 16:39:30 -0400 |
parents | 8410a978c650 |
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)) |