Project

General

Profile

Development #39083

tests, retirer le bout wtm._patch_settings devenu inutile

Added by Frédéric Péters 3 months ago. Updated 3 months ago.

Status:
En cours
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
17 Jan 2020
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Lors de la discussion sur les soucis pytest 5.3.3 (https://github.com/pytest-dev/pytest/issues/6492) il a été question de request.addfinalizer et à regarder ça ne semble plus nécessaire depuis un certain temps. (depuis que django-webtest inclut un plugin pytest?).

0001-tests-remove-unnecessary-request-finalizer-for-setti.patch View (729 Bytes) Frédéric Péters, 17 Jan 2020 07:37 PM

History

#1 Updated by Frédéric Péters 3 months ago

#2 Updated by Thomas Noël 3 months ago

  • Status changed from Solution proposée to Solution validée

#3 Updated by Benjamin Dauvergne 3 months ago

  • Status changed from Solution validée to En cours

Dans la mesure ou le plugin pytest présent dans django-webtest fait toujours le patch/unpatch je ne vois pas pourquoi le virer (par contre on peut très bien utiliser directement django_app dans app).

https://github.com/django-webtest/django-webtest/blob/master/django_webtest/pytest_plugin.py#L25

#4 Updated by Frédéric Péters 3 months ago

Je ne comprends pas ton commentaire; si le boulot de patch/unpatch est déjà assuré, pourquoi continuer à le refaire ici ?

#5 Updated by Benjamin Dauvergne 3 months ago

Frédéric Péters a écrit :

Je ne comprends pas ton commentaire; si le boulot de patch/unpatch est déjà assuré, pourquoi continuer à le refaire ici ?

Ben il n'est pas assuré par django_webtest.DjangoTestApp() qui est la seule chose que la fixture app appelle donc non. Voir https://github.com/django-webtest/django-webtest/blob/master/django_webtest/__init__.py c'est WebTestMixin qui fait ça dans __call__() pas DjangoTestApp (WebTestMixin c'est une mixin pour TestCase, voir plus loin l'instanciation dans la classe WebTest).

Je disais donc qu'il faudrait plutôt le code suivant :

@pytest.fixture
def app(request, clean_media, django_app):
    return django_app

Also available in: Atom PDF