[pypy-commit] pypy py3.5: Also test directories inside lib-python/3/test, not just plain files
rlamy
pypy.commits at gmail.com
Wed Nov 16 20:33:19 EST 2016
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: py3.5
Changeset: r88420:e6b9354a3e71
Date: 2016-11-17 01:32 +0000
http://bitbucket.org/pypy/pypy/changeset/e6b9354a3e71/
Log: Also test directories inside lib-python/3/test, not just plain files
diff --git a/lib-python/3/test/test_importlib/__main__.py b/lib-python/3/test/test_importlib/__main__.py
--- a/lib-python/3/test/test_importlib/__main__.py
+++ b/lib-python/3/test/test_importlib/__main__.py
@@ -1,4 +1,5 @@
from . import load_tests
+print('loaded tests')
import unittest
unittest.main()
diff --git a/lib-python/3/unittest/main.py b/lib-python/3/unittest/main.py
--- a/lib-python/3/unittest/main.py
+++ b/lib-python/3/unittest/main.py
@@ -59,6 +59,7 @@
testRunner=None, testLoader=loader.defaultTestLoader,
exit=True, verbosity=1, failfast=None, catchbreak=None,
buffer=None, warnings=None, *, tb_locals=False):
+ print('TestProgram()')
if isinstance(module, str):
self.module = __import__(module)
for part in module.split('.')[1:]:
@@ -74,6 +75,7 @@
self.verbosity = verbosity
self.buffer = buffer
self.tb_locals = tb_locals
+ print('1')
if warnings is None and not sys.warnoptions:
# even if DeprecationWarnings are ignored by default
# print them anyway unless other warnings settings are
@@ -90,7 +92,9 @@
self.testRunner = testRunner
self.testLoader = testLoader
self.progName = os.path.basename(argv[0])
+ print('parsing')
self.parseArgs(argv)
+ print('running')
self.runTests()
def usageExit(self, msg=None):
@@ -111,6 +115,7 @@
print(MODULE_EXAMPLES % {'prog': self.progName})
def parseArgs(self, argv):
+ print('in parseArgs()')
self._initArgParsers()
if self.module is None:
if len(argv) > 1 and argv[1].lower() == 'discover':
@@ -137,12 +142,15 @@
self.testNames = (self.defaultTest,)
else:
self.testNames = list(self.defaultTest)
+ print('creating tests')
self.createTests()
def createTests(self):
if self.testNames is None:
+ print('loading from module', self.module)
self.test = self.testLoader.loadTestsFromModule(self.module)
else:
+ print('loading', self.testNames, 'from', self.module)
self.test = self.testLoader.loadTestsFromNames(self.testNames,
self.module)
@@ -228,6 +236,7 @@
self.test = loader.discover(self.start, self.pattern, self.top)
def runTests(self):
+ print('in runTests()')
if self.catchbreak:
installHandler()
if self.testRunner is None:
diff --git a/lib-python/conftest.py b/lib-python/conftest.py
--- a/lib-python/conftest.py
+++ b/lib-python/conftest.py
@@ -110,6 +110,7 @@
RegrTest('test_asdl_parser.py'),
RegrTest('test_ast.py', core=True, usemodules='struct'),
RegrTest('test_asynchat.py', usemodules='select fcntl'),
+ RegrTest('test_asyncio'),
RegrTest('test_asyncore.py', usemodules='select fcntl'),
RegrTest('test_atexit.py', core=True),
RegrTest('test_audioop.py'),
@@ -199,7 +200,7 @@
RegrTest('test_dynamic.py'),
RegrTest('test_dynamicclassattribute.py'),
RegrTest('test_eintr.py'),
- RegrTest('test_email', skip="XXX is a directory"),
+ RegrTest('test_email'),
RegrTest('test_ensurepip.py'),
RegrTest('test_enum.py'),
RegrTest('test_enumerate.py', core=True),
@@ -258,8 +259,9 @@
RegrTest('test_idle.py'),
RegrTest('test_imaplib.py'),
RegrTest('test_imghdr.py'),
+ RegrTest('test_import'),
+ RegrTest('test_importlib', skip='XXX segfaults'),
RegrTest('test_imp.py', core=True, usemodules='thread'),
- RegrTest('test_importlib', 'XXX is a directory'),
RegrTest('test_index.py'),
RegrTest('test_inspect.py', usemodules="struct unicodedata"),
RegrTest('test_int.py', core=True),
@@ -271,7 +273,7 @@
RegrTest('test_iter.py', core=True),
RegrTest('test_iterlen.py', core=True, usemodules="_collections itertools"),
RegrTest('test_itertools.py', core=True, usemodules="itertools struct"),
- RegrTest('test_json', skip="XXX is a directory"),
+ RegrTest('test_json'),
RegrTest('test_keyword.py'),
RegrTest('test_keywordonlyarg.py'),
RegrTest('test_kqueue.py'),
@@ -437,9 +439,10 @@
RegrTest('test_tix.py'),
RegrTest('test_tk.py'),
RegrTest('test_tokenize.py'),
- RegrTest('test_trace.py'),
+ RegrTest('test_tools', skip="CPython internal details"),
RegrTest('test_traceback.py', core=True),
RegrTest('test_tracemalloc.py'),
+ RegrTest('test_trace.py'),
RegrTest('test_ttk_guionly.py'),
RegrTest('test_ttk_textonly.py'),
RegrTest('test_tuple.py', core=True),
@@ -470,6 +473,7 @@
RegrTest('test_venv.py', usemodules="struct"),
RegrTest('test_wait3.py', usemodules="thread"),
RegrTest('test_wait4.py', usemodules="thread"),
+ RegrTest('test_warnings'),
RegrTest('test_wave.py'),
RegrTest('test_weakref.py', core=True, usemodules='_weakref'),
RegrTest('test_weakset.py'),
@@ -513,11 +517,23 @@
cache[x.basename] = x
def pytest_ignore_collect(path, config):
+ if path.basename == '__init__.py':
+ return False
if path.isfile():
regrtest = config._basename2spec.get(path.basename, None)
if regrtest is None or path.dirpath() != testdir:
return True
+def pytest_collect_file(path, parent):
+ if path.basename == '__init__.py':
+ # handle the RegrTest for the whole subpackage here
+ pkg_path = path.dirpath()
+ regrtest = parent.config._basename2spec.get(pkg_path.basename, None)
+ if pkg_path.dirpath() == testdir and regrtest:
+ return RunFileExternal(
+ pkg_path.basename, parent=parent, regrtest=regrtest)
+
+
@pytest.hookimpl(tryfirst=True)
def pytest_pycollect_makemodule(path, parent):
config = parent.config
More information about the pypy-commit
mailing list