Closed sandcha closed 5 years ago
Avec les modifications de cette PR (et Core v.24.8.2), l'erreur évolue en KeyError: <TypesRegimeSecuriteSociale.rsna: 'Régime des Salariés Non Agricoles'>
:
[openfisca-tunisia]$ make test
> Python tests...
nosetests tests --exe --with-doctest
..EEEEE.............EE
======================================================================
ERROR: tests.test_simple.test_simple
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/sch/.local/share/virtualenvs/tar/lib/python3.7/site-packages/nose/case.py", line 198, in runTest
self.test(*self.arg)
File "/Users/sch/Dev/github/tunisie/openfisca-tunisia/tests/test_simple.py", line 13, in test_simple
assert simulation.calculate('revenu_disponible', period = year) == 0
…
File "/Users/sch/Dev/github/tunisie/openfisca-tunisia/openfisca_tunisia/model/prelevements_obligatoires/cotisations_sociales.py", line 47, in compute_cotisation
bareme_of_regime = baremes_by_regime[regime]
File "/Users/sch/Dev/github/openfisca-core/openfisca_core/tracers.py", line 258, in __getitem__
child = self.parameter_node_at_instant[key]
File "/Users/sch/Dev/github/openfisca-core/openfisca_core/parameters.py", line 495, in __getitem__
return self._children[key]
KeyError: <TypesRegimeSecuriteSociale.rsna: 'Régime des Salariés Non Agricoles'>
----------------------------------------------------------------------
Ran 22 tests in 0.136s
FAILED (errors=7)
Il semble ainsi que self._children[key]
ne sache pas plus traiter les énumérés que les int.
D'où un début de correctif sur openfisca-core
est défini sur la branche core fix-enum-filter
.
Celui-ci résoud le KeyError
. Néanmoins, les tests yaml échouent.
@benjello Reproduis-tu le problème sur master openfisca-tunisia
?
Et si oui, que penses-tu du correctif proposé ici ?
Il me semble étrange que les tests ne passent plus.
Update : Serait-ce le fait que le correctif propose de renommer des répertoires de paramètres
sal
encotisations_salarie
... ? 😬 Non, renommage rétabli en local pour tester et ça ne change rien au nombre d'erreurs. 😞 C'est donc la correction du compute_cotisation qui mène à cela.
@sandcha Problème avec TracingParameterNode et le fancy indexing il me semble ?
@sandcha : je pense que @Morendil n'est pas loin. On n'arrive plus à accéder aux enfants d'un noeud sous forme d'entrée dans un dictionnaire. Mais je n'arrive pas à corriger car je ne comprends pas bien la nouvelle architecture des paramètres ...
@Morendil Ca me semble corrigé par l'ajout d'une condition sur Enum
à cette ligne d'openfisca-core
.
@sandcha j'ai rebasé https://github.com/openfisca/openfisca-tunisia/pull/78 mais cela ne passent pas les tests qui ont l'air besoin d'avoir besoin de la contribution de cette PR.
PR remplacée par la #82
Suite à la mise à jour vers Core v.24.8.2,
make test
sur la branchemaster
d'openfisca-tunisia
a échoué avecKeyError: 0
tel que ci-dessous :La
key
passée àself._children[key]
est donc de typeint
là où il s'agit d'itérer sur des (noms d') énumérés (cf.baremes_by_regime[regime.name]
).