Nick Pope
177a49e79c
Reduced time.sleep() in cache touch() tests.
...
There are 8 cache backends to test and each test of touch() takes
~7s → ~56s. This seems excessive and it feels like we should be able
to reduce this significantly. time.sleep() accepts floating point
values and is guaranteed to sleep for at least the number of seconds
specified as of Python 3.5.
We do run the risk that there may be spurious test failures from this,
but that already seemed to be the case anyway.
2020-10-16 13:13:15 +02:00
Nick Pope
b4d46df5ca
Fixed #29887 -- Added a cache backend for pymemcache.
2020-09-16 09:40:30 +02:00
Nick Pope
cda0a3d777
Refs #29887 , Refs #24212 -- Added more client servers tests for PyLibMCCache.
2020-09-16 07:38:32 +02:00
Tom Carrick
bcc2befd0e
Fixed #31789 -- Added a new headers interface to HttpResponse.
2020-09-14 08:41:59 +02:00
Nick Pope
a629139425
Refs #29887 , Refs #24212 -- Added servers configuration hook for memcached backends.
...
The servers property can be overridden to allow memcached backends to
alter the server configuration prior to it being passed to instantiate
the client. This allows avoidance of documentation for per-backend
differences, e.g. stripping the 'unix:' prefix for pylibmc.
2020-09-02 08:51:17 +02:00
Nick Pope
cc1f2c6a19
Refs #29887 -- Simplified memcached client instantiation.
2020-09-01 10:51:00 +02:00
Mariusz Felisiak
1853724aca
Fixed CVE-2020-24584 -- Fixed permission escalation in intermediate-level directories of the file system cache on Python 3.7+.
2020-09-01 09:17:23 +02:00
Kevin Michel
abbdd3a622
Added tests for cache middlewares constructors.
2020-08-28 10:00:39 +02:00
Nick Pope
b5acb9db75
Fixed #31907 -- Fixed missing validate_key() calls in cache backends.
2020-08-24 09:41:21 +02:00
Nick Pope
9e04b242ee
Refs #31907 -- Added cache key validation tests for cache operations.
2020-08-24 09:33:55 +02:00
Claude Paroz
258c88a913
Refs #5691 -- Made cache keys independent of USE_L10N.
...
This mostly reverts af1893c4ff
.
2020-06-22 10:55:12 +02:00
Guillermo Bonvehí
f386454d13
Fixed #31728 -- Fixed cache culling when no key is found for deletion.
...
DatabaseCache._cull implementation could fail if no key was found to
perform a deletion in the table. This prevented the new cache key/value
from being correctly added.
2020-06-22 06:29:35 +02:00
Mariusz Felisiak
926148ef01
Fixed #31654 -- Fixed cache key validation messages.
2020-06-05 07:21:52 +02:00
David Smith
dbdc192ca3
Preferred usage of among/while to amongst/whilst.
2020-06-03 21:02:48 +02:00
Mariusz Felisiak
229c9c6653
Refs CVE-2020-13254 -- Fixed cache.tests when KEY_PREFIX is defined.
...
Follow up to 2c82414914
.
2020-06-03 13:00:37 +02:00
Dan Palmer
2c82414914
Fixed CVE-2020-13254 -- Enforced cache key validation in memcached backends.
2020-06-03 09:24:26 +02:00
Jon Dufresne
c1c361677d
Made BaseCacheTests skip culling tests if culling is not supported.
2020-03-19 15:34:16 +01:00
Claude Paroz
4d973f5939
Refs #26601 -- Deprecated passing None as get_response arg to middleware classes.
...
This is the new contract since middleware refactoring in Django 1.10.
Co-authored-by: Carlton Gibson <carlton.gibson@noumenal.es>
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2020-02-18 20:03:44 +01:00
Claude Paroz
6fba85b766
Removed unused cache.tests.CacheUtils._set_cache().
...
Unused since its introduction in 71a03e01aa
.
2020-02-13 13:53:12 +01:00
Hasan Ramezani
579f33eb79
Replaced assertWarns() with SimpleTestCase.assertWarnsMessage() in tests.
2020-01-30 11:19:50 +01:00
Flavio Curella
d08d4f464a
Fixed #30765 -- Made cache_page decorator take precedence over max-age Cache-Control directive.
2020-01-16 13:39:16 +01:00
Jon Dufresne
9762617a03
Improved tests assertions in cache tests.
...
Added assertions to compare results of .add(), .delete(), .touch(),
.incr(), .decr(), and .get_or_set() methods.
Made tests use assertIs() rather than assertTrue/False().
2019-12-31 12:49:36 +01:00
Jon Dufresne
8ea3ff155e
Fixed typo in tests/cache/tests.py docstring.
2019-12-11 17:39:21 +01:00
daniel a rios
efc3e32d6d
Fixed #30759 -- Made cache.delete() return whether it succeeded.
...
Thanks Simon Charette for the review.
2019-11-14 11:14:11 +01:00
Jon Dufresne
74f2a58b3a
Refs #29983 -- Added tests for FileBasedCache pathlib support.
2019-11-06 10:01:01 +01:00
Nick Pope
7552de7866
Used more specific unittest assertions in tests.
...
* assertIsNone()/assertIsNotNone() instead of comparing to None.
* assertLess() for < comparisons.
* assertIs() for 'is' expressions.
* assertIsInstance() for isinstance() expressions.
* rounding of assertAlmostEqual() for round() expressions.
* assertIs(..., True/False) instead of comparing to True/False.
* assertIs()/assertIsNot() for ==/!= comparisons.
* assertNotEqual() for == comparisons.
* assertTrue()/assertFalse() instead of comparing to True/False.
2019-10-29 12:37:30 +01:00
Flavio Curella
ed112fadc1
Fixed #23755 -- Added support for multiple field names in the no-cache Cache-Control directive to patch_cache_control().
...
https://tools.ietf.org/html/rfc7234#section-5.2.2.2
2019-10-10 19:30:51 +02:00
Flavio Curella
9facc90020
Refs #23755 -- Added tests for patch_cache_control() with no-cache Cache-Control directive.
2019-10-10 12:24:52 +02:00
Daniel Fairhead
5cb3ed187b
Fixed #30772 -- Optimized make_template_fragment_key().
...
Removed usage of urllib.quote(), unnecessary since cbbe60c7fc
.
Used hasher's .update() on key fragments.
2019-09-18 14:53:05 +02:00
Adnan Umer
6805c0f99f
Fixed #30701 -- Updated patch_vary_headers() to handle an asterisk according to RFC 7231.
2019-08-16 15:25:42 +02:00
Jakub Szafrański
0104b5a417
Fixed #30181 -- Made cache.get() with default work correctly on PyLibMCCache if None is cached.
2019-02-14 19:57:38 -05:00
Jon Dufresne
7785e03ba8
Fixed #30137 -- Replaced OSError aliases with the canonical OSError.
...
Used more specific errors (e.g. FileExistsError) as appropriate.
2019-01-28 11:15:06 -05:00
Jon Dufresne
00b2e4b67c
Added missing assert in FileBasedCacheTests.test_creates_cache_dir_if_nonexistent().
2019-01-26 16:38:46 -05:00
Simon Charette
8c775391b7
Refs #28478 -- Deprecated TestCase's allow_database_queries and multi_db in favor of databases.
2019-01-10 19:11:21 -05:00
Simon Charette
0f212db29d
Made reused RequestFactory instances class attributes.
2018-11-27 09:49:02 -05:00
Tim Graham
193c109327
Switched TestCase to SimpleTestCase where possible in Django's tests.
2018-11-27 08:58:44 -05:00
oliver
abd0ad7681
Fixed #29626 , #29584 -- Added optimized versions of get_many() and delete_many() for the db cache backend.
2018-08-17 15:13:09 -04:00
oliver
3ca24fd1c0
Optimized some cache tests with set_many().
2018-08-16 09:02:21 -04:00
Christian Barcenas
c9c6c16650
Fixed #20584 -- Fixed memcached's get_many() with single-use iterators.
...
Thanks Guyon Morée for the report.
2018-07-09 10:24:41 -04:00
Morgan Aubert
704443acac
Fixed #29363 -- Added SimpleTestCase.assertWarnsMessage().
2018-05-09 11:40:28 -04:00
Nicolas Noé
3246ad1065
Fixed #27480 -- Added cache.touch().
2018-04-27 17:48:35 -04:00
Sergey Fedoseev
4ff29a53e6
Refs #17476 -- Removed obsolete simplification of timezone names in cache key generation.
2018-03-03 14:56:39 -05:00
shanghui
d968788b57
Fixed #28833 -- Prevented CacheMiddleware from caching responses with "Cache-Control: private".
2018-02-06 09:42:05 -05:00
Grant Jenks
d38a3169a4
Fixed #28977 -- Changed local-memory cache to use LRU culling.
...
LRU culling turns every read into a kind of write to the cache: cache keys
are moved to the first position in the OrderedDict when they are retrieved.
The RWLock which permitted multiple readers while prioritizing a single
writer is obsolete since all accesses are now writes.
2018-01-24 12:26:19 -05:00
Adam Johnson
acc989f037
Fixed #28760 -- Removed DummyCache's unnecessary get/set/delete_many().
2017-10-31 12:16:09 -04:00
Adam Johnson
abacd09f07
Refs #27318 -- Made DummyCache.set_many() return a list for consistency with other backends.
2017-10-30 12:13:17 -04:00
Daniel Tao
4d60261b2a
Fixed #28601 -- Prevented cache.get_or_set() from caching None if default is a callable that returns None.
2017-10-10 09:20:34 -04:00
Tim Graham
48d57788ee
Refs #26447 -- Removed the USE_ETAGS setting per deprecation timeline.
2017-09-22 12:51:18 -04:00
Tim Graham
e47b56d791
Refs #20892 -- Removed support for passing pylibmc behavior settings as top-level attributes of CACHES['OPTIONS'].
...
Per deprecation timeline.
2017-09-22 12:51:17 -04:00
Olivier Tabone
a027447f56
Fixed #27318 -- Made cache.set_many() return the list of failed keys.
2017-09-06 14:38:44 -04:00