Mercurial > hgsubversion
comparison tests/test_svnwrap.py @ 347:537de0300510
Remove the 'outgoing' wrapper, and use the Mercurial infrastructure instead.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Fri, 22 May 2009 15:12:31 +0200 |
parents | |
children | 37304494cd15 |
comparison
equal
deleted
inserted
replaced
346:4b992ebdecc6 | 347:537de0300510 |
---|---|
1 import imp | |
2 import os | |
3 import subprocess | |
4 import shutil | |
5 import tempfile | |
6 import unittest | |
7 | |
8 import test_util | |
9 | |
10 from hgsubversion import svnwrap | |
11 | |
12 class TestBasicRepoLayout(unittest.TestCase): | |
13 def setUp(self): | |
14 self.tmpdir = tempfile.mkdtemp('svnwrap_test') | |
15 self.repo_path = '%s/testrepo' % self.tmpdir | |
16 os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', | |
17 self.repo_path,]) | |
18 inp = open(os.path.join(os.path.dirname(__file__), 'fixtures', | |
19 'project_root_at_repo_root.svndump')) | |
20 proc = subprocess.call(['svnadmin', 'load', self.repo_path,], | |
21 stdin=inp, close_fds=True, | |
22 stdout=subprocess.PIPE, | |
23 stderr=subprocess.STDOUT) | |
24 assert proc == 0 | |
25 self.repo = svnwrap.SubversionRepo('file://%s' % self.repo_path) | |
26 | |
27 def tearDown(self): | |
28 shutil.rmtree(self.tmpdir) | |
29 | |
30 | |
31 def test_num_revs(self): | |
32 revs = list(self.repo.revisions()) | |
33 self.assertEqual(len(revs), 7) | |
34 r = revs[1] | |
35 self.assertEqual(r.revnum, 2) | |
36 self.assertEqual(sorted(r.paths.keys()), | |
37 ['trunk/alpha', 'trunk/beta', 'trunk/delta']) | |
38 for r in revs: | |
39 for p in r.paths: | |
40 # make sure these paths are always non-absolute for sanity | |
41 if p: | |
42 assert p[0] != '/' | |
43 revs = list(self.repo.revisions(start=3)) | |
44 self.assertEqual(len(revs), 4) | |
45 | |
46 | |
47 def test_branches(self): | |
48 self.assertEqual(self.repo.branches.keys(), ['crazy', 'more_crazy']) | |
49 self.assertEqual(self.repo.branches['crazy'], ('trunk', 2, 4)) | |
50 self.assertEqual(self.repo.branches['more_crazy'], ('trunk', 5, 7)) | |
51 | |
52 | |
53 def test_tags(self): | |
54 tags = self.repo.tags | |
55 self.assertEqual(tags.keys(), ['rev1']) | |
56 self.assertEqual(tags['rev1'], ('trunk', 2)) | |
57 | |
58 class TestRootAsSubdirOfRepo(TestBasicRepoLayout): | |
59 def setUp(self): | |
60 self.tmpdir = tempfile.mkdtemp('svnwrap_test') | |
61 self.repo_path = '%s/testrepo' % self.tmpdir | |
62 os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', | |
63 self.repo_path,]) | |
64 inp = open(os.path.join(os.path.dirname(__file__), 'fixtures', | |
65 'project_root_not_repo_root.svndump')) | |
66 ret = subprocess.call(['svnadmin', 'load', self.repo_path,], | |
67 stdin=inp, close_fds=True, | |
68 stdout=subprocess.PIPE, | |
69 stderr=subprocess.STDOUT) | |
70 assert ret == 0 | |
71 self.repo = svnwrap.SubversionRepo('file://%s/dummyproj' % | |
72 self.repo_path) | |
73 def suite(): | |
74 all = [unittest.TestLoader().loadTestsFromTestCase(TestBasicRepoLayout), | |
75 unittest.TestLoader().loadTestsFromTestCase(TestRootAsSubdirOfRepo)] | |
76 return unittest.TestSuite(all) |