Поправка по кэшу: по интервалу снова сверяем modified, всегда качает только кнопка
Как и просили: фоновое обновление по интервалу сначала смотрит на дату изменения файла и, если таблица не менялась, не скачивает её. Всегда перечитывать таблицу — только принудительное обновление из админки (force_reload, кнопка «Обновить сейчас»). Тесты: по интервалу — без скачивания при неизменном modified; кнопка — скачивает независимо от modified (test_force_refresh_ignores_ttl_and_modified).
This commit is contained in:
@@ -170,16 +170,16 @@ def test_cache_no_repeated_download(client, cache):
|
||||
assert cache.calls["download"] == 1
|
||||
|
||||
|
||||
def test_interval_refresh_always_downloads(cache):
|
||||
"""По интервалу таблица перечитывается всегда.
|
||||
def test_modified_unchanged_no_download(cache):
|
||||
"""По интервалу сверяем modified: если таблица не менялась — не скачиваем.
|
||||
|
||||
Поле modified у публичной ссылки может «застыть», поэтому на него не
|
||||
опираемся: иначе стенд показывал бы старые данные бесконечно.
|
||||
Принудительное обновление из админки при этом качает файл всегда
|
||||
(см. test_force_refresh_ignores_ttl_and_modified).
|
||||
"""
|
||||
cache._ttl = 0
|
||||
cache.get()
|
||||
cache.get()
|
||||
assert cache.calls["download"] == 2 # оба обновления по интервалу скачали таблицу
|
||||
assert cache.calls["download"] == 1
|
||||
assert cache.calls["modified"] >= 2
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user