Development #47687
Tox râle chez moi (localement) sur les tests de duplication
0%
Description
J'ai des tests qui ne passent pas localement, et je ne comprend pas ce qui me manque comparé à Jenkins (j'ai réinstallé les dépendances d'authentic et relancé l'installation via publik-devinst).
$ tox -e authentic-py3-dj111-drf39 -- tests/test_api.py::test_find_duplicates --pdb E django.db.utils.ProgrammingError: ERREUR: la fonction immutable_unaccent(text) n'existe pas E LINE 1: ...etion_alert", "custom_user_user"."deleted", LOWER(immutable_... E ^ E HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments. E Vous devez ajouter des conversions explicites de type.
À priori les tests ne sont pas liés à mon installation mais je me suis assuré d'avoir la migration #47339 d'appliquée et je l'ai aussi jouée à la main (#47328).
(je n'ai pas trouvé comment corriger)
Historique
Mis à jour par Valentin Deniaud il y a plus de 3 ans
Le truc c'est que la migration s'applique toujours sans erreurs, même quand elle ne marche pas...
Le problème c'est certainement que ton utilisateur postgres n'est pas superuser. Donne lui les droits, rejoue la migration et ça va marcher.
Mis à jour par Nicolas Roche il y a plus de 3 ans
Bof, à priori l'utilisateur postgres a les droits.
$ id posgresql $ psql > \c authentic_multitenant; > set search_path="authentic_dev_publik_love"; > CREATE EXTENSION pg_trgm SCHEMA public; > CREATE EXTENSION unaccent SCHEMA public; > CREATE OR REPLACE FUNCTION public.immutable_unaccent(text) RETURNS varchar AS $$ SELECT public.unaccent('public.unaccent',$1::text); $$ LANGUAGE 'sql' IMMUTABLE; > CREATE INDEX custom_user_name_gist_idx ON custom_user_user USING gist (LOWER(public.immutable_unaccent(first_name || ' ' || last_name)) public.gist_trgm_ops);
Mis à jour par Valentin Deniaud il y a plus de 3 ans
Mais ce n'est pas l'utilisateur de tox, perso j'ai un utilisateur vdeniaud qui est utilisé par les tests et les applis.
Mis à jour par Thomas Noël il y a plus de 3 ans
Idem chez moi (créé avec « createuser -sdr thomas »)
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
Quand j'ai dit que c'était une mauvaise idée...
Mis à jour par Frédéric Péters il y a plus de 3 ans
Versus un ticket "Tox râle chez moi (localement) lors de l'exécution des migrations" ? qui aurait été vachement mieux ?
Mis à jour par Nicolas Roche il y a plus de 3 ans
- Statut changé de Nouveau à Fermé
Merci, c'était bien ça
# alter user nroche with superuser;
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
Frédéric Péters a écrit :
Versus un ticket "Tox râle chez moi (localement) lors de l'exécution des migrations" ? qui aurait été vachement mieux ?
J'ai déjà dit qu'on pouvait faire pareil avec --fake pour les quelques machines concernées. Sachant que c'est moi qui me suis tapé les migrations manuelles ensuite mon avis a un intérêt.
Mis à jour par Frédéric Péters il y a plus de 3 ans
Je ne vois pas comment ça retirerait le ticket "Tox râle chez moi (localement) lors de l'exécution des migrations".
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
Ça remplace une erreur que personne ne peut comprendre :
$ tox -e authentic-py3-dj111-drf39 -- tests/test_api.py::test_find_duplicates --pdb E django.db.utils.ProgrammingError: ERREUR: la fonction immutable_unaccent(text) n'existe pas E LINE 1: ...etion_alert", "custom_user_user"."deleted", LOWER(immutable_... E ^ E HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments. E Vous devez ajouter des conversions explicites de type.
par une erreur que tout le monde comprend et qui correspond vraiment au problème :
E django.db.utils.ProgrammingError: ERREUR: droit refusé pour créer l'extension « unaccent » E HINT: Doit être super-utilisateur pour créer cette extension. /tmp/tox-bdauvergne/authentic/authentic-py3-dj111-drf39/lib/python3.8/site-packages/django/db/backends/utils.py:62: ProgrammingError
et ainsi le ticket n'aurait pas été ouvert. Au niveau documentation de publik-devinst ou de de Publik en général c'est plus simple de faire une FAQ des soucis qui arrivent à l'installation que des soucis bizarres n'importe quand.