import json from unittest import mock import pytest from app.connectors.ows_preference_center import OwsPreferenceCenterClient @pytest.fixture def ows_client_mock() -> mock.MagicMock: return mock.MagicMock() @pytest.fixture def preference_center_client( ows_client_mock: mock.MagicMock, ) -> OwsPreferenceCenterClient: return OwsPreferenceCenterClient(ows_client=ows_client_mock) def test_encrypt_fan_consent_id( preference_center_client: OwsPreferenceCenterClient, ows_client_mock: mock.MagicMock, ) -> None: mock_response = mock.MagicMock() mock_response.content = json.dumps({"encrypted": "abc123"}).encode() ows_client_mock.post.return_value = mock_response result = preference_center_client.encrypt_fan_consent_id("fan-id-xyz") ows_client_mock.post.assert_called_once_with( "ows-preference-center", "/songwhip/encrypt-fan-consent-id", json={"fanConsentId": "fan-id-xyz"}, ) mock_response.raise_for_status.assert_called_once() assert result == "abc123"