IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Pytest et gettext, initialiser '_'


Sujet :

Python

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 156
    Points : 218
    Points
    218
    Par défaut Pytest et gettext, initialiser '_'
    Bonjour,

    J’essaie d'écrire des Tests Unitaires pour mon logiciel.
    Malheureusement j'ai quelques problèmes avec gettext.

    Quand je lance mon soft depuis mon main.py, ça marche, les textes sont traduits ... aucun problème.
    Dans mon main, je sélectionne la locale à utiliser de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    language = gettext.translation("NAME_SOFTWARE", locale_dir, languages=[default_locale])
    language.install()
    Mais quand je lance mes tests unitaires,certains échouent car '_' n'existe pas dans le contexte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create_document Exception : name '_' is not defined, in ...
    Je comprend bien, que gettext n'est pas initialisé quand je lance les TU, j'ai donc essayé d'une manière sale pour commencer, en mettant dans chaque fichier utilisant les traductions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from gettext import gettext
    _ = gettext
    Mais c'est pas beau du tout et de toute manière ça marche pas.

    Comment je peu initialiser les traductions (gettext) dans mon application lorsque je joue les tests unitaires ?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Si tu utilises
    normalement ça passe.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par IPreferCSharp Voir le message
    Comment je peu initialiser les traductions (gettext) dans mon application lorsque je joue les tests unitaires ?
    Lorsque vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    language = gettext.translation("NAME_SOFTWARE", locale_dir, languages=[default_locale])
    language.install()
    vous utilisez la "class based API" de gettext qui va définir '_' dans le module builtins et il sera accessible à tous les modules.
    Avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from gettext import gettext
    _ = gettext
    vous utilisez une autre API.

    Pour initialiser vos tests, vous n'avez pas trop le choix.
    Après, çà dépend de l'organisation de vos tests et de comment vous les lancez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 156
    Points : 218
    Points
    218
    Par défaut
    Merci de vos réponses.

    J'ai trouvé une solution, j'initialise simplement ma locale dans le setup de mon TU ... logique me dirai vous ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def setup_module(module):
        """ setup any state specific to the execution of the given module."""
        language = gettext.translation("NAME_SOFTWARE", locale_dir, languages=[default])
        language.install()
        ....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Servlet] Fichiers d'initialisation
    Par david71 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 03/09/2003, 13h47
  2. Créer et initialiser un composant TStatusBar :help:
    Par James_ dans le forum C++Builder
    Réponses: 10
    Dernier message: 21/08/2003, 08h52
  3. [servlet] initialisation d'objets
    Par tiPouick dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 05/08/2003, 12h12
  4. Initialisation de XMLModule
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 10
    Dernier message: 01/04/2003, 10h08
  5. initialisation Directinput avec delphi
    Par Madmaxx dans le forum DirectX
    Réponses: 1
    Dernier message: 21/02/2003, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo