Django-fr

Forum

#1 05-05-2009 12:20:21

Nautile Bleu
Membre
Inscription : 11-08-2010
Messages : 27

Problème avec doctest

Bonjour aux djangonautes !

Je reviens vers vous car j'ai un problème avec doctest. Je souhaite
tester une fonction dans un templatetag. J'ai l'erreur suivante :
ImportError: Settings cannot be imported, because environment variable
DJANGO_SETTINGS_MODULE is undefined.

J'arrive pourtant à priori à importer les settings (cf ci-dessous):

if __name__ == "__main__":
    import os.path, sys, doctest
    from django.core.management import setup_environ
    PROJECT_PATH = os.path.dirname(os.path.abspath('../../core'))
    sys.path.append(PROJECT_PATH)
    try:
        import settings
    except ImportError:
        print "Unable to import settings."
        sys.exit(1)
    from django.conf.urls.defaults import *
    from hg.urls import urlpatterns
    doctest.testmod()

En fait le problème est plus précisément lié à la fonction reverse()
utilisée dans la fonction que je veux tester, car si je la supprime,
je peux passer les tests. Je suppose qu'il  y a quelque chose à faire
au niveau des urls à importer, mais je ne vois pas quoi. Merci
d'avance de votre aide !

Goulwen

PS. : Je viens d'ailleurs de lire les slides de Simon Willison pour
EuroDjangoCon qui râle contre le problème…
http://www.slideshare.net/simon/django-heresies


T-shirts personnalisés:
http://comboutique.com/nautilebleu

Nouveau ! J'ai déménagé !
http://nautilebleu.tumblr.com/

Hors ligne

#2 05-05-2009 21:11:32

Nautile Bleu
Membre
Inscription : 11-08-2010
Messages : 27

Re : Problème avec doctest

Je me répond à moi même: j'ai fini par trouver ce qui manquait. Il
faut ajouter setup_environ(settings)
(4ème ligne à partir de la fin)

if __name__ == "__main__":
    import os.path, sys, doctest
    from django.core.management import setup_environ
    PROJECT_PATH = os.path.dirname(os.path.abspath('../../core'))
    sys.path.append(PROJECT_PATH)
    try:
        import settings
    except ImportError:
        print "Unable to import settings."
        sys.exit(1)
    setup_environ(settings)
    from django.conf.urls.defaults import *
    from hg.urls import urlpatterns
    doctest.testmod()



Le 5 mai 2009 13:20, Nautile Bleu <nautilebleu _AT_ gmail.com> a écrit :
> Bonjour aux djangonautes !
>
> Je reviens vers vous car j'ai un problème avec doctest. Je souhaite
> tester une fonction dans un templatetag. J'ai l'erreur suivante :
> ImportError: Settings cannot be imported, because environment variable
> DJANGO_SETTINGS_MODULE is undefined.
>
> J'arrive pourtant à priori à importer les settings (cf ci-dessous):
>
> if __name__ == "__main__":
>    import os.path, sys, doctest
>    from django.core.management import setup_environ
>    PROJECT_PATH = os.path.dirname(os.path.abspath('../../core'))
>    sys.path.append(PROJECT_PATH)
>    try:
>        import settings
>    except ImportError:
>        print "Unable to import settings."
>        sys.exit(1)
>    from django.conf.urls.defaults import *
>    from hg.urls import urlpatterns
>    doctest.testmod()
>
> En fait le problème est plus précisément lié à la fonction reverse()
> utilisée dans la fonction que je veux tester, car si je la supprime,
> je peux passer les tests. Je suppose qu'il  y a quelque chose à faire
> au niveau des urls à importer, mais je ne vois pas quoi. Merci
> d'avance de votre aide !
>
> Goulwen
>
> PS. : Je viens d'ailleurs de lire les slides de Simon Willison pour
> EuroDjangoCon qui râle contre le problème…
> http://www.slideshare.net/simon/django-heresies
>
>
> T-shirts personnalisés:
> http://comboutique.com/nautilebleu
>
> Nouveau ! J'ai déménagé !
> http://nautilebleu.tumblr.com/
>

Hors ligne

Pied de page des forums