import contextlib import os import sys from unittest import mock import boto3 import pytest from moto import mock_s3 @contextlib.contextmanager def patch_cms_client(): sys.modules["utils.external_clients.cms.client"] = mock.MagicMock() yield @contextlib.contextmanager def patch_db(): sys.modules["db.pg_connector"] = mock.MagicMock() sys.modules["db.es_connector"] = mock.MagicMock() sys.modules["db.sf_connector"] = mock.MagicMock() yield @contextlib.contextmanager def patch_import(): with patch_db(), mock_s3(), patch_cms_client(): yield @pytest.fixture def s3_client(): with mock_s3(): yield boto3.client("s3", region_name=os.environ["S3_BUCKET_REGION"]) @pytest.fixture def s3_bucket(s3_client): bucket_name = os.environ["S3_ARTIFACTS_BUCKET"] s3_client.create_bucket(Bucket=bucket_name) yield bucket_name