| 1234567891011121314151617181920212223242526272829303132333435 |
- from __future__ import annotations
- def test_cache_invalidation_targets_direct_and_impacted_points():
- from app.core.knowledge.cache_invalidation import (
- CacheDependency,
- plan_cache_invalidation,
- )
- dependencies = [
- CacheDependency("cache-a", "DataMeta/a/definition", "domain-a", 1),
- CacheDependency("cache-b", "DataFlow/b/purpose", "domain-a", 1),
- CacheDependency("cache-c", "DataMeta/c/definition", "domain-b", 1),
- ]
- plan = plan_cache_invalidation(
- dependencies,
- changed_point_keys={"DataMeta/a/definition"},
- impacted_point_keys={"DataFlow/b/purpose"},
- )
- assert plan.cache_key_hashes == frozenset({"cache-a", "cache-b"})
- assert plan.business_domains_to_flush == frozenset()
- def test_missing_dependency_metadata_falls_back_to_business_domain_flush():
- from app.core.knowledge.cache_invalidation import plan_cache_invalidation
- plan = plan_cache_invalidation(
- [],
- changed_point_keys={"DataMeta/a/definition"},
- impacted_point_keys=set(),
- dependency_metadata_complete=False,
- affected_business_domains={"domain-a"},
- )
- assert plan.cache_key_hashes == frozenset()
- assert plan.business_domains_to_flush == frozenset({"domain-a"})
|