Mercurial > hgsubversion
view tests/test_svnwrap.py @ 1548:7f83be82d03f
revset: fix ordering issue of "svnrev()"
This is subtle. See
https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-August/103368.html
for the context. Basically, `subset & x` (instead of `x & subset`)
should be used to make order correct given the current revset API.
author | Jun Wu <quark@fb.com> |
---|---|
date | Tue, 19 Dec 2017 14:19:00 -0800 |
parents | 019c3e194fba |
children |
line wrap: on
line source
import test_util import os import subprocess import tempfile import unittest from hgsubversion import svnwrap class TestBasicRepoLayout(unittest.TestCase): def setUp(self): self.tmpdir = tempfile.mkdtemp('svnwrap_test') self.repo_path = '%s/testrepo' % self.tmpdir with open(os.path.join(test_util.FIXTURES, 'project_root_at_repo_root.svndump')) as fp: svnwrap.create_and_load(self.repo_path, fp) self.repo = svnwrap.SubversionRepo(test_util.fileurl(self.repo_path)) def tearDown(self): del self.repo test_util.rmtree(self.tmpdir) def test_num_revs(self): revs = list(self.repo.revisions()) self.assertEqual(len(revs), 7) r = revs[1] self.assertEqual(r.revnum, 2) self.assertEqual(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)) self.assertEqual(len(revs), 4) class TestRootAsSubdirOfRepo(TestBasicRepoLayout): def setUp(self): self.tmpdir = tempfile.mkdtemp('svnwrap_test') self.repo_path = '%s/testrepo' % self.tmpdir subprocess.call(['svnadmin', 'create', self.repo_path, ]) inp = open(os.path.join(os.path.dirname(__file__), 'fixtures', 'project_root_not_repo_root.svndump')) ret = subprocess.call(['svnadmin', 'load', self.repo_path, ], stdin=inp, close_fds=test_util.canCloseFds, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) assert ret == 0 self.repo = svnwrap.SubversionRepo(test_util.fileurl( self.repo_path + '/dummyproj' ))