Author: Ronan Lamy <ronan.l...@gmail.com> Branch: bootstrap-clarity Changeset: r83077:11e9cab4e26f Date: 2016-03-15 20:10 +0000 http://bitbucket.org/pypy/pypy/changeset/11e9cab4e26f/
Log: Make module _cleanup_ explicit diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py --- a/pypy/interpreter/baseobjspace.py +++ b/pypy/interpreter/baseobjspace.py @@ -633,6 +633,8 @@ self.getbuiltinmodule('__builtin__') for mod in self.builtin_modules.values(): mod.setup_after_space_initialization() + for mod in self.builtin_modules.values(): + mod.cleanup() def initialize(self): """NOT_RPYTHON: Abstract method that should put some minimal diff --git a/pypy/interpreter/mixedmodule.py b/pypy/interpreter/mixedmodule.py --- a/pypy/interpreter/mixedmodule.py +++ b/pypy/interpreter/mixedmodule.py @@ -123,7 +123,7 @@ self.save_module_content_for_future_reload() return self.w_dict - def _cleanup_(self): + def cleanup(self): self.getdict(self.space) self.w_initialdict = None self.startup_called = False diff --git a/pypy/interpreter/module.py b/pypy/interpreter/module.py --- a/pypy/interpreter/module.py +++ b/pypy/interpreter/module.py @@ -29,7 +29,7 @@ space.w_None) self.startup_called = False - def _cleanup_(self): + def cleanup(self): """Called by the annotator on prebuilt Module instances. We don't have many such modules, but for the ones that show up, remove their __file__ rather than translate it diff --git a/pypy/interpreter/test/test_appinterp.py b/pypy/interpreter/test/test_appinterp.py --- a/pypy/interpreter/test/test_appinterp.py +++ b/pypy/interpreter/test/test_appinterp.py @@ -3,30 +3,30 @@ from pypy.interpreter.gateway import appdef, ApplevelClass, applevel_temp from pypy.interpreter.error import OperationError -def test_execwith_novars(space): - val = space.appexec([], """ - (): - return 42 - """) +def test_execwith_novars(space): + val = space.appexec([], """ + (): + return 42 + """) assert space.eq_w(val, space.wrap(42)) -def test_execwith_withvars(space): +def test_execwith_withvars(space): val = space.appexec([space.wrap(7)], """ - (x): - y = 6 * x - return y - """) + (x): + y = 6 * x + return y + """) assert space.eq_w(val, space.wrap(42)) -def test_execwith_compile_error(space): +def test_execwith_compile_error(space): excinfo = py.test.raises(OperationError, space.appexec, [], """ - (): - y y + (): + y y """) - assert str(excinfo.value.errorstr(space)).find('y y') != -1 + assert str(excinfo.value.errorstr(space)).find('y y') != -1 def test_simple_applevel(space): - app = appdef("""app(x,y): + app = appdef("""app(x,y): return x + y """) assert app.func_name == 'app' @@ -34,15 +34,15 @@ assert space.eq_w(w_result, space.wrap(42)) def test_applevel_with_one_default(space): - app = appdef("""app(x,y=1): + app = appdef("""app(x,y=1): return x + y """) assert app.func_name == 'app' - w_result = app(space, space.wrap(41)) + w_result = app(space, space.wrap(41)) assert space.eq_w(w_result, space.wrap(42)) def test_applevel_with_two_defaults(space): - app = appdef("""app(x=1,y=2): + app = appdef("""app(x=1,y=2): return x + y """) w_result = app(space, space.wrap(41), space.wrap(1)) @@ -56,19 +56,19 @@ def test_applevel_noargs(space): - app = appdef("""app(): - return 42 + app = appdef("""app(): + return 42 """) assert app.func_name == 'app' - w_result = app(space) + w_result = app(space) assert space.eq_w(w_result, space.wrap(42)) -def somefunc(arg2=42): - return arg2 +def somefunc(arg2=42): + return arg2 -def test_app2interp_somefunc(space): - app = appdef(somefunc) - w_result = app(space) +def test_app2interp_somefunc(space): + app = appdef(somefunc) + w_result = app(space) assert space.eq_w(w_result, space.wrap(42)) def test_applevel_functions(space, applevel_temp = applevel_temp): @@ -85,45 +85,45 @@ def test_applevel_class(space, applevel_temp = applevel_temp): app = applevel_temp(''' class C(object): - clsattr = 42 - def __init__(self, x=13): - self.attr = x + clsattr = 42 + def __init__(self, x=13): + self.attr = x ''') C = app.interphook('C') - c = C(space, space.wrap(17)) + c = C(space, space.wrap(17)) w_attr = space.getattr(c, space.wrap('clsattr')) assert space.eq_w(w_attr, space.wrap(42)) w_clsattr = space.getattr(c, space.wrap('attr')) assert space.eq_w(w_clsattr, space.wrap(17)) -def app_test_something_at_app_level(): +def app_test_something_at_app_level(): x = 2 assert x/2 == 1 -class AppTestMethods: - def test_some_app_test_method(self): +class AppTestMethods: + def test_some_app_test_method(self): assert 2 == 2 -class TestMixedModule: - def test_accesses(self): +class TestMixedModule: + def test_accesses(self): space = self.space - import demomixedmod + import demomixedmod w_module = demomixedmod.Module(space, space.wrap('mixedmodule')) space.appexec([w_module], """ - (module): - assert module.value is None + (module): + assert module.value is None assert module.__doc__ == 'mixedmodule doc' - assert module.somefunc is module.somefunc - result = module.somefunc() - assert result == True + assert module.somefunc is module.somefunc + result = module.somefunc() + assert result == True - assert module.someappfunc is module.someappfunc - appresult = module.someappfunc(41) - assert appresult == 42 + assert module.someappfunc is module.someappfunc + appresult = module.someappfunc(41) + assert appresult == 42 assert module.__dict__ is module.__dict__ - for name in ('somefunc', 'someappfunc', '__doc__', '__name__'): + for name in ('somefunc', 'someappfunc', '__doc__', '__name__'): assert name in module.__dict__ """) assert space.is_true(w_module.call('somefunc')) @@ -172,8 +172,7 @@ # Uncomment this line for a workaround # space.getattr(w_ssl, space.wrap('SSLError')) - w_socket._cleanup_() + w_socket.cleanup() assert w_socket.startup_called == False - w_ssl._cleanup_() # w_ssl.appleveldefs['SSLError'] imports _socket + w_ssl.cleanup() # w_ssl.appleveldefs['SSLError'] imports _socket assert w_socket.startup_called == False - _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit