﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
35276	Push cache backend checks down to backend classes	Adam Johnson	Tim McCurrach	"Currently, the three system checks for caches are individual functions [https://github.com/django/django/blob/main/django/core/checks/caches.py in ​django.core.checks.caches]. But two of them relate only to `FileBasedCache`, yet still run regardless of which backends are used. This structure causes some issues:

1. `FileBasedCache` and its dependencies are imported even when not used.
2. Some waste in `check_cache_location_not_exposed()` when no `FileBasedCache` is configured, which resolves some paths before checking against caches.
3. The code structure is a bit messy with repeated loops and `isinstance(cache, FileBasedCache)` conditions.

I propose restructuring these checks to live within the cache backend classes in `django.core.cache.backends.*`, adopting the same pattern used for model and field checks, admin checks, and staticfiles finders. (And template backend checks, as I proposed in #35233.)

This would mean:

1. Adding `BaseCache.check()` which just does `return []` for now.
2. Pushing the existing two checks down to a new `FileBasedCache.check()` method.
3. Dropping the existing code.
4. Checking tests cover the checks sufficiently and they pass with the new structure.
5. Potentially adding a test to cover a custom cache backend with its own check."	Cleanup/optimization	assigned	Core (System checks)	dev	Normal			bcail	Accepted	1	1	0	1	0	0
