Commit Graph

200 Commits

Author SHA1 Message Date
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
caleb logan 68f0e8d8b1 Fixed #28500 -- Fixed crash in FileBasedCache._is_expired() if the cache file is empty. 2017-09-03 20:11:49 -04:00
Chandrakant Kumar f6800a081a Refs #27787 -- Corrected or removed invalid call_command() options. 2017-06-16 11:06:01 -04:00
Jon Dufresne 21046e7773 Fixed #28249 -- Removed unnecessary dict.keys() calls.
iter(dict) is equivalent to iter(dict.keys()).
2017-05-27 19:08:46 -04:00
Bruno Alla 6092ea8fa6 Refs #27804 -- Used subTest() in several tests. 2017-05-24 08:36:34 -04:00
Tim Graham 6b4f018b2b Replaced type-specific assertions with assertEqual().
Python docs say, "it's usually not necessary to invoke these methods directly."
2017-03-17 07:51:48 -04:00
Tim Graham 500532c95d Refs #23919 -- Removed default 'utf-8' argument for str.encode()/decode(). 2017-02-09 09:03:47 -05:00
Tim Graham 29f607927f Fixed spelling of "nonexistent". 2017-02-03 08:01:45 -05:00
Tim Graham 1c466994d9 Refs #23919 -- Removed misc Python 2/3 references. 2017-01-25 13:59:25 -05:00
chillaranand d6eaf7c018 Refs #23919 -- Replaced super(ClassName, self) with super(). 2017-01-25 12:23:46 -05:00
Tim Graham 632c4ffd9c Refs #23919 -- Replaced errno checking with PEP 3151 exceptions. 2017-01-25 10:13:08 -05:00
Claude Paroz 2366100872 Removed unneeded force_text calls in the test suite 2017-01-24 18:45:54 +01:00
Tim Graham d170c63351 Refs #23919 -- Removed misc references to Python 2. 2017-01-21 20:02:00 -05:00
Tim Graham 7aba69145d Refs #23919 -- Removed django.test.mock Python 2 compatibility shim. 2017-01-20 08:17:20 -05:00
Simon Charette cecc079168 Refs #23919 -- Stopped inheriting from object to define new style classes. 2017-01-19 08:39:46 +01:00
Aymeric Augustin a556396339 Refs #23919 -- Replaced io.open() with open().
io.open() is an alias for open() on Python 3.
2017-01-18 21:45:12 -05:00
Claude Paroz 2b281cc35e Refs #23919 -- Removed most of remaining six usage
Thanks Tim Graham for the review.
2017-01-18 21:33:28 +01:00
Claude Paroz c716fe8782 Refs #23919 -- Removed six.PY2/PY3 usage
Thanks Tim Graham for the review.
2017-01-18 16:21:28 +01:00
Claude Paroz d7b9aaa366 Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
za 321e94fa41 Refs #27392 -- Removed "Tests that", "Ensures that", etc. from test docstrings. 2016-11-10 21:30:21 -05:00
Tim Graham 414ad25b09 Fixed #27327 -- Simplified time zone handling by requiring pytz. 2016-10-27 08:53:20 -04:00
Denis Cornehl a840710e1e Fixed #26447 -- Deprecated settings.USE_ETAGS in favor of ConditionalGetMiddleware. 2016-10-10 14:55:59 -04:00
Tim Graham 82f8996785 Refs #5133 -- Isolated test_close() cache test. 2016-09-15 08:59:39 -04:00
Rinat Khabibiev f9702977b7 Fixed #27211 -- Made UpdateCacheMiddleware include caching headers for "304 Not Modified" responses. 2016-09-14 19:37:18 -04:00
Tim Graham ef021412d5 Normalized spelling of ETag. 2016-09-09 11:00:21 -04:00
Ed Morley f02dbbe1ae Fixed #11331 -- Stopped closing pylibmc connections after each request.
libmemcached manages its own connections, so isn't affected by refs #5133.
2016-09-02 14:44:27 -04:00
Ed Morley 3e935aec6d Refs #5133 -- Tested memcached connection closing after each request. 2016-09-02 14:36:36 -04:00
Ed Morley d8ef5b0e65 Fixed #27152 -- Supported comma delimiter in memcached LOCATION string. 2016-08-31 17:23:41 -04:00
Ed Morley c8058dc241 Added a test for multiple memcached servers in LOCATION. 2016-08-31 17:16:11 -04:00
Ed Morley 65ec8fa8ca Fixed #20892 -- Allowed configuring memcached client using OPTIONS.
Previously, the MemcachedCache backend ignored `OPTIONS` and
PyLibMCCache used them to set pylibmc behaviors. Both backends now
pass `OPTIONS` as keyword arguments to the client constructors.
2016-08-31 12:50:14 -04:00
Ed Morley cf45bb02d7 Removed unused variable in test_memcached_uses_highest_pickle_version 2016-08-31 12:15:42 -04:00
Ed Morley 674e3fe13e Fixed #19914 -- Fixed test failures with pylibmc. 2016-08-29 11:03:59 -04:00
Ed Morley 047c1d48a6 Fixed #27132 -- Allowed testing MemcachedCache and PyLibMCCache during the same test run. 2016-08-29 10:57:52 -04:00
Ed Morley cfd1f93d55 Refs #19914 -- Split the test_invalid_keys cache test into two.
The first half of the test fails when using pylibmc (so will need
to be skipped).
2016-08-29 10:21:20 -04:00
Ed Morley 606a303856 Fixed #27124 -- Excluded cull-related cache configs from memcached tests.
Since the `cull` and `zero_cull` test cache configs set `MAX_ENTRIES`
and `CULL_FREQUENCY` in `OPTIONS`, which are only intended for use with
the locmem, filesystem, and database backends. This prevents test
failures once refs #20892 is fixed.
2016-08-26 14:29:22 -04:00
Dmitry Dygalo ca32979cdc
Made miscellaneous code cleanups 2016-07-21 10:08:19 -04:00
Dmitry S..ky / skype: dvska-at-skype 82be474efa Fixed #26792 -- Allowed None for the value of cache.get_or_set(). 2016-07-11 20:49:27 -04:00
Tobias McNulty 17e661641d Refs #26666 -- Added ALLOWED_HOSTS validation when running tests.
Also used ALLOWED_HOSTS to check for external hosts in assertRedirects().
2016-06-20 11:07:46 -04:00
Jon Dufresne 4f336f6652 Fixed #26747 -- Used more specific assertions in the Django test suite. 2016-06-16 14:19:18 -04:00
Jon Dufresne 779829662d Fixed #26694 -- Made FileBasedCache.get() reraise non-ENOENT IOErrors. 2016-06-01 15:29:24 -04:00
Tim Graham 92053acbb9 Fixed E128 flake8 warnings in tests/. 2016-04-08 10:12:33 -04:00
Przemysław Suliga 90ce5d46bf Fixed #26462 -- Fixed Python 2 UnicodeEncodeError when warning about long cache keys. 2016-04-05 11:16:04 -04:00
Przemysław Suliga d356bb653f Fixed #26460 -- Issued a single warning for invalid cache key 2016-04-04 15:20:55 -04:00
Przemysław Suliga 96ec67a7cf Fixed #26332 -- Fixed a race condition in BaseCache.get_or_set(). 2016-03-08 11:44:37 -05:00
George Marshall 75614f6d4c Fixed #26331 -- Fixed test function names with typos 2016-03-07 11:58:21 +01:00
Hasan 3d0dcd7f5a Refs #26022 -- Used context manager version of assertRaises in tests. 2016-01-29 12:32:18 -05:00
Emre Yilmaz 8e838d9c86 Fixed #25840 -- Fixed BaseCache.get_or_set() on the DummyCache backend.
This also fixes a possible data eviction race condition between
setting and getting a key. Another thread could remove the key
before get_and_set() accesses it again. In this case, now the
default value will be returned instead of None.
2015-12-04 12:22:17 -05:00
Dwight Gunning 1f29164ced Fixed #6727 -- Made patch_cache_control() patch an empty Cache-Control header. 2015-11-09 14:26:29 -05:00
Tim Graham bab9c09342 Fixed spelling of "unpicklable" in cache tests. 2015-10-21 11:56:30 -04:00
Andrew Artajos 48888a1a67 Fixed #25501 -- Made the file-based cache backend use the highest pickling protocol. 2015-10-20 13:05:33 -04:00
Dražen Odobašić b1e33ceced Fixed #23395 -- Limited line lengths to 119 characters. 2015-09-12 11:40:50 -04:00
Maxime Lorant 5153a3bfdc Fixed #25331 -- Removed trailing blank lines in docstrings. 2015-08-31 17:37:21 -04:00
Adam Chainz 05239180c0 Removed unnecessary DBCacheTests.test_clear_commits_transaction test.
Was added in 44164c5c30 but the
transaction.commit_unless_managed() line was removed in
ba5138b1c0253fcf390b7509ad7b954117b3be88; thus the test does nothing
but check that clear() runs.
2015-08-31 09:14:06 -04:00
Simon Charette be67400b47 Refs #24652 -- Used SimpleTestCase where appropriate. 2015-05-20 13:46:13 -04:00
Adam Chainz 5564d0f2ee Fixed #24560 -- Added a --dry-run mode to the createcachetable command. 2015-04-09 12:15:50 -04:00
Berker Peksag 34fb909180 Fixed #12982 -- Added a get_or_set() method to the BaseCache backend. 2015-03-14 20:07:16 +02:00
Loic Bistuer bed504d70b Fixed #24351, #24346 -- Changed the signature of allow_migrate().
The new signature enables better support for routing RunPython and
RunSQL operations, especially w.r.t. reusable and third-party apps.

This commit also takes advantage of the deprecation cycle for the old
signature to remove the backward incompatibility introduced in #22583;
RunPython and RunSQL won't call allow_migrate() when when the router
has the old signature.

Thanks Aymeric Augustin and Tim Graham for helping shape up the patch.

Refs 22583.
2015-02-20 21:34:09 +07:00
Tim Graham 0ed7d15563 Sorted imports with isort; refs #23860. 2015-02-06 08:16:28 -05:00
darkryder 9ec8aa5e5d Fixed #24149 -- Normalized tuple settings to lists. 2015-02-03 14:59:45 -05:00
Tim Graham d038c547b5 Removed django.core.cache.get_cache() per deprecation timeline; refs #21012. 2015-01-17 09:55:18 -05:00
Aymeric Augustin 79deb6a071 Accounted for multiple template engines in template responses. 2015-01-12 21:01:34 +01:00
Tim Graham 5c43fd4825 Isolated some cache tests; refs #23947.
This reverts a change made in 40c60efecc
which was incorrect and caused CacheKeyWarnings.
2015-01-08 13:14:45 -05:00
Claude Paroz 51890ce889 Applied ignore_warnings to Django tests 2014-12-30 18:16:25 +01:00
Aymeric Augustin 92e8f1f302 Moved context_processors from django.core to django.template. 2014-12-28 17:00:07 +01:00
Jon Dufresne 4468c08d70 Fixed #23968 -- Replaced list comprehension with generators and dict comprehension 2014-12-08 07:58:23 -05:00
Tim Graham 40c60efecc Refs #23947 -- Isolated some cache tests.
Thanks Diego Guimarãesi and Florian Apolloner.
2014-12-06 13:59:49 -05:00
wrwrwr 9136ceb6fb Replaced router.routers usage with override_settings(DATABASE_ROUTERS); refs #23933. 2014-12-01 11:34:15 -05:00
Michael Manfre bc8abe36ba Fixed #16358 - Made memcache backend delete old value on a failure to set.
Default Memcached configuration allows for a maximum object of 1MB and
will fail to set the key if it is too large. The key will be deleted from
memcached if it fails to be set. This is needed to avoid an issue with
cache_db session backend using the old value stored in memcached, instead
of the newer value stored in the database.
2014-11-13 00:46:03 -05:00
Thomas Chaumeny d89f56dc4d Fixed #21281 -- Made override_settings act at class level when used as a TestCase decorator. 2014-11-03 14:14:39 -05:00
Berker Peksag f7969b0920 Fixed #23620 -- Used more specific assertions in the Django test suite. 2014-11-03 11:56:37 -05:00
Loic Bistuer 494ba051bb Made testing of stdout and stderr more consistent.
Refs #23663.
2014-10-22 09:25:50 +07:00
Loic Bistuer 968510e5d7 Moved a test case that caused deprecation warnings.
`cache.tests.TestEtagWithAdmin` loaded views from the `admin_views` test
package. This is problematic because when the `cache` test package is
run in isolation, `admin_views` isn't in INSTALLED_APPS, and therefore
loading its models isn't allowed since the app loading refactor.
2014-10-20 00:22:48 +07:00
Thomas Chaumeny b2aad7b836 Replaced set([foo, ...]) by {foo, ...} literals. Refs PR 3282.
Thanks Collin Anderson for the review.
2014-09-29 00:01:38 +07:00
Claude Paroz 885ff6845e Revert "Fixed #23384 -- Allowed overriding part of a dictionary-type setting"
This reverts commit 66757fee7e.
Discussions have led to think that this functionality does not
bring significant benefits to justify the added complexity.
Read also discussions on ticket #22734.
2014-09-05 20:06:02 +02:00
Aymeric Augustin df251e033c Fixed a PEP 8 error. 2014-08-30 13:27:56 +02:00
Claude Paroz 66757fee7e Fixed #23384 -- Allowed overriding part of a dictionary-type setting
This change is needed for upcoming changes where settings might be
grouped in a parent dictionary.
Thanks Tim Graham for the review.
2014-08-30 12:37:10 +02:00
Claude Paroz 1d9596025e Ensured cache tests do not leak temp dirs
Refs #17215.
2014-06-23 14:06:04 +02:00
Vincent-Vega 4529af9ecf Fixed #22845 -- Correctly handled memcached default timeout value. 2014-06-16 16:34:00 -04:00
Claude Paroz 35e1b1efab Used more precise assertions in cache tests 2014-05-09 19:34:53 +02:00
Malcolm Box 66880e4cd1 Fixed #22606 -- Locmemcache has_key() failed for infinite cache expiry
Refactored cache expiry logic for Locmemcache to make consistent across
all places where accessed, and correctly handle None as expiry time.
2014-05-09 18:35:07 +02:00
Malcolm Box af5f688392 Fixed #22495 -- Locmem cache.add() failed with infinite timeouts
cache.add() incorrectly succeeded when there was an existing key
with an infinite (None) timeout.
2014-04-23 14:49:46 +02:00
Aymeric Augustin c083e3815a Prevented leaking the CSRF token through caching.
This is a security fix. Disclosure will follow shortly.
2014-04-21 18:11:26 -04:00
Aymeric Augustin 428c0bbe1b Appeased flake8 2.1.0. 2014-04-21 12:27:34 +02:00
Anubhav Joshi cd914e31c9 Fixed #21977 -- Deprecated SimpleTestCase.urls 2014-04-06 17:33:43 -04:00
Aymeric Augustin 232181d1c5 Advanced deprecation warnings for 1.8. 2014-03-22 21:12:58 +01:00
Aymeric Augustin 0757e0f30d Avoided transactional DDL on castrated databases.
Fixed a test failure that appeared after 753a22a6, although the bug
existed before that commit.

Refs #22308.
2014-03-22 11:05:14 +01:00
Aymeric Augustin 753a22a635 Fixed transaction handling in two management commands.
Previously, when createcachetable and flush operated on non-default
databases, they weren't atomic.
2014-03-21 21:29:51 +01:00
Tim Graham f567d04b24 Removed settings.CACHE_MIDDLEWARE_ANONYMOUS_ONLY per deprecation timeline.
refs #15201.
2014-03-21 09:46:17 -04:00
Claude Paroz c564277937 Fixed #22237 -- Removed some warnings in the test suite
Thanks Aymeric Augustin for the report.
2014-03-09 22:10:49 +01:00
Baptiste Mispelon 5a5815d373 Fixed incorrect docstring in cache tests (take two)
3e25c8ac69 was an incomplete
merge of the pull request.

Thanks to @ramast for catching this.
2014-03-05 07:35:07 +01:00
ramast 3e25c8ac69 Fixed incorrect docstring in cache tests 2014-03-04 21:50:21 +01:00
zedr 6fe22b30e0 Fixed #22085 -- Added a feature for setting non-expiring keys as the default.
This feature allows the default `TIMEOUT` Cache argument to be set to `None`,
so that cache instances can set a non-expiring key as the default,
instead of using the default value of 5 minutes.

Previously, this was possible only by passing `None` as an argument to
the set() method of objects of type `BaseCache` (and subtypes).
2014-03-04 21:16:35 +01:00
Rodolfo Carvalho 0d91225892 Fixed many typos in comments and docstrings.
Thanks Piotr Kasprzyk for help with the patch.
2014-03-03 07:38:09 -05:00
Tim Graham 6c5a30b4e7 Added tests for LocalMemCache deadlocks. refs #20613 and refs #18541.
Thanks Zach Smith for the patch.
2014-02-08 05:49:27 -05:00