Projet

Général

Profil

Development #22892

Conflit tests unitaires et installation multitenant

Ajouté par Emmanuel Cazenave il y a environ 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
29 mars 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Lié à Hobo - Bug #22873: crash migration si un tenant n'a pas de schema dans la baseFermé29 mars 2018

Actions
Lié à Hobo - Development #21723: Permettre aux applications "tenantisées" de modifier les settings ETC_DIR, VAR_DIR et des variables qui en découlent Rejeté08 février 2018

Actions

Révisions associées

Révision 4dda39a6 (diff)
Ajouté par Emmanuel Cazenave il y a environ 6 ans

set TENANT_BASE to a non exisiting path (#22892)

Historique

#1

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é
#2

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é
#3

Mis à jour par Emmanuel Cazenave il y a environ 6 ans

Un fix.

Pour des scénarios de tests plus subtils #21723 nous faciliterait la vie.

#4

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.

#6

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

Ack.

#7

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)

#8

Mis à jour par Emmanuel Cazenave il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF