annotate tests/test_push_command.py @ 87:b033d74be76b

fetch_command: in stupid non-diffy mode, take changed paths in account Former code was checkouting all branch files for every converted revision when diffs were not available in stupid mode. Now, only changed items are requested.
author Patrick Mezard <pmezard@gmail.com>
date Fri, 14 Nov 2008 16:18:24 -0600
parents 6c9b7cf1c5aa
children a3b717e4abf5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
1 import os
48
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
2 import socket
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
3 import subprocess
16
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
4 import tempfile
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
5 import unittest
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
6
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
7 from mercurial import context
48
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
8 from mercurial import commands
16
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
9 from mercurial import hg
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
10 from mercurial import node
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
11 from mercurial import ui
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
12 from mercurial import revlog
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
13
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
14 import fetch_command
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
15 import push_cmd
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
16 import test_util
48
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
17 import time
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
18
16
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
19
82
71de43e9f614 Extract PushTest common code into test_util.TestBase
Patrick Mezard <pmezard@gmail.com>
parents: 80
diff changeset
20 class PushOverSvnserveTests(test_util.TestBase):
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
21 def setUp(self):
82
71de43e9f614 Extract PushTest common code into test_util.TestBase
Patrick Mezard <pmezard@gmail.com>
parents: 80
diff changeset
22 test_util.TestBase.setUp(self)
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
23 test_util.load_svndump_fixture(self.repo_path, 'simple_branch.svndump')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
24 open(os.path.join(self.repo_path, 'conf', 'svnserve.conf'),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
25 'w').write('[general]\nanon-access=write\n[sasl]\n')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
26 # Paranoia: we try and connect to localhost on 3689 before we start
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
27 # svnserve. If it is running, we force the test to fail early.
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
28 user_has_own_svnserve = False
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
29 try:
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
30 s = socket.socket()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
31 s.settimeout(0.3)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
32 s.connect(('localhost', 3690))
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
33 s.close()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
34 user_has_own_svnserve = True
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
35 except:
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
36 pass
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
37 if user_has_own_svnserve:
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
38 assert False, ('You appear to be running your own svnserve!'
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
39 ' You can probably ignore this test failure.')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
40 args = ['svnserve', '-d', '--foreground', '-r', self.repo_path]
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
41 self.svnserve_pid = subprocess.Popen(args).pid
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
42 time.sleep(2)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
43 fetch_command.fetch_revisions(ui.ui(),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
44 svn_url='svn://localhost/',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
45 hg_repo_path=self.wc_path)
48
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
46
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
47 def tearDown(self):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
48 os.system('kill -9 %d' % self.svnserve_pid)
82
71de43e9f614 Extract PushTest common code into test_util.TestBase
Patrick Mezard <pmezard@gmail.com>
parents: 80
diff changeset
49 test_util.TestBase.tearDown(self)
48
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
50
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
51 def test_push_to_default(self, commit=True):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
52 repo = self.repo
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
53 old_tip = repo['tip'].node()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
54 expected_parent = repo['default'].node()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
55 def file_callback(repo, memctx, path):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
56 if path == 'adding_file':
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
57 return context.memfilectx(path=path,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
58 data='foo',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
59 islink=False,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
60 isexec=False,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
61 copied=False)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
62 raise IOError()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
63 ctx = context.memctx(repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
64 (repo['default'].node(), node.nullid),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
65 'automated test',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
66 ['adding_file'],
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
67 file_callback,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
68 'an_author',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
69 '2008-10-07 20:59:48 -0500',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
70 {'branch': 'default',})
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
71 new_hash = repo.commitctx(ctx)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
72 if not commit:
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
73 return # some tests use this test as an extended setup.
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
74 hg.update(repo, repo['tip'].node())
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
75 push_cmd.push_revisions_to_subversion(ui.ui(), repo=self.repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
76 hg_repo_path=self.wc_path,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
77 svn_url='svn://localhost/')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
78 tip = self.repo['tip']
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
79 self.assertNotEqual(tip.node(), old_tip)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
80 self.assertEqual(tip.parents()[0].node(), expected_parent)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
81 self.assertEqual(tip['adding_file'].data(), 'foo')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
82 self.assertEqual(tip.branch(), 'default')
16
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
83
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
84
82
71de43e9f614 Extract PushTest common code into test_util.TestBase
Patrick Mezard <pmezard@gmail.com>
parents: 80
diff changeset
85 class PushTests(test_util.TestBase):
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
86 def setUp(self):
82
71de43e9f614 Extract PushTest common code into test_util.TestBase
Patrick Mezard <pmezard@gmail.com>
parents: 80
diff changeset
87 test_util.TestBase.setUp(self)
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
88 test_util.load_fixture_and_fetch('simple_branch.svndump',
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
89 self.repo_path,
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
90 self.wc_path)
16
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
91
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
92 def test_push_to_default(self, commit=True):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
93 repo = self.repo
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
94 old_tip = repo['tip'].node()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
95 expected_parent = repo['default'].node()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
96 def file_callback(repo, memctx, path):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
97 if path == 'adding_file':
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
98 return context.memfilectx(path=path,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
99 data='foo',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
100 islink=False,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
101 isexec=False,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
102 copied=False)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
103 raise IOError()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
104 ctx = context.memctx(repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
105 (repo['default'].node(), node.nullid),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
106 'automated test',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
107 ['adding_file'],
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
108 file_callback,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
109 'an_author',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
110 '2008-10-07 20:59:48 -0500',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
111 {'branch': 'default',})
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
112 new_hash = repo.commitctx(ctx)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
113 if not commit:
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
114 return # some tests use this test as an extended setup.
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
115 hg.update(repo, repo['tip'].node())
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
116 self.pushrevisions()
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
117 tip = self.repo['tip']
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
118 self.assertNotEqual(tip.node(), old_tip)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
119 self.assertEqual(tip.parents()[0].node(), expected_parent)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
120 self.assertEqual(tip['adding_file'].data(), 'foo')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
121 self.assertEqual(tip.branch(), 'default')
16
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
122
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
123 def test_push_two_revs(self):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
124 # set up some work for us
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
125 self.test_push_to_default(commit=False)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
126 repo = self.repo
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
127 old_tip = repo['tip'].node()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
128 expected_parent = repo['tip'].parents()[0].node()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
129 def file_callback(repo, memctx, path):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
130 if path == 'adding_file2':
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
131 return context.memfilectx(path=path,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
132 data='foo2',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
133 islink=False,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
134 isexec=False,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
135 copied=False)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
136 raise IOError()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
137 ctx = context.memctx(repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
138 (repo['default'].node(), node.nullid),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
139 'automated test',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
140 ['adding_file2'],
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
141 file_callback,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
142 'an_author',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
143 '2008-10-07 20:59:48 -0500',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
144 {'branch': 'default',})
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
145 new_hash = repo.commitctx(ctx)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
146 hg.update(repo, repo['tip'].node())
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
147 self.pushrevisions()
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
148 tip = self.repo['tip']
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
149 self.assertNotEqual(tip.node(), old_tip)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
150 self.assertNotEqual(tip.parents()[0].node(), old_tip)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
151 self.assertEqual(tip.parents()[0].parents()[0].node(), expected_parent)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
152 self.assertEqual(tip['adding_file2'].data(), 'foo2')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
153 self.assertEqual(tip['adding_file'].data(), 'foo')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
154 self.assertEqual(tip.parents()[0]['adding_file'].data(), 'foo')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
155 try:
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
156 self.assertEqual(tip.parents()[0]['adding_file2'].data(), 'foo')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
157 assert False, "this is impossible, adding_file2 should not be in this manifest."
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
158 except revlog.LookupError, e:
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
159 pass
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
160 self.assertEqual(tip.branch(), 'default')
48
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
161
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
162 def test_push_to_branch(self):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
163 repo = self.repo
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
164 def file_callback(repo, memctx, path):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
165 if path == 'adding_file':
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
166 return context.memfilectx(path=path,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
167 data='foo',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
168 islink=False,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
169 isexec=False,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
170 copied=False)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
171 raise IOError()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
172 ctx = context.memctx(repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
173 (repo['the_branch'].node(), node.nullid),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
174 'automated test',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
175 ['adding_file'],
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
176 file_callback,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
177 'an_author',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
178 '2008-10-07 20:59:48 -0500',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
179 {'branch': 'the_branch',})
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
180 new_hash = repo.commitctx(ctx)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
181 #commands.update(ui.ui(), self.repo, node='tip')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
182 hg.update(repo, repo['tip'].node())
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
183 self.pushrevisions()
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
184 tip = self.repo['tip']
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
185 self.assertNotEqual(tip.node(), new_hash)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
186 self.assertEqual(tip['adding_file'].data(), 'foo')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
187 self.assertEqual(tip.branch(), 'the_branch')
48
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
188
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
189 def test_delete_file(self):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
190 repo = self.repo
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
191 def file_callback(repo, memctx, path):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
192 raise IOError()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
193 old_files = set(repo['default'].manifest().keys())
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
194 ctx = context.memctx(repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
195 (repo['default'].node(), node.nullid),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
196 'automated test',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
197 ['alpha'],
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
198 file_callback,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
199 'an author',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
200 '2008-10-29 21:26:00 -0500',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
201 {'branch': 'default', })
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
202 new_hash = repo.commitctx(ctx)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
203 hg.update(repo, repo['tip'].node())
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
204 self.pushrevisions()
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
205 tip = self.repo['tip']
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
206 self.assertEqual(old_files,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
207 set(tip.manifest().keys() + ['alpha']))
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
208 self.assert_('alpha' not in tip.manifest())
48
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
209
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
210 def test_push_executable_file(self):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
211 self.test_push_to_default(commit=True)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
212 repo = self.repo
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
213 def file_callback(repo, memctx, path):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
214 if path == 'gamma':
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
215 return context.memfilectx(path=path,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
216 data='foo',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
217 islink=False,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
218 isexec=True,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
219 copied=False)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
220 raise IOError()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
221 ctx = context.memctx(repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
222 (repo['tip'].node(), node.nullid),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
223 'message',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
224 ['gamma', ],
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
225 file_callback,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
226 'author',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
227 '2008-10-29 21:26:00 -0500',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
228 {'branch': 'default', })
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
229 new_hash = repo.commitctx(ctx)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
230 hg.update(repo, repo['tip'].node())
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
231 self.pushrevisions()
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
232 tip = self.repo['tip']
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
233 self.assertNotEqual(tip.node(), new_hash)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
234 self.assert_('@' in tip.user())
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
235 self.assertEqual(tip['gamma'].flags(), 'x')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
236 self.assertEqual(tip['gamma'].data(), 'foo')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
237 self.assertEqual([x for x in tip.manifest().keys() if 'x' not in
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
238 tip[x].flags()], ['alpha', 'beta', 'adding_file', ])
49
2bc4999a89d3 Add tests for a bunch more cases in pushing to svn.
Augie Fackler <durin42@gmail.com>
parents: 48
diff changeset
239
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
240 def test_push_symlink_file(self):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
241 self.test_push_to_default(commit=True)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
242 repo = self.repo
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
243 def file_callback(repo, memctx, path):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
244 if path == 'gamma':
49
2bc4999a89d3 Add tests for a bunch more cases in pushing to svn.
Augie Fackler <durin42@gmail.com>
parents: 48
diff changeset
245 return context.memfilectx(path=path,
2bc4999a89d3 Add tests for a bunch more cases in pushing to svn.
Augie Fackler <durin42@gmail.com>
parents: 48
diff changeset
246 data='foo',
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
247 islink=True,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
248 isexec=False,
49
2bc4999a89d3 Add tests for a bunch more cases in pushing to svn.
Augie Fackler <durin42@gmail.com>
parents: 48
diff changeset
249 copied=False)
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
250 raise IOError()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
251 ctx = context.memctx(repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
252 (repo['tip'].node(), node.nullid),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
253 'message',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
254 ['gamma', ],
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
255 file_callback,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
256 'author',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
257 '2008-10-29 21:26:00 -0500',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
258 {'branch': 'default', })
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
259 new_hash = repo.commitctx(ctx)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
260 hg.update(repo, repo['tip'].node())
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
261 self.pushrevisions()
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
262 tip = self.repo['tip']
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
263 self.assertNotEqual(tip.node(), new_hash)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
264 self.assertEqual(tip['gamma'].flags(), 'l')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
265 self.assertEqual(tip['gamma'].data(), 'foo')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
266 self.assertEqual([x for x in tip.manifest().keys() if 'l' not in
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
267 tip[x].flags()], ['alpha', 'beta', 'adding_file', ])
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
268
60
41dc00c7aef1 Fixed a problem where if you edited an existing symlink by replacing with another symlink, things would get corrupt.
Augie Fackler <durin42@gmail.com>
parents: 50
diff changeset
269 def test_push_existing_file_newly_symlink(self):
41dc00c7aef1 Fixed a problem where if you edited an existing symlink by replacing with another symlink, things would get corrupt.
Augie Fackler <durin42@gmail.com>
parents: 50
diff changeset
270 self.test_push_existing_file_newly_execute(execute=False,
41dc00c7aef1 Fixed a problem where if you edited an existing symlink by replacing with another symlink, things would get corrupt.
Augie Fackler <durin42@gmail.com>
parents: 50
diff changeset
271 link=True,
41dc00c7aef1 Fixed a problem where if you edited an existing symlink by replacing with another symlink, things would get corrupt.
Augie Fackler <durin42@gmail.com>
parents: 50
diff changeset
272 expected_flags='l')
41dc00c7aef1 Fixed a problem where if you edited an existing symlink by replacing with another symlink, things would get corrupt.
Augie Fackler <durin42@gmail.com>
parents: 50
diff changeset
273
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
274 def test_push_existing_file_newly_execute(self, execute=True,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
275 link=False, expected_flags='x'):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
276 self.test_push_to_default()
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
277 repo = self.repo
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
278 def file_callback(repo, memctx, path):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
279 return context.memfilectx(path=path,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
280 data='foo',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
281 islink=link,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
282 isexec=execute,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
283 copied=False)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
284 ctx = context.memctx(repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
285 (repo['default'].node(), node.nullid),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
286 'message',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
287 ['alpha', ],
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
288 file_callback,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
289 'author',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
290 '2008-1-1 00:00:00 -0500',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
291 {'branch': 'default', })
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
292 new_hash = repo.commitctx(ctx)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
293 hg.update(repo, repo['tip'].node())
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
294 self.pushrevisions()
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
295 tip = self.repo['tip']
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
296 self.assertNotEqual(tip.node(), new_hash)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
297 self.assertEqual(tip['alpha'].data(), 'foo')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
298 self.assertEqual(tip.parents()[0]['alpha'].flags(), '')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
299 self.assertEqual(tip['alpha'].flags(), expected_flags)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
300 # while we're here, double check pushing an already-executable file
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
301 # works
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
302 repo = self.repo
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
303 def file_callback(repo, memctx, path):
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
304 return context.memfilectx(path=path,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
305 data='bar',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
306 islink=link,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
307 isexec=execute,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
308 copied=False)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
309 ctx = context.memctx(repo,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
310 (repo['default'].node(), node.nullid),
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
311 'message',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
312 ['alpha', ],
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
313 file_callback,
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
314 'author',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
315 '2008-1-1 00:00:00 -0500',
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
316 {'branch': 'default', })
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
317 new_hash = repo.commitctx(ctx)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
318 hg.update(repo, repo['tip'].node())
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
319 self.pushrevisions()
50
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
320 tip = self.repo['tip']
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
321 self.assertNotEqual(tip.node(), new_hash)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
322 self.assertEqual(tip['alpha'].data(), 'bar')
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
323 self.assertEqual(tip.parents()[0]['alpha'].flags(), expected_flags)
80b923ab242b Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents: 49
diff changeset
324 self.assertEqual(tip['alpha'].flags(), expected_flags)
62
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
325 # now test removing the property entirely
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
326 repo = self.repo
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
327 def file_callback(repo, memctx, path):
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
328 return context.memfilectx(path=path,
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
329 data='bar',
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
330 islink=False,
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
331 isexec=False,
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
332 copied=False)
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
333 ctx = context.memctx(repo,
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
334 (repo['default'].node(), node.nullid),
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
335 'message',
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
336 ['alpha', ],
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
337 file_callback,
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
338 'author',
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
339 '2008-01-01 00:00:00 -0500',
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
340 {'branch': 'default', })
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
341 new_hash = repo.commitctx(ctx)
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
342 hg.update(repo, repo['tip'].node())
78
072010a271c6 Fix basic issues with tests on Windows
Patrick Mezard <pmezard@gmail.com>
parents: 65
diff changeset
343 self.pushrevisions()
62
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
344 tip = self.repo['tip']
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
345 self.assertNotEqual(tip.node(), new_hash)
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
346 self.assertEqual(tip['alpha'].data(), 'bar')
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
347 self.assertEqual(tip.parents()[0]['alpha'].flags(), expected_flags)
cc5ebdb1e8d4 push_cmd: Further simplified some logic thanks to an improved test.
Augie Fackler <durin42@gmail.com>
parents: 60
diff changeset
348 self.assertEqual(tip['alpha'].flags(), '')
49
2bc4999a89d3 Add tests for a bunch more cases in pushing to svn.
Augie Fackler <durin42@gmail.com>
parents: 48
diff changeset
349
16
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
350
48a44546c12f Add a basic system for running the hgsubversion tests (although not the svnwrap ones) without requiring Nose. Nose is still the recommended way to run the tests.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
351 def suite():
48
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
352 test_classes = [PushTests, PushOverSvnserveTests]
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
353 tests = []
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
354 # This is the quickest hack I could come up with to load all the tests from
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
355 # both classes. Would love a patch that simplifies this without adding
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
356 # dependencies.
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
357 for tc in test_classes:
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
358 for attr in dir(tc):
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
359 if attr.startswith('test_'):
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
360 tests.append(tc(attr))
d87b57c719f0 Add a test that verifies push works to svn:// servers.
Augie Fackler <durin42@gmail.com>
parents: 27
diff changeset
361 return unittest.TestSuite(tests)