Commit c2fcba2a authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Ensured gen_filenames() yields native strings.

This also fixes a test failure on Python 2 when Django is installed in a
non-ASCII path. This problem cannot happen on Python 3.
parent dfa712ef
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import traceback
from django.apps import apps
from django.conf import settings
from django.core.signals import request_finished
from django.utils._os import npath
from django.utils.six.moves import _thread as thread

# This import does nothing, but it's necessary to avoid some race conditions
@@ -106,7 +107,7 @@ def gen_filenames(only_new=False):
                                 'conf', 'locale'),
                    'locale']
        for app_config in reversed(list(apps.get_app_configs())):
            basedirs.append(os.path.join(app_config.path, 'locale'))
            basedirs.append(os.path.join(npath(app_config.path), 'locale'))
        basedirs.extend(settings.LOCALE_PATHS)
        basedirs = [os.path.abspath(basedir) for basedir in basedirs
                    if os.path.isdir(basedir)]
+4 −0
Original line number Diff line number Diff line
@@ -90,6 +90,10 @@ class TestFilenameGenerator(SimpleTestCase):
        django_mo = os.path.join(django_dir, 'nl', 'LC_MESSAGES', 'django.mo')
        self.assertFileNotFound(django_mo)

    def test_paths_are_native_strings(self):
        for filename in autoreload.gen_filenames():
            self.assertIsInstance(filename, str)

    def test_only_new_files(self):
        """
        When calling a second time gen_filenames with only_new = True, only