# # Copyright (c) 2009, 2010 Testrepository Contributors # # Licensed under either the Apache License, Version 2.0 or the BSD 3-clause # license at the users choice. A copy of both licenses are available in the # project source as Apache-2.0 and BSD. You may not use this file except in # compliance with one of these two licences. # # Unless required by applicable law or agreed to in writing, software # distributed under these licenses is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # license you chose for the specific language governing permissions and # limitations under that license. """The testrepository tests and test only code.""" import unittest import testresources from testscenarios import generate_scenarios from testtools import TestCase class ResourcedTestCase(TestCase, testresources.ResourcedTestCase): """Make all testrepository tests have resource support.""" class _Wildcard(object): """Object that is equal to everything.""" def __repr__(self): return '*' def __eq__(self, other): return True def __ne__(self, other): return False Wildcard = _Wildcard() class StubTestCommand: def __init__(self, filter_tags=None): self.results = [] self.filter_tags = filter_tags or set() def __call__(self, ui, repo): return self def get_filter_tags(self): return self.filter_tags def test_suite(): packages = [ 'arguments', 'commands', 'repository', 'ui', ] names = [ 'arguments', 'commands', 'matchers', 'monkeypatch', 'repository', 'results', 'setup', 'stubpackage', 'testcommand', 'testr', 'ui', ] module_names = ['testrepository.tests.test_' + name for name in names] loader = unittest.TestLoader() suite = loader.loadTestsFromNames(module_names) result = testresources.OptimisingTestSuite() result.addTests(generate_scenarios(suite)) for pkgname in packages: pkg = __import__('testrepository.tests.' + pkgname, globals(), locals(), ['test_suite']) result.addTests(generate_scenarios(pkg.test_suite())) return result