Mercurial > hgsubversion
comparison test_svnwrap.py @ 0:f2636cfed115
Initial import of hgsubversion into a public repository.
| author | Augie Fackler <durin42@gmail.com> |
|---|---|
| date | Tue, 30 Sep 2008 11:42:52 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:f2636cfed115 |
|---|---|
| 1 import os | |
| 2 import shutil | |
| 3 import tempfile | |
| 4 import unittest | |
| 5 | |
| 6 from nose import tools | |
| 7 | |
| 8 import svnwrap | |
| 9 | |
| 10 class TestBasicRepoLayout(unittest.TestCase): | |
| 11 def setUp(self): | |
| 12 self.oldwd = os.getcwd() | |
| 13 self.tmpdir = tempfile.mkdtemp('svnwrap_test') | |
| 14 self.repo_path = '%s/testrepo' % self.tmpdir | |
| 15 wc_path = '%s/testrepo_wc' % self.tmpdir | |
| 16 os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', | |
| 17 self.repo_path,]) | |
| 18 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'checkout', | |
| 19 'file://%s' % self.repo_path, | |
| 20 wc_path,]) | |
| 21 os.chdir(wc_path) | |
| 22 for d in ['branches', 'tags', 'trunk']: | |
| 23 os.mkdir(os.path.join(wc_path, d)) | |
| 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) | |
| 59 | |
| 60 def tearDown(self): | |
| 61 shutil.rmtree(self.tmpdir) | |
| 62 os.chdir(self.oldwd) | |
| 63 | |
| 64 | |
| 65 def test_num_revs(self): | |
| 66 revs = list(self.repo.revisions()) | |
| 67 tools.eq_(len(revs), 7) | |
| 68 r = revs[1] | |
| 69 tools.eq_(r.revnum, 2) | |
| 70 tools.eq_(sorted(r.paths.keys()), | |
| 71 ['trunk/alpha', 'trunk/beta', 'trunk/delta']) | |
| 72 for r in revs: | |
| 73 for p in r.paths: | |
| 74 # make sure these paths are always non-absolute for sanity | |
| 75 if p: | |
| 76 assert p[0] != '/' | |
| 77 revs = list(self.repo.revisions(start=3)) | |
| 78 tools.eq_(len(revs), 4) | |
| 79 | |
| 80 | |
| 81 def test_branches(self): | |
| 82 tools.eq_(self.repo.branches.keys(), ['crazy', 'more_crazy']) | |
| 83 tools.eq_(self.repo.branches['crazy'], ('trunk', 2, 4)) | |
| 84 tools.eq_(self.repo.branches['more_crazy'], ('trunk', 5, 7)) | |
| 85 | |
| 86 | |
| 87 def test_tags(self): | |
| 88 tags = self.repo.tags | |
| 89 tools.eq_(tags.keys(), ['rev1']) | |
| 90 tools.eq_(tags['rev1'], ('trunk', 2)) | |
| 91 | |
| 92 class TestRootAsSubdirOfRepo(TestBasicRepoLayout): | |
| 93 def setUp(self): | |
| 94 self.oldwd = os.getcwd() | |
| 95 self.tmpdir = tempfile.mkdtemp('svnwrap_test') | |
| 96 self.repo_path = '%s/testrepo' % self.tmpdir | |
| 97 wc_path = '%s/testrepo_wc' % self.tmpdir | |
| 98 os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', | |
| 99 self.repo_path,]) | |
| 100 os.spawnvp(os.P_WAIT, 'svn', ['svn', 'checkout', | |
| 101 'file://%s' % self.repo_path, | |
| 102 wc_path,]) | |
| 103 self.repo_path += '/dummyproj' | |
| 104 os.chdir(wc_path) | |
| 105 os.mkdir('dummyproj') | |
| 106 os.chdir('dummyproj') | |
| 107 wc_path += '/dummyproj' | |
| 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)) |
