"""Проверка описи мира: та ли она, что собирается из кода сегодня. Опись собирается из кода, значит разойтись они могут только одним способом — код правили, опись не пересобрали. Ровно это здесь и сторожится, тем же способом, что свежесть «описания выгрузки». Проверка дорогая — она пересчитывает восемь модельных дней целиком, и это единственный способ сравнить хеши: дешевле мир не пересобрать. Зато краснеет она там, где надо, — сразу после правки генератора, а не через полчаса на поднятом стенде, где расхождение счётчиков выглядит поломкой хранилища. """ import json from pathlib import Path from clickstream_generator.inventory import build INVENTORY_PATH = Path(__file__).resolve().parents[2] / "data" / "world-inventory.json" def test_inventory_is_up_to_date(): stored = json.loads(INVENTORY_PATH.read_text(encoding="utf-8")) assert stored == build(), ( "опись мира отстала от кода — пересоберите: make inventory." " Разошлись хеши дней и каталога — правили data/catalog/products.csv;" " разошлись только дни — правили генератор" )