Closed sandcha closed 5 years ago
@benjello Il ne resterait qu'un test au comportement étrange : sauf confusion de ma part, il y a une différence de résultat entre le test seul ou lancé avec les autres. 🙃
openfisca test -c openfisca_tunisia tests/
Dit :
.................................ERROR:openfisca_core.tools.test_runner:basic.yaml: De net a salaire_de_base pour Enseignant à net à payer de 1240 TND - 2016-04
F.
======================================================================
FAIL: unittest.case.FunctionTestCase (check)
----------------------------------------------------------------------
Traceback (most recent call last):
(...)
AssertionError: In test 'De net a salaire_de_base pour Enseignant à net à payer de 1240 TND', in file '/.../openfisca-tunisia/tests/reforms/de_net_a_salaire_de_base/basic.yaml', salaire_de_base@2016-04: [0.] differs from 1702.0 with an absolute margin [1702.] > 1
----------------------------------------------------------------------
Ran 35 tests in 0.661s
FAILED (failures=1)
Quand :
openfisca test -c openfisca_tunisia tests/reforms/de_net_a_salaire_de_base/basic.yaml
Répond :
.
----------------------------------------------------------------------
Ran 1 test in 0.331s
OK
À tout hasard, il y a aussi un build pre-bump qui est passé alors que cela ne passait pas en local. 🙄
Merci @sandcha je regarde ASAP.
@sandcha: je confirme que quand on fait tourner les tests un à un cela passe mais pas quand on lance tout en bloc (et j'ai bien utilisé un virtualenv et fait un make clean etc). Peut-être que @Morendil ou @fpagnoux auraient une idée sur ce qui plante ?
@benjello Cause trouvée :
openfisca test -c openfisca_tunisia tests/reforms/de_net_a_salaire_de_base/basic.yaml
Ne charge pas la réforme alors qu'en groupe, elle semble prise en compte.
Cela affecte la formule de calcul de salaire_imposable
.
Super @sandcha . mais du coup c'est une erreur de core ?
Pour moi ça passe dans les deux cas… @sandcha on peut regarder ça sur un environnement où tu reproduis le problème ?
Étrange @Morendil ; merci d'avoir testé ! Oui, disponible pour te montrer ça dans un environnement virtuel neuf. J'ai le même résultat que CircleCI.
On a pairé là dessus avec @sandcha, le TLDR du problème est que la clé reforms
dans les tests YAML n'admet pas une valeur chaîne mais seulement une valeur liste; cette clé n'est par ailleurs pas documentée, et relevait donc du folklore et de la tradition orale ;)
Points de sortie:
reforms
Merci @sandcha et @Morendil ! Pour abonder la tradition orale: l'utilité des listes réside dans la volonté d'enchaîner des réformes !
@sandcha : you can merge if you are done !
Autres détails d'apprentissage que je n'ai pas eu le temps de noter plus haut:
reforms
, car ce qui est utilisé pour le hash c'est le frozenset des éléments de la valeur, soit pour une chaîne les caractères de la chaîne; or par (mal)chance les deux réformes avaient des noms composés des mêmes caractèresMerci @Morendil pour le bilan !
J'ajouterais : l'ordre des tests exécutés par le test runner semble être l'ordre d'affichage des fichiers de la commande bash ls -U tests/
(plus lisible avec ls -Ul tests/
).
En lien avec openfisca/openfisca-core#825
@benjello Ci-dessus, tu disais "l'utilité des listes réside dans la volonté d'enchaîner des réformes". D'où la question : l'ordre d'enchaînement est-il bien important ?
Pas forcément mais oui en général
Correctif des tests associé au passage à Core v25
KeyError
générée parcompute_cotisation
à l'exécution des testscotisations_sociales/rsa/sal
encotisations_sociales/rsa/cotisations_salarie
cotisations_sociales/rsaa/sal
encotisations_sociales/rsaa/cotisations_salarie
reforms
dans les tests YAML