On Mon, Sep 12, 2016 at 5:26 PM, Mads Kiilerich <[email protected]> wrote: > On 09/11/2016 09:48 PM, Thomas De Schampheleire wrote: >> >> On Sat, Sep 10, 2016 at 1:51 PM, Mads Kiilerich <[email protected]> >> wrote: >>> >>> On 09/09/2016 04:03 PM, Thomas De Schampheleire wrote: >>>> >>>> # HG changeset patch >>>> # User Thomas De Schampheleire <[email protected]> >>>> # Date 1473428048 -7200 >>>> # Fri Sep 09 15:34:08 2016 +0200 >>>> # Node ID 6889d3b7435f1c4bb91d24a3af7774323ecbc778 >>>> # Parent 59639343672495cb89be54b98f1d6d3a4c44307c >>>> tests: fix assertion rewriting in some tests with pytest-3.0.0+ >>>> >>>> Since pytest 3.0.0, asserts present in modules that are not directly >>>> seen >>>> by >>>> pytest as 'test modules', are no longer rewritten to have improved >>>> reporting, unless they are explicitly marked as up-for-rewriting. >>>> >>>> This is e.g. the case for asserts in files like >>>> kallithea/tests/api/api_base.py and kallithea/tests/models/common.py. >>>> >>>> See >>>> http://doc.pytest.org/en/latest/changelog.html#id13 >>>> http://doc.pytest.org/en/latest/writing_plugins.html#assertion-rewriting >>>> >>>> diff --git a/kallithea/tests/__init__.py b/kallithea/tests/__init__.py >>>> --- a/kallithea/tests/__init__.py >>>> +++ b/kallithea/tests/__init__.py >>>> @@ -42,6 +42,10 @@ from routes.util import URLGenerator >>>> from webtest import TestApp >>>> import pytest >>>> +# make sure that all asserts under kallithea/tests benefit from >>>> advanced assert >>>> +# reporting, before importing these modules. >>>> +pytest.register_assert_rewrite('kallithea.tests') >>> >>> >>> But also, why was it changed in pytest? What is the point in not having >>> it >>> enabled everywhere? >> >> According to >> http://doc.pytest.org/en/latest/writing_plugins.html#assertion-rewriting >> >> "However since we do not want to test different bytecode then you will >> run in production this hook only re-writes test modules themselves as >> well as any modules which are part of plugins. Any other imported >> module will not be re-written and normal assertion behaviour will >> happen." > > > Right - I didn't read that far. Makes sense. > >>> It sounds like something that also (and perhaps better?) could be set in >>> pytest.ini? >> >> The mentioned link also mentions adding an entry point in setup.py, I >> can see if that works too, if you prefer that better. > > > I don't know - I just wondered. You the expert in this area (whether you > like it or not: at least more than me ;-) ). > > But it seems like this change cause a warning when running any test: > WP1 None Modules are already imported so can not be re-written: > kallithea.tests > > Should we accept that, or tweak the filter or imports or ...?
I sent a v2 where the pytest call is done from kallithea/__init__.py instead of from kallithea/tests/__init__.py which itself can then indeed no longer be rewritten. _______________________________________________ kallithea-general mailing list [email protected] http://lists.sfconservancy.org/mailman/listinfo/kallithea-general
