[PATCH v2] tests: fix assertion rewriting in some tests with pytest-3.0.0+
Mads Kiilerich
mads at kiilerich.com
Mon Sep 12 19:05:18 UTC 2016
On 09/12/2016 08:52 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 728f0df729b15b40165c1f8bfc26f45b25ccd5d3
> # 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.
> Rationale from pytest upstream:
>
> 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.
>
> 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/__init__.py b/kallithea/__init__.py
> --- a/kallithea/__init__.py
> +++ b/kallithea/__init__.py
> @@ -86,3 +86,8 @@ if len(VERSION) > 3:
> import uuid
> if not hasattr(uuid, '_uuid_generate_random'):
> uuid._uuid_generate_random = None
> +
> +# make sure that all asserts under kallithea/tests benefit from advanced assert
> +# reporting, before importing these modules.
> +import pytest
> +pytest.register_assert_rewrite('kallithea.tests')
But this will require pytest to always be present and loaded at runtime?
It seems like also here, the problem is that we do too much in
__init__.py . Perhaps this initialization (with slight modifications)
should be in kallithea/tests/__init__.py, but TestController and helper
functions should first move to something like kallithea/tests/base.py .
/Mads
More information about the kallithea-general
mailing list