Closed pdrillin closed 3 years ago
@Gustry J'ai un problème lors de l'export all, voice le message d'erreur: QgsProcessingContext.takeResultLayer(): argument 1 has unexpected type 'list'
Au lieu de faire appel à l'algorithme export_all
, fais un appel à export_one_file
puis on fera une boucle avec unittest.subTest
, CF mon commentaire https://github.com/3liz/qgis-veloroutes_voies_vertes-plugin/issues/96#issuecomment-732151429
Faisons par étape : 1 .
def test_export_single_layer(self):
# Test the export with a single layer
2.
def test_export_single_layer(self):
layers = (...,...)
make a loop with subtest
J'ai un problème lors de l'export all, voice le message d'erreur: QgsProcessingContext.takeResultLayer(): argument 1 has unexpected type 'list'
L'export "simple" retourne une seule couche, alors que l'export "all" doit retourner une liste de toutes les couches. Je pense que l'erreur est la. Il faut changer lors de l'héritage le paramètre OUTPUT.
J'ai un problème lors de l'export all, voice le message d'erreur: QgsProcessingContext.takeResultLayer(): argument 1 has unexpected type 'list'
L'export "simple" retourne une seule couche, alors que l'export "all" doit retourner une liste de toutes les couches. Je pense que l'erreur est la. Il faut changer lors de l'héritage le paramètre OUTPUT.
J'ai changé lors de l'export all le paramètre output en QgsProcessingOutputMultipleLayers
qui lui attend une liste de couches et j'ai la même erreur.
Il faut débugger alors où est le soucis.
Mais bon, si après un test à la mano l'export all fonctionne, tu peux merger. Faisons par étape. On peut faire un autre PR pour essayer de corriger ce test alors après.
Tu peux utiliser unittest.expectedFailure
pour marquer que le test peut planter.
Tu peux aussi enlever les print.
@drillinP Il semble que le test passe, non ?
test_export_all (veloroutes_voies_vertes.test.test_export.TestExport) ... Warning 6: Normalized/laundered field name: 'id_itineraire' to 'id_itinera'
Warning 6: Normalized/laundered field name: 'EST_INSCRIT' to 'EST_INSCRI'
Warning 6: Normalized/laundered field name: 'DESCRIPTION' to 'DESCRIPTIO'
Warning 6: Normalized/laundered field name: 'ID_PORTION' to 'ID_PORTI_1'
ok
######## Summary ########
Errors : 0
Failures : 0
Expected failures : 0
Unexpected successes : 0
Skip : 0
Successes : 25
TOTAL : 25
Il y a un truc qui cloche, non ?
@drillinP Il semble que le test passe, non ?
test_export_all (veloroutes_voies_vertes.test.test_export.TestExport) ... Warning 6: Normalized/laundered field name: 'id_itineraire' to 'id_itinera' Warning 6: Normalized/laundered field name: 'EST_INSCRIT' to 'EST_INSCRI' Warning 6: Normalized/laundered field name: 'DESCRIPTION' to 'DESCRIPTIO' Warning 6: Normalized/laundered field name: 'ID_PORTION' to 'ID_PORTI_1' ok
######## Summary ######## Errors : 0 Failures : 0 Expected failures : 0 Unexpected successes : 0 Skip : 0 Successes : 25 TOTAL : 25
Il y a un truc qui cloche, non ?
J'ai utilisé unittest.expectedFailure
comme tu as dis plus haut
J'ai utilisé unittest.expectedFailure comme tu as dis plus haut
Oui, j'ai vu. Mais mes questions portaient sur le résultat de ca :
test_export_all (veloroutes_voies_vertes.test.test_export.TestExport) ... Warning 6: Normalized/laundered field name: 'id_itineraire' to 'id_itinera'
Warning 6: Normalized/laundered field name: 'EST_INSCRIT' to 'EST_INSCRI'
Warning 6: Normalized/laundered field name: 'DESCRIPTION' to 'DESCRIPTIO'
Warning 6: Normalized/laundered field name: 'ID_PORTION' to 'ID_PORTI_1'
ok
Le ok
dit que le test test_export_all
est ok, donc "passing" et qu'il n'est pas en échec.
Le résumé des tests ne montrent pas de tests qui plantent.
######## Summary ########
Errors : 0
Failures : 0
Expected failures : 0 <----- On devrait avoir 1 ici si il ne passe pas
Unexpected successes : 0 <----- On devrait avoir 1 ici si il passait
Skip : 0
Successes : 25
TOTAL : 25
À défaut de comprendre pourquoi, tu peux merger.