From 44821f4c882a68b73a4ab59fe42a82939b82e830 Mon Sep 17 00:00:00 2001 From: David Jean Louis Date: Wed, 14 Nov 2018 18:25:01 +0100 Subject: [PATCH] Guess SETTINGS_MODULE is is set to None (in tests) When testing and using override_settings(), SETTINGS_MODULE is reset, so in case it is set to None, we try to guess it via the DJANGO_SETTINGS_MODULE env var. --- rosetta/poutil.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rosetta/poutil.py b/rosetta/poutil.py index a910545..2080dbd 100644 --- a/rosetta/poutil.py +++ b/rosetta/poutil.py @@ -1,5 +1,5 @@ from datetime import datetime -from django.conf import settings +from django.conf import settings, ENVIRONMENT_VARIABLE from rosetta.conf import settings as rosetta_settings import django import os @@ -35,7 +35,13 @@ def find_pos(lang, project_apps=True, django_apps=False, third_party_apps=False) paths = [] # project/locale - parts = settings.SETTINGS_MODULE.split('.') + if settings.SETTINGS_MODULE: + parts = settings.SETTINGS_MODULE.split('.') + else: + # if settings.SETTINGS_MODULE is None, we are probably in "test" mode + # and override_settings() was used + # see: https://code.djangoproject.com/ticket/25911 + parts = os.environ.get(ENVIRONMENT_VARIABLE).split('.') project = __import__(parts[0], {}, {}, []) abs_project_path = os.path.normpath(os.path.abspath(os.path.dirname(project.__file__))) if project_apps: