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 ...?

/Mads
_______________________________________________
kallithea-general mailing list
[email protected]
http://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to