[Python-checkins] distutils2: dropped test_loader and added test_runner, renamed test_suite
tarek.ziade
python-checkins at python.org
Sun Sep 19 10:20:22 CEST 2010
tarek.ziade pushed b81715424b1c to distutils2:
http://hg.python.org/distutils2/rev/b81715424b1c
changeset: 620:b81715424b1c
user: Konrad Delong <konryd at gmail.com>
date: Fri Aug 13 17:31:20 2010 +0200
summary: dropped test_loader and added test_runner, renamed test_suite
files: src/distutils2/command/test.py, src/distutils2/tests/dists/custom_loader/myowntestmodule.py, src/distutils2/tests/dists/custom_loader/setup.cfg, src/distutils2/tests/dists/custom_loader/setup.py, src/distutils2/tests/dists/extensions_test/setup.cfg, src/distutils2/tests/dists/simple_test/setup.cfg, src/distutils2/tests/test_test.py
diff --git a/src/distutils2/command/test.py b/src/distutils2/command/test.py
--- a/src/distutils2/command/test.py
+++ b/src/distutils2/command/test.py
@@ -1,4 +1,5 @@
import os, sys
+from distutils2 import log
from distutils2.core import Command
from distutils2._backport.pkgutil import get_distribution
from distutils2.util import resolve_name
@@ -8,16 +9,17 @@
class test(Command):
description = "run the distribution's test suite"
+
user_options = [
- ('test-suite=', 's',
+ ('suite=', 's',
"Test suite to run (e.g. 'some_module.test_suite')"),
- ('test-loader=', None,
- "Test loader to be used to load the test suite."),
+ ('runner=', None,
+ "Test runner to be called."),
]
def initialize_options(self):
- self.test_suite = None
- self.test_loader = None
+ self.suite = None
+ self.runner = None
def finalize_options(self):
self.build_lib = self.get_finalized_command("build").build_lib
@@ -26,23 +28,23 @@
if get_distribution(requirement) is None:
warnings.warn("The test dependency %s is not installed which may couse the tests to fail." % requirement,
RuntimeWarning)
+ if not self.suite and not self.runner:
+ self.announce("Either 'suite' or 'runner' option must be specified", log.ERROR)
def run(self):
prev_cwd = os.getcwd()
try:
+ # build distribution if needed
if self.distribution.has_ext_modules():
build = self.get_reinitialized_command('build')
- build.inplace = 1 # TODO - remove make sure it's needed
+ build.inplace = 1
self.run_command('build')
os.chdir(self.build_lib)
- args = {}
- if self.test_loader:
- loader_class = resolve_name(self.test_loader)
- args['testLoader'] = loader_class()
- if self.test_suite:
- argv = [unittest.__file__, '--verbose', self.test_suite]
- else:
- argv = [unittest.__file__, '--verbose']
- unittest.main(None, None, argv, **args)
+
+ # run the tests
+ if self.runner:
+ resolve_name(self.runner)()
+ elif self.suite:
+ unittest.main(None, None, [unittest.__file__, '--verbose', self.suite])
finally:
os.chdir(prev_cwd)
diff --git a/src/distutils2/tests/dists/custom_loader/myowntestmodule.py b/src/distutils2/tests/dists/custom_loader/myowntestmodule.py
deleted file mode 100644
--- a/src/distutils2/tests/dists/custom_loader/myowntestmodule.py
+++ /dev/null
@@ -1,9 +0,0 @@
-import unittest
-class Loader(object):
- def loadTestsFromModule(self, names, module=None):
- class SomeTest(unittest.TestCase):
- def test_blah(self):
- self.fail("horribly")
- return unittest.makeSuite(SomeTest)
- def __repr__(self):
- return 'YO'
diff --git a/src/distutils2/tests/dists/custom_loader/setup.cfg b/src/distutils2/tests/dists/custom_loader/setup.cfg
deleted file mode 100644
--- a/src/distutils2/tests/dists/custom_loader/setup.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[test]
-test-loader = myowntestmodule.Loader
diff --git a/src/distutils2/tests/dists/custom_loader/setup.py b/src/distutils2/tests/dists/custom_loader/setup.py
deleted file mode 100644
--- a/src/distutils2/tests/dists/custom_loader/setup.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from distutils2.core import setup
-setup(name='somedist',
- version='0.1',
- py_modules=['myowntestmodule', 'somemod'],
-)
diff --git a/src/distutils2/tests/dists/extensions_test/setup.cfg b/src/distutils2/tests/dists/extensions_test/setup.cfg
--- a/src/distutils2/tests/dists/extensions_test/setup.cfg
+++ b/src/distutils2/tests/dists/extensions_test/setup.cfg
@@ -1,2 +1,2 @@
[test]
-test-suite = myowntestmodule.test_suite
+suite = myowntestmodule.test_suite
diff --git a/src/distutils2/tests/dists/simple_test/setup.cfg b/src/distutils2/tests/dists/simple_test/setup.cfg
--- a/src/distutils2/tests/dists/simple_test/setup.cfg
+++ b/src/distutils2/tests/dists/simple_test/setup.cfg
@@ -1,2 +1,2 @@
[test]
-test-suite = myowntestmodule.test_suite
+suite = myowntestmodule.test_suite
diff --git a/src/distutils2/tests/test_test.py b/src/distutils2/tests/test_test.py
--- a/src/distutils2/tests/test_test.py
+++ b/src/distutils2/tests/test_test.py
@@ -7,7 +7,7 @@
from copy import copy
from os.path import join
from StringIO import StringIO
-from distutils2.tests.support import unittest, TempdirManager
+from distutils2.tests.support import unittest, LoggingSilencer, TempdirManager
from distutils2.command.test import test
from distutils2.dist import Distribution
@@ -27,7 +27,9 @@
here = os.path.dirname(os.path.abspath(__file__))
-class TestTest(TempdirManager, unittest.TestCase):
+class TestTest(TempdirManager,
+ #LoggingSilencer,
+ unittest.TestCase):
def setUp(self):
super(TestTest, self).setUp()
@@ -80,11 +82,6 @@
self.assertTrue(os.path.exists(join(self.pkg_dir, 'build')))
self.assertTrue(any(x.startswith('lib') for x in os.listdir(join(self.pkg_dir, 'build'))))
- def test_custom_test_loader(self):
- self.pkg_dir = self.prepare_dist("custom_loader")
- output = self.run_with_dist_cwd(self.pkg_dir)
- self.assert_re_match(EXPECTED_OUTPUT_RE, output)
-
def _test_works_with_2to3(self):
pass
@@ -102,6 +99,25 @@
examine_warnings(examinator)
+ def test_custom_runner(self):
+ dist = Distribution()
+ cmd = test(dist)
+
+ tmp_dir = self.mkdtemp()
+ try:
+ sys.path.append(tmp_dir)
+ self.write_file(os.path.join(tmp_dir, 'distutils2_tests_a.py'), '')
+ import distutils2_tests_a as a_module
+ a_module.recorder = lambda: record.append("runner called")
+ record = []
+ cmd.runner = "distutils2_tests_a.recorder"
+ cmd.ensure_finalized()
+ cmd.run()
+ self.assertEqual(["runner called"], record)
+ finally:
+ sys.path.remove(tmp_dir)
+
+
def test_suite():
return unittest.makeSuite(TestTest)
--
Repository URL: http://hg.python.org/distutils2
More information about the Python-checkins
mailing list