Development #22892
Conflit tests unitaires et installation multitenant
0%
Description
Les tests unitaires tests_passerelle
et tests_authentic
peuvent échouer si ils sont exécutés sur une machine où un publik multitenant est installé.
Les erreurs sont celles mentionnées ici : https://dev.entrouvert.org/issues/22873#note-2
En cause les fixture tenant_base
, qui sont exécutées trop tard. Lors de la création de la db (par https://github.com/pytest-dev/pytest-django/blob/master/pytest_django/fixtures.py#L72), TENANT_BASE
est encore égal à /var/lib/{passerelle, authentic2-multitenant}/tenants
.
Ainsi la commande migrate_schemas
invoquée lors de la création de la db, va inspecter /var/lib/{passerelle, authentic2-multitenant}/tenants
, éventuellement y trouver des tenants, dont elle ne trouvera pas le schéma dans la base {passerelle, authentic2-multitenant}_test
, ce qui provoque l'erreur.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Emmanuel Cazenave il y a environ 6 ans
- Lié à Bug #22873: crash migration si un tenant n'a pas de schema dans la base ajouté
Mis à jour par Emmanuel Cazenave il y a environ 6 ans
- Lié à Development #21723: Permettre aux applications "tenantisées" de modifier les settings ETC_DIR, VAR_DIR et des variables qui en découlent ajouté
Mis à jour par Emmanuel Cazenave il y a environ 6 ans
- Fichier 0001-set-TENANT_BASE-earlier-in-tests-22892.patch 0001-set-TENANT_BASE-earlier-in-tests-22892.patch ajouté
- Patch proposed changé de Non à Oui
Un fix.
Pour des scénarios de tests plus subtils #21723 nous faciliterait la vie.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Et si tu ne modifies pas la fixture tenant_base() mais que tu mets un chemin qui n'existe pas dans TENANT_BASE au niveau des tests_*/settings.py est-ce que ça marche ?
Ça évite d'avoir une fixture qui ne fait qu'effacer un répertoire définit ailleurs.
Mis à jour par Emmanuel Cazenave il y a environ 6 ans
- Fichier 0001-set-TENANT_BASE-to-a-non-exisiting-path-22892.patch 0001-set-TENANT_BASE-to-a-non-exisiting-path-22892.patch ajouté
Effectivement c'est beaucoup mieux comme ça.
Mis à jour par Thomas Noël il y a environ 6 ans
- Statut changé de En cours à Résolu (à déployer)
(poussé sans attendre, pour faire refonctionner mes tests, trop cool, merci)
commit 4dda39a6bf2dcbbe3cf6891939f6acd75385a8e1 Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Fri Mar 30 09:53:17 2018 +0200 set TENANT_BASE to a non exisiting path (#22892)
Mis à jour par Emmanuel Cazenave il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
set TENANT_BASE to a non exisiting path (#22892)