import pytest from ....src import auth # Fixture to clear the cache before and after each test @pytest.fixture(autouse=True) def clear_cache(): """Clear the cache before and after each test to prevent side effects.""" clear = auth.get_snowflake_private_key.cache_clear clear() yield clear() def test_get_snowflake_private_key_is_cached(mocker): mock_secret = {auth.AWSPayload.SECRET_STRING: "A mock private key"} patched_secrets_client = mocker.patch.object( auth.client_factories, "new_secrets_manager_client" ) patched_secrets_client.return_value.get_secret_value.return_value = mock_secret for _ in range(3): result = auth.get_snowflake_private_key() expected = mock_secret[auth.AWSPayload.SECRET_STRING] assert ( result == expected ), "Expected the same private key to be returned on subsequent calls" assert ( patched_secrets_client.call_count == 1 ), "Expected one call to the secrets manager client to get the private key (cached)"