Mercurial > hgsubversion
view svnwrap/tests/test_svnwrap.py @ 87:b033d74be76b
fetch_command: in stupid non-diffy mode, take changed paths in account
Former code was checkouting all branch files for every converted
revision when diffs were not available in stupid mode. Now, only
changed items are requested.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Fri, 14 Nov 2008 16:18:24 -0600 |
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)