#32100 closed Bug (invalid)
Parameter KEY_PREFIX for DummyCache causing test runner to fail
Reported by: | Kaustubh Bhalerao | Owned by: | nobody |
---|---|---|---|
Component: | Core (Cache system) | Version: | 3.1 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Summary:
If the KEY_PREFIX option is present while using the DummyCache backend, the test runner fails with the traceback at the bottom. When running the server, there via runserver there is no issue.
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', }, 'KEY_PREFIX': "SomeKeyPrefix" }
Traceback (most recent call last): File "/snap/pycharm-professional/215/plugins/python/helpers/pycharm/django_test_manage.py", line 168, in <module> utility.execute() File "/snap/pycharm-professional/215/plugins/python/helpers/pycharm/django_test_manage.py", line 142, in execute _create_command().run_from_argv(self.argv) File "/home/.../lib/python3.8/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv super().run_from_argv(argv) File "/home/.../DJ3/lib/python3.8/site-packages/django/core/management/base.py", line 328, in run_from_argv self.execute(*args, **cmd_options) File "/home/.../lib/python3.8/site-packages/django/core/management/base.py", line 369, in execute output = self.handle(*args, **options) File "/snap/pycharm-professional/215/plugins/python/helpers/pycharm/django_test_manage.py", line 104, in handle failures = TestRunner(test_labels, **options) File "/snap/pycharm-professional/215/plugins/python/helpers/pycharm/django_test_runner.py", line 254, in run_tests return DjangoTeamcityTestRunner(**options).run_tests(test_labels, File "/snap/pycharm-professional/215/plugins/python/helpers/pycharm/django_test_runner.py", line 156, in run_tests return super(DjangoTeamcityTestRunner, self).run_tests(test_labels, extra_tests, **kwargs) File "/home/.../lib/python3.8/site-packages/django/test/runner.py", line 684, in run_tests old_config = self.setup_databases(aliases=databases) File "/home/.../lib/python3.8/site-packages/django/test/runner.py", line 604, in setup_databases return _setup_databases( File "/home/.../lib/python3.8/site-packages/django/test/utils.py", line 169, in setup_databases connection.creation.create_test_db( File "/home/.../lib/python3.8/site-packages/django/db/backends/base/creation.py", line 82, in create_test_db call_command('createcachetable', database=self.connection.alias) File "/home/.../lib/python3.8/site-packages/django/core/management/__init__.py", line 168, in call_command return command.execute(*args, **defaults) File "/home/.../lib/python3.8/site-packages/django/core/management/base.py", line 369, in execute output = self.handle(*args, **options) File "/home/.../lib/python3.8/site-packages/django/core/management/commands/createcachetable.py", line 42, in handle cache = caches[cache_alias] File "/home/.../lib/python3.8/site-packages/django/core/cache/__init__.py", line 79, in __getitem__ cache = _create_cache(alias) File "/home/.../lib/python3.8/site-packages/django/core/cache/__init__.py", line 47, in _create_cache params = {**conf, **kwargs} TypeError: 'str' object is not a mapping
Error message is pretty clear, but likely requires a more general solution implemented in createcachetable.py when DummyCache backend is being used.
Workaround: Do not add options to DummyCache backend, and potentially update documentation to indicate if options to DummyCache will be a problem.
Note:
See TracTickets
for help on using tickets.
It's a bug in your settings, KEY_PREFIX should be in
'default'
: