Mercurial > hgsubversion
view tests/comprehensive/test_custom_layout.py @ 1452:4217a050a088
tests: drop hard-coded list of tests
The list of out of date, missing 'test_helpers' and
'comprehensive/test_custom_layout'. Instead, use the discover
functionality introduced in Python 2.7, and available for Python 2.6
and earlier from the 'unittest2' backport.
Tested by invoking 'run.py' both with and without '-A' in Python 2.6 &
2.7, and ensuring that passing comprehensive tests as arguments
continues to work.
As a minor (but welcome) side-effect, this should restore the ability to
test hgsubversion under demandimport; previously, test_util was
imported before we enabled demandimport, so it didn't affect most of
Mercurial. Since unittest2 (and unittest) do define SkipTest, we can
remove the earlier import, restoring the likely originally intended
testing mode.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Sun, 12 Jun 2016 14:55:57 +0200 |
parents | 89997a5fc181 |
children |
line wrap: on
line source
import os import sys import unittest from mercurial import hg from mercurial import ui # wrapped in a try/except because of weirdness in how # run.py works as compared to nose. try: import test_util except ImportError: sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) import test_util from hgsubversion import wrappers from hgsubversion import svnwrap def _do_case(self, name, stupid): subdir = test_util.subdir.get(name, '') config = { 'hgsubversion.stupid': stupid and '1' or '0', } repo, repo_path = self.load_and_fetch(name, subdir=subdir, layout='auto', config=config) assert test_util.repolen(self.repo) > 0, \ 'Repo had no changes, maybe you need to add a subdir entry in test_util?' wc2_path = self.wc_path + '_custom' checkout_path = repo_path if subdir: checkout_path += '/' + subdir u = test_util.testui(stupid=stupid, layout='custom') for branch, path in test_util.custom.get(name, {}).iteritems(): u.setconfig('hgsubversionbranch', branch, path) test_util.hgclone(u, test_util.fileurl(checkout_path), wc2_path, update=False) self.repo2 = hg.repository(test_util.testui(), wc2_path) self.assertEqual(self.repo.heads(), self.repo2.heads()) def buildmethod(case, name, stupid): m = lambda self: self._do_case(case, stupid) m.__name__ = name replay = stupid and 'stupid' or 'regular' m.__doc__ = 'Test custom produces same as standard on %s. (%s)' % (case, replay) return m attrs = {'_do_case': _do_case, } for case in test_util.custom: name = 'test_' + case[:-len('.svndump')].replace('-', '_') attrs[name] = buildmethod(case, name, stupid=False) if svnwrap.subversion_version < (1, 9, 0): name += '_stupid' attrs[name] = buildmethod(case, name, stupid=True) CustomPullTests = type('CustomPullTests', (test_util.TestBase,), attrs)