Author: Ronan Lamy <ronan.l...@gmail.com> Branch: apptest-file Changeset: r94337:d719e76c1bc7 Date: 2018-04-15 17:07 +0100 http://bitbucket.org/pypy/pypy/changeset/d719e76c1bc7/
Log: Do assert reinterpretation only inside old-style apptests; fix tests. diff --git a/pypy/config/pypyoption.py b/pypy/config/pypyoption.py --- a/pypy/config/pypyoption.py +++ b/pypy/config/pypyoption.py @@ -247,6 +247,10 @@ BoolOption("newshortcut", "cache and shortcut calling __new__ from builtin types", default=False), + BoolOption("reinterpretasserts", + "Perform reinterpretation when an assert fails " + "(only relevant for tests)", + default=False), ]), ]) 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 @@ -44,7 +44,7 @@ target = self.obj if self.config.option.runappdirect: return target() - space = gettestobjspace() + space = gettestobjspace(**{'objspace.std.reinterpretasserts': True}) filename = self._getdynfilename(target) func = app2interp_temp(target, filename=filename) print "executing", func diff --git a/pypy/tool/pytest/objspace.py b/pypy/tool/pytest/objspace.py --- a/pypy/tool/pytest/objspace.py +++ b/pypy/tool/pytest/objspace.py @@ -7,10 +7,10 @@ _SPACECACHE={} def gettestobjspace(**kwds): - """ helper for instantiating and caching space's for testing. + """ helper for instantiating and caching spaces for testing. """ try: - config = make_config(option,**kwds) + config = make_config(option, **kwds) except ConflictConfigError as e: # this exception is typically only raised if a module is not available. # in this case the test should be skipped @@ -33,8 +33,9 @@ config.objspace.extmodules = 'pypy.tool.pytest.fake_pytest' space = make_objspace(config) space.startup() # Initialize all builtin modules - space.setitem(space.builtin.w_dict, space.wrap('AssertionError'), - appsupport.build_pytest_assertion(space)) + if config.objspace.std.reinterpretasserts: + space.setitem(space.builtin.w_dict, space.wrap('AssertionError'), + appsupport.build_pytest_assertion(space)) space.setitem(space.builtin.w_dict, space.wrap('raises'), space.wrap(appsupport.app_raises)) space.setitem(space.builtin.w_dict, space.wrap('skip'), diff --git a/pypy/tool/pytest/test/apptest_xx.py b/pypy/tool/pytest/test/apptest_xx.py deleted file mode 100644 --- a/pypy/tool/pytest/test/apptest_xx.py +++ /dev/null @@ -1,3 +0,0 @@ -def test_fail(): - x = 'foo' - assert x == 'bar' 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 @@ -154,7 +154,7 @@ result = testdir.runpytest(p) assert result.ret == 1 result.stdout.fnmatch_lines([ - "*E*application-level*KeyError*42*", + "*E*(application-level) AssertionError", ]) def test_apptest_fail_rewrite(testdir): @@ -167,7 +167,9 @@ result = testdir.runpytest(p, "--applevel-rewrite") assert result.ret == 1 result.stdout.fnmatch_lines([ - "*E*application-level*KeyError*42*", + "*E*application-level*AssertionError: assert 'foo' == 'bar'", + "*E*- foo*", + "*E*+ bar*", ]) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit