[PATCH] tests: fix assertion rewriting in some tests with pytest-3.0.0+

Thomas De Schampheleire patrickdepinguin at gmail.com
Sun Sep 11 19:48:50 UTC 2016


On Sat, Sep 10, 2016 at 1:51 PM, Mads Kiilerich <mads at kiilerich.com> wrote:
> On 09/09/2016 04:03 PM, Thomas De Schampheleire wrote:
>>
>> # HG changeset patch
>> # User Thomas De Schampheleire <thomas.de.schampheleire at gmail.com>
>> # 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."

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

/Thomas


More information about the kallithea-general mailing list