Mercurial > hgsubversion
diff 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 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/test_svnwrap.py @@ -0,0 +1,146 @@ +import os +import shutil +import tempfile +import unittest + +from nose import tools + +import svnwrap + +class TestBasicRepoLayout(unittest.TestCase): + def setUp(self): + self.oldwd = os.getcwd() + self.tmpdir = tempfile.mkdtemp('svnwrap_test') + self.repo_path = '%s/testrepo' % self.tmpdir + wc_path = '%s/testrepo_wc' % self.tmpdir + os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', + self.repo_path,]) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'checkout', + 'file://%s' % self.repo_path, + wc_path,]) + os.chdir(wc_path) + for d in ['branches', 'tags', 'trunk']: + os.mkdir(os.path.join(wc_path, d)) + #r1 + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'branches', 'tags', 'trunk']) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Empty dirs.']) + #r2 + files = ['alpha', 'beta', 'delta'] + for f in files: + open(os.path.join(wc_path, 'trunk', f), 'w').write('This is %s.\n' % f) + os.chdir('trunk') + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add']+files) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Initial Files.']) + os.chdir('..') + #r3 + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'tags/rev1']) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Tag rev 1.']) + #r4 + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/crazy']) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to crazy.']) + + #r5 + open(os.path.join(wc_path, 'trunk', 'gamma'), 'w').write('This is %s.\n' + % 'gamma') + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'trunk/gamma', ]) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add gamma']) + + #r6 + open(os.path.join(wc_path, 'branches', 'crazy', 'omega'), + 'w').write('This is %s.\n' % 'omega') + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'branches/crazy/omega', ]) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add omega']) + + #r7 + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/more_crazy']) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to more_crazy.']) + + self.repo = svnwrap.SubversionRepo('file://%s' % self.repo_path) + + def tearDown(self): + shutil.rmtree(self.tmpdir) + os.chdir(self.oldwd) + + + def test_num_revs(self): + revs = list(self.repo.revisions()) + tools.eq_(len(revs), 7) + r = revs[1] + tools.eq_(r.revnum, 2) + tools.eq_(sorted(r.paths.keys()), + ['trunk/alpha', 'trunk/beta', 'trunk/delta']) + for r in revs: + for p in r.paths: + # make sure these paths are always non-absolute for sanity + if p: + assert p[0] != '/' + revs = list(self.repo.revisions(start=3)) + tools.eq_(len(revs), 4) + + + def test_branches(self): + tools.eq_(self.repo.branches.keys(), ['crazy', 'more_crazy']) + tools.eq_(self.repo.branches['crazy'], ('trunk', 2, 4)) + tools.eq_(self.repo.branches['more_crazy'], ('trunk', 5, 7)) + + + def test_tags(self): + tags = self.repo.tags + tools.eq_(tags.keys(), ['rev1']) + tools.eq_(tags['rev1'], ('trunk', 2)) + +class TestRootAsSubdirOfRepo(TestBasicRepoLayout): + def setUp(self): + self.oldwd = os.getcwd() + self.tmpdir = tempfile.mkdtemp('svnwrap_test') + self.repo_path = '%s/testrepo' % self.tmpdir + wc_path = '%s/testrepo_wc' % self.tmpdir + os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', + self.repo_path,]) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'checkout', + 'file://%s' % self.repo_path, + wc_path,]) + self.repo_path += '/dummyproj' + os.chdir(wc_path) + os.mkdir('dummyproj') + os.chdir('dummyproj') + wc_path += '/dummyproj' + for d in ['branches', 'tags', 'trunk']: + os.mkdir(os.path.join(wc_path, d)) + #r1 + os.chdir('..') + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'dummyproj']) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Empty dirs.']) + os.chdir('dummyproj') + #r2 + files = ['alpha', 'beta', 'delta'] + for f in files: + open(os.path.join(wc_path, 'trunk', f), 'w').write('This is %s.\n' % f) + os.chdir('trunk') + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add']+files) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Initial Files.']) + os.chdir('..') + #r3 + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'tags/rev1']) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Tag rev 1.']) + #r4 + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/crazy']) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to crazy.']) + + #r5 + open(os.path.join(wc_path, 'trunk', 'gamma'), 'w').write('This is %s.\n' + % 'gamma') + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'trunk/gamma', ]) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add gamma']) + + #r6 + open(os.path.join(wc_path, 'branches', 'crazy', 'omega'), + 'w').write('This is %s.\n' % 'omega') + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'branches/crazy/omega', ]) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add omega']) + + #r7 + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/more_crazy']) + os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to more_crazy.']) + + self.repo = svnwrap.SubversionRepo('file://%s' % (self.repo_path))