from core_notifications_client import CoreNotificationsClient import pytest class TestCoreNotificationsClient: SERVICE_HOST = "https://notifications.test" CLIENT_ID = "test_client_id" CLIENT_SECRET = "test_client_secret" AUDIENCE = "test_audience" AUTH_HOST = "auth.test" @pytest.fixture def notifications(self, mocker, faker): mocked_get_token = mocker.patch( "atlas_client.client.AtlasClient.get_token" ) mocked_get_token.return_value = faker.pystr() return CoreNotificationsClient( service_host=self.SERVICE_HOST, client_id=self.CLIENT_ID, client_secret=self.CLIENT_SECRET, ) def test_send_email(self, notifications, mocker, faker): test_subject = faker.pystr() test_to = faker.email() test_body = faker.pystr() mocker_post = mocker.patch("requests.request") notifications.send_email(test_subject, test_to, test_body) assert mocker_post.call_args_list == [ mocker.call( url=f"{self.SERVICE_HOST}/api/v1/email/send", method="POST", headers={ "Authorization": f"Bearer " f"{notifications._auth.get_token()}" }, json=[ {"subject": test_subject, "to": test_to, "body": test_body} ], ) ] def test_check_status(self, notifications, mocker, faker): test_id = faker.pystr() mocked_get = mocker.patch("requests.request") notifications.check_status(test_id) assert mocked_get.call_args_list == [ mocker.call( url=f"{self.SERVICE_HOST}/api/v1/email/status/{test_id}", method="GET", headers={ "Authorization": f"Bearer " f"{notifications._auth.get_token()}" }, ) ]