id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 17476,"When time zone support is enabled, under Windows, cache keys may contain non-ASCII characters",Aymeric Augustin,Aymeric Augustin,"Reported by Ramiro: {{{ d:\proj\django\trunk\tests>set PYTHONPATH=d:\proj\django\trunk d:\proj\django\trunk\tests>c:\python25\python runtests.py --settings=test_sqlite cache Creating test database for alias 'default'... Creating test database for alias 'other'... ..............................................E................................. ...E............................................................................ ............................................ssssssssssssssssssssssssssssssssss ====================================================================== ERROR: test_cache_write_unpickable_object (regressiontests.cache.tests.DBCacheTests) ---------------------------------------------------------------------- Traceback (most recent call last): File ""d:\proj\django\trunk\tests\regressiontests\cache\tests.py"", line 773, in test_cache_write_unpickable_object get_cache_data = fetch_middleware.process_request(request) File ""d:\proj\django\trunk\django\middleware\cache.py"", line 143, in process_request cache_key = get_cache_key(request, self.key_prefix, 'GET', cache=self.cache) File ""d:\proj\django\trunk\django\utils\cache.py"", line 207, in get_cache_key headerlist = cache.get(cache_key, None) File ""d:\proj\django\trunk\django\core\cache\backends\db.py"", line 62, in get ""WHERE cache_key = %%s"" % table, [key]) File ""d:\proj\django\trunk\django\db\backends\sqlite3\base.py"", line 321, in execute return Database.Cursor.execute(self, query, params) File ""d:\proj\django\trunk\django\db\backends\sqlite3\base.py"", line 38, in parse_datetime_with_timezone_support dt = parse_datetime(value) File ""d:\proj\django\trunk\django\utils\dateparse.py"", line 70, in parse_datetime match = datetime_re.match(value) DatabaseError: Could not decode to UTF-8 column 'cache_key' with text ':1:views.decorators.cache.cache_header..0b2d3961361a3afb82d85e3b25762eab.en.Hora_estßndar_de_Argentina' ====================================================================== ERROR: test_cache_write_unpickable_object (regressiontests.cache.tests.DBCacheTests) ---------------------------------------------------------------------- Traceback (most recent call last): File ""d:\proj\django\trunk\tests\regressiontests\cache\tests.py"", line 773, in test_cache_write_unpickable_object get_cache_data = fetch_middleware.process_request(request) File ""d:\proj\django\trunk\django\middleware\cache.py"", line 143, in process_request cache_key = get_cache_key(request, self.key_prefix, 'GET', cache=self.cache) File ""d:\proj\django\trunk\django\utils\cache.py"", line 207, in get_cache_key headerlist = cache.get(cache_key, None) File ""d:\proj\django\trunk\django\core\cache\backends\db.py"", line 62, in get ""WHERE cache_key = %%s"" % table, [key]) File ""d:\proj\django\trunk\django\db\backends\sqlite3\base.py"", line 321, in execute return Database.Cursor.execute(self, query, params) File ""d:\proj\django\trunk\django\db\backends\sqlite3\base.py"", line 38, in parse_datetime_with_timezone_support dt = parse_datetime(value) File ""d:\proj\django\trunk\django\utils\dateparse.py"", line 70, in parse_datetime match = datetime_re.match(value) DatabaseError: Could not decode to UTF-8 column 'cache_key' with text ':1:views.decorators.cache.cache_header..0b2d3961361a3afb82d85e3b25762eab.en.Hora_estßndar_de_Argentina' ---------------------------------------------------------------------- Ran 238 tests in 32.209s FAILED (errors=2, skipped=34) Destroying test database for alias 'default'... Destroying test database for alias 'other'... d:\proj\django\trunk\tests>c:\python27\python runtests.py --settings=test_sqlite cache Creating test database for alias 'default'... Creating test database for alias 'other'... ..............................................E................................. ...E............................................................................ ............................................ssssssssssssssssssssssssssssssssss ====================================================================== ERROR: test_cache_write_unpickable_object (regressiontests.cache.tests.DBCacheTe sts) ---------------------------------------------------------------------- Traceback (most recent call last): File ""d:\proj\django\trunk\tests\regressiontests\cache\tests.py"", line 771, in test_cache_write_unpickable_object update_middleware.process_response(request, response) File ""d:\proj\django\trunk\django\middleware\cache.py"", line 109, in process_response cache_key = learn_cache_key(request, response, timeout, self.key_prefix, cache=self.cache) File ""d:\proj\django\trunk\django\utils\cache.py"", line 241, in learn_cache_key cache.set(cache_key, [], cache_timeout) File ""d:\proj\django\trunk\django\core\cache\backends\db.py"", line 80, in set self._base_set('set', key, value, timeout) File ""d:\proj\django\trunk\django\core\cache\backends\db.py"", line 108, in _base_set ""WHERE cache_key = %%s"" % table, [key]) File ""d:\proj\django\trunk\django\db\backends\sqlite3\base.py"", line 321, in execute return Database.Cursor.execute(self, query, params) DatabaseError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. ====================================================================== ERROR: test_cache_write_unpickable_object (regressiontests.cache.tests.DBCacheTe sts) ---------------------------------------------------------------------- Traceback (most recent call last): File ""d:\proj\django\trunk\tests\regressiontests\cache\tests.py"", line 771, in test_cache_write_unpickable_object update_middleware.process_response(request, response) File ""d:\proj\django\trunk\django\middleware\cache.py"", line 109, in process_response cache_key = learn_cache_key(request, response, timeout, self.key_prefix, cache=self.cache) File ""d:\proj\django\trunk\django\utils\cache.py"", line 241, in learn_cache_key cache.set(cache_key, [], cache_timeout) File ""d:\proj\django\trunk\django\core\cache\backends\db.py"", line 80, in set self._base_set('set', key, value, timeout) File ""d:\proj\django\trunk\django\core\cache\backends\db.py"", line 108, in _base_set ""WHERE cache_key = %%s"" % table, [key]) File ""d:\proj\django\trunk\django\db\backends\sqlite3\base.py"", line 321, in execute return Database.Cursor.execute(self, query, params) DatabaseError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. ---------------------------------------------------------------------- Ran 238 tests in 26.808s FAILED (errors=2, skipped=34) Destroying test database for alias 'default'... Destroying test database for alias 'other'... }}}",Bug,closed,Core (Cache system),dev,Release blocker,fixed,,,Ready for checkin,1,0,0,0,0,0