Mercurial > hgsubversion
annotate tests/test_pull.py @ 616:532c545d162c
svncommands: add two missing imports
Two imports used when printing tracebacks were missing. They were
easily missed as this code isn't exercised unless an exception happens
to be raised during the execution of one of the `svn' subcommands.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Sat, 15 May 2010 20:33:05 +0200 |
parents | 76c833526fbc |
children | 35a1e93b6f78 |
rev | line source |
---|---|
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
1 import test_util |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
2 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
3 import os.path |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
4 import subprocess |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
5 from mercurial import ui |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
6 from mercurial import util as hgutil |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
7 from mercurial import commands |
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
8 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
9 class TestPull(test_util.TestBase): |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
10 def setUp(self): |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
11 super(TestPull, self).setUp() |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
12 self.svn_wc = None |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
13 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
14 def _load_fixture_and_fetch(self, fixture_name): |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
15 return test_util.load_fixture_and_fetch(fixture_name, self.repo_path, |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
16 self.wc_path, stupid=False, |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
17 noupdate=False) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
18 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
19 def _add_svn_rev(self, changes): |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
20 # changes is a dict of filename -> contents |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
21 if self.svn_wc is None: |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
22 self.svn_wc = os.path.join(self.tmpdir, 'testsvn_wc') |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
23 subprocess.call([ |
342
76c833526fbc
Use fallbacks in the wrappers for Subversion support, instead of prefixes.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
331
diff
changeset
|
24 'svn', 'co', '-q', test_util.fileurl(self.repo_path), |
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
25 self.svn_wc |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
26 ], |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
27 stdout=subprocess.PIPE, stderr=subprocess.STDOUT) |
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
28 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
29 for filename, contents in changes.iteritems(): |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
30 # filenames are / separated |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
31 filename = filename.replace('/', os.path.sep) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
32 filename = os.path.join(self.svn_wc, filename) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
33 open(filename, 'w').write(contents) |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
34 # may be redundant |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
35 subprocess.call(['svn', 'add', '-q', filename], |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
36 stdout=subprocess.PIPE, stderr=subprocess.STDOUT) |
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
37 subprocess.call([ |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
38 'svn', 'commit', '-q', self.svn_wc, '-m', 'test changes'], |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
39 stdout=subprocess.PIPE, stderr=subprocess.STDOUT) |
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
40 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
41 def test_nochanges(self): |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
42 self._load_fixture_and_fetch('single_rev.svndump') |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
43 state = self.repo.parents() |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
44 commands.pull(self.repo.ui, self.repo) |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
45 self.assertEqual(state, self.repo.parents()) |
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
46 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
47 def test_onerevision_noupdate(self): |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
48 repo = self._load_fixture_and_fetch('single_rev.svndump') |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
49 state = repo.parents() |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
50 self._add_svn_rev({'trunk/alpha': 'Changed'}) |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
51 commands.pull(self.repo.ui, repo) |
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
52 self.assertEqual(state, repo.parents()) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
53 self.assertTrue('tip' not in repo[None].tags()) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
54 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
55 def test_onerevision_doupdate(self): |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
56 repo = self._load_fixture_and_fetch('single_rev.svndump') |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
57 state = repo.parents() |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
58 self._add_svn_rev({'trunk/alpha': 'Changed'}) |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
59 commands.pull(self.repo.ui, repo, update=True) |
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
60 self.failIfEqual(state, repo.parents()) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
61 self.assertTrue('tip' in repo[None].tags()) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
62 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
63 def test_onerevision_divergent(self): |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
64 repo = self._load_fixture_and_fetch('single_rev.svndump') |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
65 self.commitchanges((('alpha', 'alpha', 'Changed another way'),)) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
66 state = repo.parents() |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
67 self._add_svn_rev({'trunk/alpha': 'Changed one way'}) |
331
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
68 self.assertRaises(hgutil.Abort, commands.pull, |
75f082b5897e
Switch to using url scheme wrappers instead of duplicating each command we wrap.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
283
diff
changeset
|
69 self.repo.ui, repo, update=True) |
283
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
70 self.assertEqual(state, repo.parents()) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
71 self.assertTrue('tip' not in repo[None].tags()) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
72 self.assertEqual(len(repo.heads()), 2) |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
73 |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
74 def suite(): |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
75 import unittest, sys |
521d9c1bb11d
Implement -u/--update support when pulling.
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
76 return unittest.findTestCases(sys.modules[__name__]) |