[3.0.x] Fixed #31654 -- Fixed cache key validation messages.
Backport of 926148ef019abcac3a9988c78734d9336d69f24e from master
This commit is contained in:
parent
b80c5baf29
commit
e8723af44b
2
django/core/cache/backends/base.py
vendored
2
django/core/cache/backends/base.py
vendored
@ -286,6 +286,6 @@ def memcache_key_warnings(key):
|
||||
if ord(char) < 33 or ord(char) == 127:
|
||||
yield (
|
||||
'Cache key contains characters that will cause errors if '
|
||||
'used with memcached: %r' % key, CacheKeyWarning
|
||||
'used with memcached: %r' % key
|
||||
)
|
||||
break
|
||||
|
13
docs/releases/2.2.14.txt
Normal file
13
docs/releases/2.2.14.txt
Normal file
@ -0,0 +1,13 @@
|
||||
===========================
|
||||
Django 2.2.14 release notes
|
||||
===========================
|
||||
|
||||
*Expected July 1, 2020*
|
||||
|
||||
Django 2.2.14 fixes a bug in 2.2.13.
|
||||
|
||||
Bugfixes
|
||||
========
|
||||
|
||||
* Fixed messages of ``InvalidCacheKey`` exceptions and ``CacheKeyWarning``
|
||||
warnings raised by cache key validation (:ticket:`31654`).
|
@ -9,4 +9,5 @@ Django 3.0.8 fixes several bugs in 3.0.7.
|
||||
Bugfixes
|
||||
========
|
||||
|
||||
* ...
|
||||
* Fixed messages of ``InvalidCacheKey`` exceptions and ``CacheKeyWarning``
|
||||
warnings raised by cache key validation (:ticket:`31654`).
|
||||
|
@ -40,6 +40,7 @@ versions of the documentation contain the release notes for any later releases.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
2.2.14
|
||||
2.2.13
|
||||
2.2.12
|
||||
2.2.11
|
||||
|
6
tests/cache/tests.py
vendored
6
tests/cache/tests.py
vendored
@ -624,8 +624,9 @@ class BaseCacheTests:
|
||||
cache.key_func = func
|
||||
|
||||
try:
|
||||
with self.assertWarnsMessage(CacheKeyWarning, expected_warning):
|
||||
with self.assertWarns(CacheKeyWarning) as cm:
|
||||
cache.set(key, 'value')
|
||||
self.assertEqual(str(cm.warning), expected_warning)
|
||||
finally:
|
||||
cache.key_func = old_func
|
||||
|
||||
@ -1262,8 +1263,9 @@ class BaseMemcachedTests(BaseCacheTests):
|
||||
invalid key.
|
||||
"""
|
||||
msg = expected_warning.replace(key, cache.make_key(key))
|
||||
with self.assertRaisesMessage(InvalidCacheKey, msg):
|
||||
with self.assertRaises(InvalidCacheKey) as cm:
|
||||
cache.set(key, 'value')
|
||||
self.assertEqual(str(cm.exception), msg)
|
||||
|
||||
def test_default_never_expiring_timeout(self):
|
||||
# Regression test for #22845
|
||||
|
Loading…
x
Reference in New Issue
Block a user