Mercurial > hgsubversion
comparison svnwrap/tests/test_svnwrap.py @ 26:bfbce70a9a57
Reworked the svnwrap tests to use the same fixture system as I created for the hgsubversion tests since it is much much faster.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Thu, 09 Oct 2008 23:37:22 -0500 |
parents | 79b0e059319d |
children | 9ad5cf45e30c |
comparison
equal
deleted
inserted
replaced
25:99f8e4b535e9 | 26:bfbce70a9a57 |
---|---|
1 import os | 1 import os |
2 import popen2 | |
2 import shutil | 3 import shutil |
3 import tempfile | 4 import tempfile |
4 import unittest | 5 import unittest |
5 | 6 |
6 from nose import tools | 7 from nose import tools |
7 | 8 |
8 import svnwrap | 9 import svnwrap |
9 | 10 |
10 class TestBasicRepoLayout(unittest.TestCase): | 11 class TestBasicRepoLayout(unittest.TestCase): |
11 def setUp(self): | 12 def setUp(self): |
12 self.oldwd = os.getcwd() | |
13 self.tmpdir = tempfile.mkdtemp('svnwrap_test') | 13 self.tmpdir = tempfile.mkdtemp('svnwrap_test') |
14 self.repo_path = '%s/testrepo' % self.tmpdir | 14 self.repo_path = '%s/testrepo' % self.tmpdir |
15 wc_path = '%s/testrepo_wc' % self.tmpdir | 15 os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', |
16 os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', | |
17 self.repo_path,]) | 16 self.repo_path,]) |
18 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'checkout', | 17 proc = popen2.Popen4(['svnadmin', 'load', self.repo_path,]) |
19 'file://%s' % self.repo_path, | 18 inp = open(os.path.join(os.path.dirname(__file__), 'fixtures', |
20 wc_path,]) | 19 'project_root_at_repo_root.svndump')) |
21 os.chdir(wc_path) | 20 proc.tochild.write(inp.read()) |
22 for d in ['branches', 'tags', 'trunk']: | 21 proc.tochild.close() |
23 os.mkdir(os.path.join(wc_path, d)) | 22 proc.wait() |
24 #r1 | |
25 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'branches', 'tags', 'trunk']) | |
26 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Empty dirs.']) | |
27 #r2 | |
28 files = ['alpha', 'beta', 'delta'] | |
29 for f in files: | |
30 open(os.path.join(wc_path, 'trunk', f), 'w').write('This is %s.\n' % f) | |
31 os.chdir('trunk') | |
32 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add']+files) | |
33 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Initial Files.']) | |
34 os.chdir('..') | |
35 #r3 | |
36 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'tags/rev1']) | |
37 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Tag rev 1.']) | |
38 #r4 | |
39 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/crazy']) | |
40 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to crazy.']) | |
41 | |
42 #r5 | |
43 open(os.path.join(wc_path, 'trunk', 'gamma'), 'w').write('This is %s.\n' | |
44 % 'gamma') | |
45 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'trunk/gamma', ]) | |
46 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add gamma']) | |
47 | |
48 #r6 | |
49 open(os.path.join(wc_path, 'branches', 'crazy', 'omega'), | |
50 'w').write('This is %s.\n' % 'omega') | |
51 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'branches/crazy/omega', ]) | |
52 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add omega']) | |
53 | |
54 #r7 | |
55 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/more_crazy']) | |
56 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to more_crazy.']) | |
57 | |
58 self.repo = svnwrap.SubversionRepo('file://%s' % self.repo_path) | 23 self.repo = svnwrap.SubversionRepo('file://%s' % self.repo_path) |
59 | 24 |
60 def tearDown(self): | 25 def tearDown(self): |
61 shutil.rmtree(self.tmpdir) | 26 shutil.rmtree(self.tmpdir) |
62 os.chdir(self.oldwd) | |
63 | 27 |
64 | 28 |
65 def test_num_revs(self): | 29 def test_num_revs(self): |
66 revs = list(self.repo.revisions()) | 30 revs = list(self.repo.revisions()) |
67 tools.eq_(len(revs), 7) | 31 tools.eq_(len(revs), 7) |
89 tools.eq_(tags.keys(), ['rev1']) | 53 tools.eq_(tags.keys(), ['rev1']) |
90 tools.eq_(tags['rev1'], ('trunk', 2)) | 54 tools.eq_(tags['rev1'], ('trunk', 2)) |
91 | 55 |
92 class TestRootAsSubdirOfRepo(TestBasicRepoLayout): | 56 class TestRootAsSubdirOfRepo(TestBasicRepoLayout): |
93 def setUp(self): | 57 def setUp(self): |
94 self.oldwd = os.getcwd() | |
95 self.tmpdir = tempfile.mkdtemp('svnwrap_test') | 58 self.tmpdir = tempfile.mkdtemp('svnwrap_test') |
96 self.repo_path = '%s/testrepo' % self.tmpdir | 59 self.repo_path = '%s/testrepo' % self.tmpdir |
97 wc_path = '%s/testrepo_wc' % self.tmpdir | 60 os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', |
98 os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', | |
99 self.repo_path,]) | 61 self.repo_path,]) |
100 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'checkout', | 62 proc = popen2.Popen4(['svnadmin', 'load', self.repo_path,]) |
101 'file://%s' % self.repo_path, | 63 inp = open(os.path.join(os.path.dirname(__file__), 'fixtures', |
102 wc_path,]) | 64 'project_root_not_repo_root.svndump')) |
103 self.repo_path += '/dummyproj' | 65 proc.tochild.write(inp.read()) |
104 os.chdir(wc_path) | 66 proc.tochild.close() |
105 os.mkdir('dummyproj') | 67 proc.wait() |
106 os.chdir('dummyproj') | 68 self.repo = svnwrap.SubversionRepo('file://%s/dummyproj' % |
107 wc_path += '/dummyproj' | 69 self.repo_path) |
108 for d in ['branches', 'tags', 'trunk']: | |
109 os.mkdir(os.path.join(wc_path, d)) | |
110 #r1 | |
111 os.chdir('..') | |
112 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'dummyproj']) | |
113 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Empty dirs.']) | |
114 os.chdir('dummyproj') | |
115 #r2 | |
116 files = ['alpha', 'beta', 'delta'] | |
117 for f in files: | |
118 open(os.path.join(wc_path, 'trunk', f), 'w').write('This is %s.\n' % f) | |
119 os.chdir('trunk') | |
120 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add']+files) | |
121 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Initial Files.']) | |
122 os.chdir('..') | |
123 #r3 | |
124 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'tags/rev1']) | |
125 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Tag rev 1.']) | |
126 #r4 | |
127 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/crazy']) | |
128 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to crazy.']) | |
129 | |
130 #r5 | |
131 open(os.path.join(wc_path, 'trunk', 'gamma'), 'w').write('This is %s.\n' | |
132 % 'gamma') | |
133 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'trunk/gamma', ]) | |
134 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add gamma']) | |
135 | |
136 #r6 | |
137 open(os.path.join(wc_path, 'branches', 'crazy', 'omega'), | |
138 'w').write('This is %s.\n' % 'omega') | |
139 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'branches/crazy/omega', ]) | |
140 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add omega']) | |
141 | |
142 #r7 | |
143 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/more_crazy']) | |
144 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to more_crazy.']) | |
145 | |
146 self.repo = svnwrap.SubversionRepo('file://%s' % (self.repo_path)) |