Development #24866
Utiliser argparse au lieu de optparse dans les commandes de management
0%
Description
optparse déprécié en django 1.8
Fichiers
Demandes liées
Révisions associées
switch from optparse to argparse for cli (#24866)
Historique
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
Peut-être l'occasion de savoir si certaines sont tombées dans l'oubli ... voici celles que je m'apprête à retravailler :
- changepassword
- clean-unused-accounts
- load-ldif
- resetpassword
- sync-metadata
- oidc-register-issuer
- provision
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
- Lié à Development #24868: Ne plus utiliser de fonctionnalités dépréciées en django 1.8 ajouté
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
Et en sujet connexe la commande cleanupauthentic
qui demande à hériter de BaseCommand
au lieu de NoArgsCommand
.
Mis à jour par Frédéric Péters il y a presque 6 ans
Petite hésitation sur src/authentic2_provisionning_ldap/management/commands/provision.py mais c'est encore récent comme code, je dirais que oui, tout.
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
- Fichier 0001-test-some-management-commands-24866.patch 0001-test-some-management-commands-24866.patch ajouté
- Fichier 0002-switch-from-optparse-to-argparse-for-cli-24866.patch 0002-switch-from-optparse-to-argparse-for-cli-24866.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
En testant d'abord sommairement les commandes concernées (parce que pas de tests présents), sauf load-ldif et oidc-register-issuer sur lesquelles je sèche un peu.
Mis à jour par Frédéric Péters il y a presque 6 ans
Pour oidc-register-issuer, un exemple d'appel serait :
authentic2-multitenant-manage tenant_command oidc-register-issuer -d connexion.guichet-recette.grandlyon.com --issuer=https://moncompte-rec.grandlyon.com/ --client-id=... --client-secret=... cut-rec
Mis à jour par Benjamin Dauvergne il y a presque 6 ans
Frédéric Péters a écrit :
Pour oidc-register-issuer, un exemple d'appel serait :
[...]
Pour tester il faut mocker un endpoint .well-known/openid-configuration, le plus facile étant de voir ce qu'un authentic sert à cet endroit par exemple https://moncompte-rec.grandlyon.com/.well-known/openid-configuration
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
- Fichier 0001-test-some-management-commands-24866.patch 0001-test-some-management-commands-24866.patch ajouté
- Fichier 0002-switch-from-optparse-to-argparse-for-cli-24866.patch 0002-switch-from-optparse-to-argparse-for-cli-24866.patch ajouté
Avec l'ajout de tests pour load-ldif et oidc-register-issuer.
Dans les deux cas je prends le partis de mocker assez large,
parce que l'objet de ce ticket n'est pas de tester le cœur de ces commandes.
Et le relecteur attentif remarquera que les tests sont étendus dans le deuxième patch :
à cause de l'implémentation de call_command
, qui court-circuite le parser si la commande utilise optparse,
et qui ne peut pas donc pas être invoquée sous la forme call_command('commandname', '--option1', 'option1_calue')
En revanche si la commande utilise argparse, call_command
appelle bien le parser et peut donc être invoquée sous la forme sus-mentionnée,
d'où l'extension des tests.
Mis à jour par Benjamin Dauvergne il y a presque 6 ans
- Statut changé de Solution proposée à Solution validée
Ack.
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit a6e24b6855bbe41417a094100f5085dcf56c7d15 Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Tue Jul 10 18:44:45 2018 +0200 test some management commands (#24866)
commit 6aaa1912177fd9cd94783881f3f79fc5d677afea Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Tue Jul 10 18:45:43 2018 +0200 switch from optparse to argparse for cli (#24866)
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Benjamin Dauvergne il y a plus de 5 ans
- Statut changé de Solution déployée à Fermé
test some management commands (#24866)