"""Test secretsmanager connector.""" import json from unittest.mock import MagicMock from unittest.mock import patch import boto3 from moto import mock_secretsmanager import pytest from sales.connectors.secretsmanager import fetch_credentials @mock_secretsmanager def test_get_credentials(): """Test getting credentials.""" client = boto3.client('secretsmanager') original_secret = { 'user': 'foo', 'password': 'bar', 'host': 'baz', 'database': 'qux', 'port': 3306 } client.create_secret(Name='foo', SecretString=json.dumps(original_secret)) response = fetch_credentials('foo') assert response == original_secret @patch('sales.connectors.secretsmanager.boto3') def test_no_secret_string(mock_boto): """Test no secret string in response.""" mock_response = MagicMock({}) mock_client = MagicMock() mock_client.get_secret_value = mock_response mock_boto.client = mock_client with pytest.raises(Exception): fetch_credentials('foo')