3liz / qgis-veloroutes_voies_vertes-plugin

Standard Covadis Véloroutes et Voies Vertes (3V)
4 stars 5 forks source link

Update Export covadis #99

Closed pdrillin closed 3 years ago

pdrillin commented 3 years ago
pdrillin commented 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'

Gustry commented 3 years ago

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
Gustry commented 3 years ago

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.

pdrillin commented 3 years ago

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.

Gustry commented 3 years ago

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.

Gustry commented 3 years ago

@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 ?

pdrillin commented 3 years ago

@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

Gustry commented 3 years ago

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.