Commit ca39c0a6 authored by Florian Hahn's avatar Florian Hahn Committed by Tim Graham
Browse files

Fixed #18404 -- Added test for AppStaticStorage with non ascii path

(bug was already fixed in #19357)
parent e07e4030
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -774,3 +774,33 @@ class TestTemplateTag(StaticFilesTestCase):
        self.assertStaticRenders("does/not/exist.png",
                                   "/static/does/not/exist.png")
        self.assertStaticRenders("testfile.txt", "/static/testfile.txt")


class TestAppStaticStorage(TestCase):
    def setUp(self):
        # Creates a python module foo_module in a directory with non ascii
        # characters
        self.search_path = 'search_path_\xc3\xbc'
        os.mkdir(self.search_path)
        module_path = os.path.join(self.search_path, 'foo_module')
        os.mkdir(module_path)
        open(os.path.join(module_path, '__init__.py'), 'w')
        sys.path.append(os.path.abspath(self.search_path))

    def tearDown(self):
        sys.path.remove(os.path.abspath(self.search_path))
        shutil.rmtree(self.search_path)

    def test_app_with_non_ascii_characters_in_path(self):
        """
        Regression test for #18404 - Tests AppStaticStorage with a module that
        has non ascii characters in path and a non utf8 file system encoding
        """
        # set file system encoding to a non unicode encoding
        old_enc_func = sys.getfilesystemencoding
        sys.getfilesystemencoding = lambda: 'ISO-8859-1'
        try:
            st = storage.AppStaticStorage('foo_module')
            st.path('bar')
        finally:
            sys.getfilesystemencoding = old_enc_func