Mercurial > hgsubversion
view svnwrap/tests/test_svnwrap.py @ 48:d87b57c719f0
Add a test that verifies push works to svn:// servers.
This test will fail if you are running an svnserve on localhost, but it checks and will not touch your data in that case.
Also fixed the push tests, which had been largely broken.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Wed, 29 Oct 2008 21:15:36 -0500 |
parents | bfbce70a9a57 |
children | 9ad5cf45e30c |
line wrap: on
line source
import os import popen2 import shutil import tempfile import unittest from nose import tools import svnwrap class TestBasicRepoLayout(unittest.TestCase): def setUp(self): self.tmpdir = tempfile.mkdtemp('svnwrap_test') self.repo_path = '%s/testrepo' % self.tmpdir os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', self.repo_path,]) proc = popen2.Popen4(['svnadmin', 'load', self.repo_path,]) inp = open(os.path.join(os.path.dirname(__file__), 'fixtures', 'project_root_at_repo_root.svndump')) proc.tochild.write(inp.read()) proc.tochild.close() proc.wait() self.repo = svnwrap.SubversionRepo('file://%s' % self.repo_path) def tearDown(self): shutil.rmtree(self.tmpdir) 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.tmpdir = tempfile.mkdtemp('svnwrap_test') self.repo_path = '%s/testrepo' % self.tmpdir os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', self.repo_path,]) proc = popen2.Popen4(['svnadmin', 'load', self.repo_path,]) inp = open(os.path.join(os.path.dirname(__file__), 'fixtures', 'project_root_not_repo_root.svndump')) proc.tochild.write(inp.read()) proc.tochild.close() proc.wait() self.repo = svnwrap.SubversionRepo('file://%s/dummyproj' % self.repo_path)