Utilitaire de tests simplifié #725
No reviewers
Labels
No labels
devtype -- backend
devtype -- docs
devtype -- frontend
devtype -- user interface
difficulty -- easy
difficulty -- hard
difficulty -- normal
Doing
domain -- bda
domain -- bds
domain -- cof
domain -- core
domain -- kfet
Good first issue
priority -- high
priority -- low
priority -- medium
priority -- staff-wanted
status -- development
status -- discussion
status -- need review
status -- production
status -- ready to merge
status -- todo
To Do
type -- bug
type -- hygiene
type -- improvement
type -- new feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: DGNum/gestioCOF#725
Loading…
Reference in a new issue
No description provided.
Delete branch "Aufinal/simplify_tests"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
On simplifie l'utilitaire de tests utilisé partout (sauf pour
kfet
).@mpepin j'ai mis le tag
discussion
pour répondre au débat suivant : quelle est notre position en ce qui concerne les mixins divers et variés dans les utilitaires de test ?Personnellement, si c'est bien documenté et relativement indépendant des autres tests (i.e., pas besoin de connaitre par coeur le code des mixins pour écrire des tests), je suis pour ; je sais que tu es plus mesuré là dessus donc j'aimerais bien ton avis sur les mixins dans cette MR :slight_smile:
added 1 commit
65171d12
- Fix event testsCompare with previous version
added 1 commit
Compare with previous version
added 1 commit
50266f24
- Fix tests for python3.7 (?)Compare with previous version
C'est vrai ! 😉
En gros pour préciser un peu ma "règle" : pour moi, idéalement on ne devrait pas avoir à lire de la doc pour comprendre un test. Mais du coup un helper qui fait un seul truc et qui a un nom clair qui permet de deviner en gros ce qu'il fait, je suis pour.
Typiquement :
assertCalEqual
pour moi c'est l'exemple parfait de ce qu'il faut faire : juste en lisant le nom de la méthode ce sais ce que ça fait. Conséquences :ViewTestCaseMixin.test_forbidden
par exemple c'est le contraire : sans lire le code / une docstring de 20 kilomètres je ne sais pas ce que ça vérifie ni comment m'en servir.Évidemment ce n'est que mon avis et il est sûrement biaisé par le fait que j'ai lu plus de tests que je n'en ai écrits
Franchement si on n'avait que des helpers de la forme
assertCalEqual
je serais favorable à tout mettre dans un gros mixin 👍Je ne connaissais pas le
DictReader
, c'est pratique !Je verrais bien ici un
assertCsvEqual(content, expected)
qui détecte toute seul s'il faut utilisercsv.reader
oucsv.DictReader
en fonction du type de expected et qui fait la comparaison direct. T'en penses quoi ?Ça ne règle pas le souci du test non-déterministe sur les events mais d'un autre côté ça ne me paraît ok de rendre la fonction d'export CSV plus déterministe pour régler le problème.
Il manque les
self.assertListEqual(remaining/unexpected, [])
je penseVu qu'on n'utilise pas l'événement plus bas dans le test, je simplifierais en :
mais c'est un détail
On n'utilise jamais la feature avec le getter si? On ne pourrait pas les virer ? Ça simplifie drastiquement.
C'est dommage d'avoir à faire tout ça… Ça te va si je patch l'export des inscriptions pour qu'il soit plus déterministe ?
En fait, il y a deux types de mixins (c'est dommage qu'ils soient un peu mélangés, d'ailleurs) :
assertCalEqual
), et qui ont l'air de t'aller 👍test_forbidden
outest_urls
: je comprends que tu sois plus dubitatif là dessus, mais ça évite quand même bcp de répétition de code en échange...Justement mon point de vue c'est que c'est parfaitement acceptable de faire des copier-coller dans des tests si ça permet de les rendre self-contained. Mais j'entends que c'est peut-être relou quand t'en écris plein
C'est aussi une possibilité, oui !
On l'utilise pour la date il me semble...
Des avis parmi nos (futurs) devs ? @champeno @areitz @thubrecht, au pif =)
Fait et branché partout, sauf dans le test avec les problèmes d'ordering plus bas =)
Oops, fixed
Done !
changed this line in version 5 of the diff
added 2 commits
9b044042
- Fix ical tests6fff995c
- Expand CSVResponseMixin functionalityCompare with previous version
changed this line in version 6 of the diff
added 1 commit
707b7b76
- Make events tests deterministicCompare with previous version
ah j'avais mal lu, laissons donc
On peut avoir cette conversation avec tout le monde, ça serait intéressant, mais on ne va rien ajouter à cette MR non ?
resolved all discussions
Pas à celle là, non =)
Du coup on peut avoir la discussion meta sur les tests (ici ou ailleurs) mais par rapport à cette MR pour moi c'est bon
resolved all discussions
merged
mentioned in commit
90fc6aa3e7