Author: Armin Rigo <[email protected]>
Branch: py3.5
Changeset: r88743:421d7a728d21
Date: 2016-11-29 16:16 +0100
http://bitbucket.org/pypy/pypy/changeset/421d7a728d21/
Log: Make generic the code to find the app-level name of a builtin module
from its rpython-level name
diff --git a/pypy/tool/pytest/apptest.py b/pypy/tool/pytest/apptest.py
--- a/pypy/tool/pytest/apptest.py
+++ b/pypy/tool/pytest/apptest.py
@@ -21,13 +21,6 @@
pypyroot = os.path.dirname(pypydir)
-RENAMED_USEMODULES = dict(
- _winreg='winreg',
- exceptions='builtins',
- struct='_struct',
- thread='_thread',
- operator='_operator',
- )
class AppError(Exception):
def __init__(self, excinfo):
@@ -63,6 +56,11 @@
return repr(value)
+def _rename_module(name):
+ mod = __import__("pypy.module." + name, globals(), locals(), ['Module'])
+ return mod.Module.applevel_name or name
+
+
def run_with_python(python_, target_, usemodules, **definitions):
if python_ is None:
py.test.skip("Cannot find the default python3 interpreter to run with
-A")
@@ -133,8 +131,7 @@
check_usemodules = ''
if usemodules:
- usemodules = [str(RENAMED_USEMODULES.get(name, name))
- for name in usemodules]
+ usemodules = [_rename_module(name) for name in usemodules]
check_usemodules = """\
missing = set(%r).difference(sys.builtin_module_names)
if missing:
diff --git a/pypy/tool/pytest/test/test_appsupport.py
b/pypy/tool/pytest/test/test_appsupport.py
--- a/pypy/tool/pytest/test/test_appsupport.py
+++ b/pypy/tool/pytest/test/test_appsupport.py
@@ -135,3 +135,12 @@
info = raises(ZeroDivisionError, "x/0")
assert info.type is ZeroDivisionError
assert isinstance(info.value, ZeroDivisionError)
+
+def test_rename_module():
+ from pypy.tool.pytest.apptest import _rename_module
+ assert _rename_module("sys") == "sys"
+ if sys.platform == "win32":
+ assert _rename_module("_winreg") == "winreg"
+ assert _rename_module("struct") == "_struct"
+ assert _rename_module("operator") == "_operator"
+ assert _rename_module("signal") == "_signal"
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit