12 May 2012 12:02
Re: [PATCH v3] fold test_startrev and test_verify into a new test; test_verify_and_startrev
queued On May 12, 2012, at 11:14 AM, Dan Villiom Podlaski Christiansen wrote: > # HG changeset patch > # User Dan Villiom Podlaski Christiansen <danchr@...> > # Date 1336813977 -7200 > # Node ID d3ff5807f1bd12c0d233a9873aa5243e871a39b2 > # Parent 99a15c6a283c951e7a99008b74a9098736a94379 > fold test_startrev and test_verify into a new test; test_verify_and_startrev > > diff --git a/tests/comprehensive/test_verify.py b/tests/comprehensive/test_verify_and_startrev.py > rename from tests/comprehensive/test_verify.py > rename to tests/comprehensive/test_verify_and_startrev.py > --- a/tests/comprehensive/test_verify.py > +++ b/tests/comprehensive/test_verify_and_startrev.py > <at> <at> -16,14 +16,45 <at> <at> from mercurial import ui > > from hgsubversion import svncommands > > +# these fixtures contain no files at HEAD and would result in empty clones > +_skipshallow = set([ > + 'binaryfiles.svndump', > + 'binaryfiles-broken.svndump', > + 'emptyrepo.svndump', > +]) > + > def _do_case(self, name, stupid, layout): > subdir = test_util.subdir.get(name, '') > - repo = self._load_fixture_and_fetch(name, subdir=subdir, stupid=stupid, layout=layout) > + repo, svnpath = self.load_and_fetch(name, subdir=subdir, stupid=stupid, > + layout=layout) > assert len(self.repo) > 0 > for i in repo: > ctx = repo[i] > self.assertEqual(svncommands.verify(repo.ui, repo, rev=ctx.node()), 0) > > + # check a startrev clone > + if layout == 'single' and name not in _skipshallow: > + self.wc_path += '_shallow' > + shallowrepo = self.fetch(svnpath, subdir=subdir, stupid=stupid, > + layout='single', startrev='HEAD') > + > + self.assertEqual(len(shallowrepo), 1, > + "shallow clone should have just one revision, not %d" > + % len(shallowrepo)) > + > + fulltip = repo['tip'] > + shallowtip = shallowrepo['tip'] > + > + self.assertEqual(0, svncommands.verify(repo.ui, shallowrepo, > + rev=shallowtip.node())) > + > + # viewing diff's of lists of files is easier on the eyes > + self.assertMultiLineEqual('\n'.join(fulltip), '\n'.join(shallowtip)) > + > + for f in fulltip: > + self.assertMultiLineEqual(fulltip[f].data(), shallowtip[f].data()) > + > + > def buildmethod(case, name, stupid, layout): > m = lambda self: self._do_case(case, stupid, layout) > m.__name__ = name > diff --git a/tests/run.py b/tests/run.py > --- a/tests/run.py > +++ b/tests/run.py > <at> <at> -25,7 +25,6 <at> <at> def tests(): > import test_push_eol > import test_rebuildmeta > import test_single_dir_clone > - import test_startrev > import test_svnwrap > import test_tags > import test_template_keywords > <at> <at> -37,7 +36,7 <at> <at> def tests(): > sys.path.append(os.path.join(os.path.dirname(__file__), 'comprehensive')) > > import test_stupid_pull > - import test_verify > + import test_verify_and_startrev > > return locals() > > diff --git a/tests/test_startrev.py b/tests/test_startrev.py > deleted file mode 100644 > --- a/tests/test_startrev.py > +++ /dev/null > <at> <at> -1,71 +0,0 <at> <at> > -import test_util > - > -import os > -import unittest > - > -def _do_case(self, name, subdir, stupid): > - wc_base = self.wc_path > - self.wc_path = wc_base + '_full' > - headclone = self._load_fixture_and_fetch(name, subdir=subdir, stupid=stupid, > - layout='single', startrev='HEAD') > - self.wc_path = wc_base + '_head' > - fullclone = self._load_fixture_and_fetch(name, subdir=subdir, stupid=stupid, > - layout='single') > - > - fulltip = fullclone['tip'] > - headtip = headclone['tip'] > - # viewing diff's of lists of files is easier on the eyes > - self.assertMultiLineEqual('\n'.join(fulltip), '\n'.join(headtip)) > - > - for f in fulltip: > - self.assertMultiLineEqual(fulltip[f].data(), headtip[f].data()) > - > - self.assertNotEqual(len(fullclone), 0, "full clone shouldn't be empty") > - self.assertEqual(len(headclone), 1, > - "shallow clone should have just one revision, not %d" > - % len(headclone)) > - > -def buildmethod(case, name, subdir, stupid): > - m = lambda self: self._do_case(case, subdir.strip('/'), stupid) > - m.__name__ = name > - m.__doc__ = ('Test clone with startrev on %s%s with %s replay.' % > - (case, subdir, (stupid and 'stupid') or 'real')) > - return m > - > - > -# these fixtures contain no files at HEAD and would result in empty clones > -nofiles = set([ > - 'binaryfiles.svndump', > - 'binaryfiles-broken.svndump', > - 'emptyrepo.svndump', > -]) > - > -# these fixtures contain no files in trunk at HEAD and would result in an empty > -# shallow clone if cloning trunk, so we use another subdirectory > -subdirmap = { > - 'commit-to-tag.svndump': '/branches/magic', > - 'pushexternals.svndump': '', > - 'tag_name_same_as_branch.svndump': '/branches/magic', > -} > - > -attrs = {'_do_case': _do_case, > - } > - > -for case in [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')]: > - if case in nofiles: > - continue > - > - subdir = test_util.subdir.get(case, '') + subdirmap.get(case, '/trunk') > - > - bname = 'test_' + case[:-len('.svndump')] > - attrs[bname] = buildmethod(case, bname, subdir, False) > - name = bname + '_stupid' > - attrs[name] = buildmethod(case, name, subdir, True) > - > -StartRevTests = type('StartRevTests', (test_util.TestBase,), attrs) > - > - > -def suite(): > - all_tests = [unittest.TestLoader().loadTestsFromTestCase(StartRevTests), > - ] > - return unittest.TestSuite(all_tests) > diff --git a/tests/test_util.py b/tests/test_util.py > --- a/tests/test_util.py > +++ b/tests/test_util.py > <at> <at> -297,15 +297,13 <at> <at> class TestBase(unittest.TestCase): > proc.communicate() > return path > > - def load_and_fetch(self, fixture_name, subdir=None, stupid=False, > - layout='auto', startrev=0, externals=None, > - noupdate=True): > + def fetch(self, repo_path, subdir=None, stupid=False, layout='auto', startrev=0, > + externals=None, noupdate=True, dest=None): > if layout == 'single': > if subdir is None: > subdir = 'trunk' > elif subdir is None: > subdir = '' > - repo_path = self.load_svndump(fixture_name) > projectpath = repo_path > if subdir: > projectpath += '/' + subdir > <at> <at> -326,7 +324,12 <at> <at> class TestBase(unittest.TestCase): > > dispatch(cmd) > > - return hg.repository(testui(), self.wc_path), repo_path > + return hg.repository(testui(), self.wc_path) > + > + def load_and_fetch(self, fixture_name, *args, **opts): > + repo_path = self.load_svndump(fixture_name) > + > + return self.fetch(repo_path, *args, **opts), repo_path > > def _load_fixture_and_fetch(self, *args, **kwargs): > repo, repo_path = self.load_and_fetch(*args, **kwargs) > > -- > You received this message because you are subscribed to the Google Groups "hgsubversion" group. > To post to this group, send email to hgsubversion@... > To unsubscribe from this group, send email to hgsubversion+unsubscribe@... > For more options, visit this group at http://groups.google.com/group/hgsubversion?hl=en. > -- -- You received this message because you are subscribed to the Google Groups "hgsubversion" group. To post to this group, send email to hgsubversion@... To unsubscribe from this group, send email to hgsubversion+unsubscribe@... For more options, visit this group at http://groups.google.com/group/hgsubversion?hl=en.
RSS Feed