From ca39c0a6becf497880181b3a5ef6db84130f9723 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 24 Feb 2013 00:01:45 +0100 Subject: [PATCH] Fixed #18404 -- Added test for AppStaticStorage with non ascii path (bug was already fixed in #19357) --- tests/staticfiles_tests/tests.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/staticfiles_tests/tests.py b/tests/staticfiles_tests/tests.py index 912dcffe83..bb33c40423 100644 --- a/tests/staticfiles_tests/tests.py +++ b/tests/staticfiles_tests/tests.py @@ -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