"""Integration tests for policy metadata cache behavior on check/resources.""" import pytest from pdp.connectors.cerbos_policy_parser import PolicyMetadataDatabase from pdp.connectors.redis_client import RedisConnector from pdp.constants.constants import CACHE_ENTRY_CERBOS_POLICY_METADATA from pdp.utils.cerbos_policy_metadata import ( CerbosPolicyDBLookupError, get_cerbos_policy_metadata, ) async def test_get_cerbos_policy_metadata_found( local_redis_connector: RedisConnector, seeded_policy_metadata_db: PolicyMetadataDatabase, seed_policy_metadata_cache: None, ) -> None: """Returns the seeded PolicyMetadataDatabase when the Redis key exists.""" result = await get_cerbos_policy_metadata(local_redis_connector) assert isinstance(result, PolicyMetadataDatabase) assert result.to_json() == seeded_policy_metadata_db.to_json() async def test_get_cerbos_policy_metadata_missing( local_redis_connector: RedisConnector, policy_metadata_cache_key_absent: None, ) -> None: """Raises CerbosPolicyDBLookupError when the Redis key is absent.""" with pytest.raises( CerbosPolicyDBLookupError, match=CACHE_ENTRY_CERBOS_POLICY_METADATA ): await get_cerbos_policy_metadata(local_redis_connector)