diff options
| author | Nick Pope <nick.pope@flightdataservices.com> | 2019-01-18 23:26:50 +0000 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-09-16 09:40:30 +0200 |
| commit | b4d46df5cad6c936d83dd4f8038d0dc1121bc21e (patch) | |
| tree | 7c200907ff9b349c0d160480cacd088ba23caa63 /tests | |
| parent | cda0a3d7773b44c28669dfa1a41cb6203c5c298e (diff) | |
Fixed #29887 -- Added a cache backend for pymemcache.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/cache/tests.py | 31 | ||||
| -rw-r--r-- | tests/requirements/py3.txt | 1 |
2 files changed, 32 insertions, 0 deletions
diff --git a/tests/cache/tests.py b/tests/cache/tests.py index 9a800e2b6d..1ef2cc1bc1 100644 --- a/tests/cache/tests.py +++ b/tests/cache/tests.py @@ -1277,6 +1277,7 @@ for _cache_params in settings.CACHES.values(): MemcachedCache_params = configured_caches.get('django.core.cache.backends.memcached.MemcachedCache') PyLibMCCache_params = configured_caches.get('django.core.cache.backends.memcached.PyLibMCCache') +PyMemcacheCache_params = configured_caches.get('django.core.cache.backends.memcached.PyMemcacheCache') # The memcached backends don't support cull-related options like `MAX_ENTRIES`. memcached_excluded_caches = {'cull', 'zero_cull'} @@ -1459,6 +1460,36 @@ class PyLibMCCacheTests(BaseMemcachedTests, TestCase): self.assertEqual(cache.client_servers, [expected]) +@unittest.skipUnless(PyMemcacheCache_params, 'PyMemcacheCache backend not configured') +@override_settings(CACHES=caches_setting_for_tests( + base=PyMemcacheCache_params, + exclude=memcached_excluded_caches, +)) +class PyMemcacheCacheTests(BaseMemcachedTests, TestCase): + base_params = PyMemcacheCache_params + + def test_pymemcache_highest_pickle_version(self): + self.assertEqual( + cache._cache.default_kwargs['serde']._serialize_func.keywords['pickle_version'], + pickle.HIGHEST_PROTOCOL, + ) + for cache_key in settings.CACHES: + for client_key, client in caches[cache_key]._cache.clients.items(): + with self.subTest(cache_key=cache_key, server=client_key): + self.assertEqual( + client.serde._serialize_func.keywords['pickle_version'], + pickle.HIGHEST_PROTOCOL, + ) + + @override_settings(CACHES=caches_setting_for_tests( + base=PyMemcacheCache_params, + exclude=memcached_excluded_caches, + OPTIONS={'no_delay': True}, + )) + def test_pymemcache_options(self): + self.assertIs(cache._cache.default_kwargs['no_delay'], True) + + @override_settings(CACHES=caches_setting_for_tests( BACKEND='django.core.cache.backends.filebased.FileBasedCache', )) diff --git a/tests/requirements/py3.txt b/tests/requirements/py3.txt index 694b803b36..d5c59b4e30 100644 --- a/tests/requirements/py3.txt +++ b/tests/requirements/py3.txt @@ -8,6 +8,7 @@ numpy Pillow >= 6.2.0 # pylibmc/libmemcached can't be built on Windows. pylibmc; sys.platform != 'win32' +pymemcache >= 3.4.0 python-memcached >= 1.59 pytz pywatchman; sys.platform != 'win32' |
