mirror of
https://github.com/python/cpython.git
synced 2025-08-30 21:48:47 +00:00
Fix unittest test discovery for Jython
This commit is contained in:
parent
df723e1e5e
commit
e01c62cd6b
2 changed files with 11 additions and 4 deletions
|
@ -34,6 +34,11 @@ def _make_failed_test(classname, methodname, exception, suiteClass):
|
||||||
TestClass = type(classname, (case.TestCase,), attrs)
|
TestClass = type(classname, (case.TestCase,), attrs)
|
||||||
return suiteClass((TestClass(methodname),))
|
return suiteClass((TestClass(methodname),))
|
||||||
|
|
||||||
|
def _jython_aware_splitext(path):
|
||||||
|
if path.lower().endswith('$py.class'):
|
||||||
|
return path[:-9]
|
||||||
|
return os.path.splitext(path)[0]
|
||||||
|
|
||||||
|
|
||||||
class TestLoader(object):
|
class TestLoader(object):
|
||||||
"""
|
"""
|
||||||
|
@ -221,7 +226,7 @@ class TestLoader(object):
|
||||||
return os.path.dirname(full_path)
|
return os.path.dirname(full_path)
|
||||||
|
|
||||||
def _get_name_from_path(self, path):
|
def _get_name_from_path(self, path):
|
||||||
path = os.path.splitext(os.path.normpath(path))[0]
|
path = _jython_aware_splitext(os.path.normpath(path))
|
||||||
|
|
||||||
_relpath = os.path.relpath(path, self._top_level_dir)
|
_relpath = os.path.relpath(path, self._top_level_dir)
|
||||||
assert not os.path.isabs(_relpath), "Path must be within the project"
|
assert not os.path.isabs(_relpath), "Path must be within the project"
|
||||||
|
@ -258,11 +263,11 @@ class TestLoader(object):
|
||||||
yield _make_failed_import_test(name, self.suiteClass)
|
yield _make_failed_import_test(name, self.suiteClass)
|
||||||
else:
|
else:
|
||||||
mod_file = os.path.abspath(getattr(module, '__file__', full_path))
|
mod_file = os.path.abspath(getattr(module, '__file__', full_path))
|
||||||
realpath = os.path.splitext(mod_file)[0]
|
realpath = _jython_aware_splitext(mod_file)
|
||||||
fullpath_noext = os.path.splitext(full_path)[0]
|
fullpath_noext = _jython_aware_splitext(full_path)
|
||||||
if realpath.lower() != fullpath_noext.lower():
|
if realpath.lower() != fullpath_noext.lower():
|
||||||
module_dir = os.path.dirname(realpath)
|
module_dir = os.path.dirname(realpath)
|
||||||
mod_name = os.path.splitext(os.path.basename(full_path))[0]
|
mod_name = _jython_aware_splitext(os.path.basename(full_path))
|
||||||
expected_dir = os.path.dirname(full_path)
|
expected_dir = os.path.dirname(full_path)
|
||||||
msg = ("%r module incorrectly imported from %r. Expected %r. "
|
msg = ("%r module incorrectly imported from %r. Expected %r. "
|
||||||
"Is this module globally installed?")
|
"Is this module globally installed?")
|
||||||
|
|
|
@ -22,6 +22,8 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #10543: Fix unittest test discovery with Jython bytecode files.
|
||||||
|
|
||||||
- Issue #14252: Fix subprocess.Popen.terminate() to not raise an error under
|
- Issue #14252: Fix subprocess.Popen.terminate() to not raise an error under
|
||||||
Windows when the child process has already exited.
|
Windows when the child process has already exited.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue