"""Secrets Manager Tests""" from typing import Any, Generator import boto3 import pytest from _pytest.monkeypatch import MonkeyPatch from botocore.stub import Stubber from mypy_boto3_secretsmanager import SecretsManagerClient from jwtauth.testing.secretsmanager import JwtAuthSecretsManager @pytest.fixture def boto_client() -> SecretsManagerClient: return boto3.client("secretsmanager", region_name="us-east-1") @pytest.fixture def stubber(boto_client: SecretsManagerClient) -> Generator[Stubber, Any, None]: """Secrets Manager Stub""" with Stubber(boto_client) as stubber: yield stubber stubber.deactivate() def test_get_secret( monkeypatch: MonkeyPatch, stubber: Stubber, boto_client: SecretsManagerClient ) -> None: """Test JwtAuthSecretsManager.get_secret.""" monkeypatch.setenv("AWS_DEFAULT_REGION", "us-east-1") secret_name = "qa/test-service/MY_SECRET" expected_secret = "super-secret-value" expected_params = {"SecretId": secret_name} stubber.add_response( "get_secret_value", {"SecretString": expected_secret}, expected_params ) stubber.activate() manager = JwtAuthSecretsManager() manager._client = boto_client actual_secret = manager.get_secret(secret_name) assert actual_secret == expected_secret