Projet

Général

Profil

Bug #18050

Redonner une explication claire sur comment lancer les tests

Ajouté par Benjamin Dauvergne il y a plus de 6 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
18 août 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Ni le tox.ini ni la ligne du README ne me permettent de lancer les tests depuis la migration Django.

Ma préférence irait vers une refonte claire du setup.py et tox.ini pour que les dépendances de w.c.s. et des tests soient clairement définies.


Fichiers

0001-tox.ini-update.patch (1,6 ko) 0001-tox.ini-update.patch Benjamin Dauvergne, 08 septembre 2017 02:52
tox-out.log (49,8 ko) tox-out.log Christophe Siraut, 12 juin 2018 18:20
0001-tox-add-dependencies.patch (946 octets) 0001-tox-add-dependencies.patch Christophe Siraut, 13 juin 2018 11:38

Demandes liées

Lié à w.c.s. - Bug #10477: Certains tests sont sensibles à la graine aléatoire de pythonFermé30 mars 2016

Actions
Lié à w.c.s. - Bug #24499: tests: compatibilité de mechanizeFermé13 juin 2018

Actions
Lié à w.c.s. - Bug #24497: forms: use python-magic when availableFermé13 juin 2018

Actions

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Et l'erreur:

            msg = "Invalid HTTP_HOST header: %r." % host
            if domain:
                msg += " You may need to add %r to ALLOWED_HOSTS." % domain
            else:
                msg += " The domain name provided is not valid according to RFC 1034/1035." 
>           raise DisallowedHost(msg)
E           DisallowedHost: Invalid HTTP_HOST header: 'example.net'. You may need to add u'example.net' to ALLOWED_HOSTS.

../../.virtualenvs/wcs/local/lib/python2.7/site-packages/django/http/request.py:102: DisallowedHost

#2

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Via tox.ini c'est l'absence de Django qui bloque immédiatement.

#3

Mis à jour par Frédéric Péters il y a plus de 6 ans

Pas une correction au bug mais côté jenkins c'est ça qui est fait :

pip install --upgrade 'pip<8'
pip install --upgrade setuptools
pip install --upgrade pytest WebTest mock pytest-cov pyquery pytest-catchlog
pip install --upgrade pylint
pip install --upgrade 'Django==1.8' 'gadjo'

LC_ALL=C LC_TIME=C LANG=C PYTHONPATH=$(pwd):$PYTHONPATH py.test --junitxml=test_results.xml --cov-report xml --cov=wcs/ --cov-config .coveragerc -v tests/
#4

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Dans tout ça il me manque pytest-django pour que ça marche chez moi, ça me parait logique.

#5

Mis à jour par Serghei Mihai il y a plus de 6 ans

Ça fonctionne chez moi aussi.

#6

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Ça fonctionne chez toi sans rien faire ?

#7

Mis à jour par Serghei Mihai il y a plus de 6 ans

Juste en donnant accès à la base postgres à mon utilisateur.

#8

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Tu ne dis pas comment tu les lances.

#9

Mis à jour par Serghei Mihai il y a plus de 6 ans

Avec la ligne pointée par Fréd (la façon dont les execute jenkins):

LC_ALL=C LC_TIME=C LANG=C PYTHONPATH=$(pwd):$PYTHONPATH py.test --junitxml=test_results.xml --cov-report xml --cov=wcs/ --cov-config .coveragerc -v tests/

#10

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Avec ou sans virtualenv ? Parce que si vous avec tous les paquets installés sur votre debian c'est de la triche les enfants :) Le but c'est de donner une démarche "from scratch".

#11

Mis à jour par Serghei Mihai il y a plus de 6 ans

Dans un virtualenv, comme des grands.

#12

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Je n'arrive toujours pas à lancer les tests...

#13

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

J'ai des tests tout con qui ne passent même pas, il y a forcément un truc qui m'échappe (je fais un virtualenv tout bête sans system-site-package j'installe avec les lignes de jenkins, plus psycopg2, marche pas :( ):

=================================================================================== FAILURES ===================================================================================
______________________________________________________________________________ test_forms[pickle] ______________________________________________________________________________

pub = <wcs.compat.CompatWcsPublisher object at 0x7f80057b5490>

    def test_forms(pub):
>       app = login(get_app(pub))

tests/test_admin_pages.py:162: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

app = <webtest.app.TestApp object at 0x7f8005757d50>, username = 'admin', password = 'admin'

    def login(app, username='admin', password='admin'):
        login_page = app.get('/login/')
        login_form = login_page.forms['login-form']
        login_form['username'] = username
        login_form['password'] = password
        resp = login_form.submit()
>       assert resp.status_int == 302
E       AssertionError

tests/utilities.py:164: AssertionError
_______________________________________________________________________________ test_forms[sql] ________________________________________________________________________________

pub = <wcs.compat.CompatWcsPublisher object at 0x7f800467a790>

    def test_forms(pub):
>       app = login(get_app(pub))

tests/test_admin_pages.py:162: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

app = <webtest.app.TestApp object at 0x7f800467a4d0>, username = 'admin', password = 'admin'

    def login(app, username='admin', password='admin'):
        login_page = app.get('/login/')
        login_form = login_page.forms['login-form']
        login_form['username'] = username
        login_form['password'] = password
        resp = login_form.submit()
>       assert resp.status_int == 302
E       AssertionError

tests/utilities.py:164: AssertionError
#14

Mis à jour par Frédéric Péters il y a plus de 6 ans

Je ne sais pas; tape la sortie de "pip freeze" et la commande que tu tapes pour lancer les tests ? (vagues indications mais dans la mesure où ça tourne dans jenkins tu dois pouvoir étudier ce qui foire).

#15

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Je m'en suis sorti via le tox.ini mais en local je n'y arrive pas.

#16

Mis à jour par Christophe Siraut il y a presque 6 ans

J'ai aussi rencontré aussi des souci pour exécuter les tests de w.c.s.

Une fois installées les dépendances (qrcode mechanize docutils graphviz) (non listées dans https://jenkins.entrouvert.org/job/wcs/configure) ça fonctionne avec pytest.

Commencé la branche wip/18050 à relire, pour faire marcher les tests avec tox, il en restequi échouent, attachés.

#17

Mis à jour par Frédéric Péters il y a presque 6 ans

Pour les tests qui échouent à cause de tox faisant varier la graine d'aléatoire, tu peux aller sur #10477.

#18

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Lié à Bug #10477: Certains tests sont sensibles à la graine aléatoire de python ajouté
#19

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Lié à Bug #24499: tests: compatibilité de mechanize ajouté
#20

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Lié à Bug #24497: forms: use python-magic when available ajouté
#22

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Nouveau à Fermé

A priori remplacé par #36419.

Formats disponibles : Atom PDF