From 8b3c5e7b5a8f4ac353a9538702e2f7c6af44f372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksi=20Ha=CC=88kli?= Date: Mon, 25 Feb 2019 21:05:18 +0200 Subject: [PATCH] Refactor cache checks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aleksi Häkli --- axes/checks.py | 8 ++++---- axes/tests/test_checks.py | 20 +++++++++----------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/axes/checks.py b/axes/checks.py index ab31205..ccfdb84 100644 --- a/axes/checks.py +++ b/axes/checks.py @@ -20,22 +20,22 @@ class Codes: @register(Tags.caches) def axes_cache_backend_check(app_configs, **kwargs): # pylint: disable=unused-argument - errors = [] + axes_handler = getattr(settings, 'AXES_HANDLER', '') axes_cache_key = getattr(settings, 'AXES_CACHE', 'default') axes_cache_config = settings.CACHES.get(axes_cache_key, {}) axes_cache_backend = axes_cache_config.get('BACKEND', '') - axes_cache_incompatible_backends = [ + axes_cache_backend_incompatible = [ 'django.core.cache.backends.dummy.DummyCache', 'django.core.cache.backends.locmem.LocMemCache', 'django.core.cache.backends.filebased.FileBasedCache', ] - axes_handler = getattr(settings, 'AXES_HANDLER', '') + errors = [] if axes_handler == 'axes.handlers.cache.AxesCacheHandler': - if axes_cache_backend in axes_cache_incompatible_backends: + if axes_cache_backend in axes_cache_backend_incompatible: errors.append(Error( msg=Messages.CACHE_INVALID, hint=Hints.CACHE_INVALID, diff --git a/axes/tests/test_checks.py b/axes/tests/test_checks.py index 7916098..93bf03a 100644 --- a/axes/tests/test_checks.py +++ b/axes/tests/test_checks.py @@ -6,17 +6,15 @@ from axes.conf import settings from axes.tests.base import AxesTestCase +@override_settings(AXES_HANDLER='axes.handlers.cache.AxesCacheHandler') class CacheCheckTestCase(AxesTestCase): - @override_settings( - AXES_HANDLER='axes.handlers.cache.AxesCacheHandler', - AXES_CACHE='axes', - CACHES={ - 'axes': { - 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', - }, - }, - ) - def test_cache_misconfiguration_produces_check_error(self): + @override_settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache'}}) + def test_cache_check(self): + errors = run_checks() + self.assertEqual([], errors) + + @override_settings(CACHES={'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}) + def test_cache_check_errors(self): errors = run_checks() error = Error( msg=Messages.CACHE_INVALID, @@ -25,4 +23,4 @@ class CacheCheckTestCase(AxesTestCase): id=Codes.CACHE_INVALID, ) - self.assertIn(error, errors) + self.assertEqual([error], errors)