import dotenv import pytest from service.db import SchemaPath from service.utils import dbmate SCHEMA_NAME = "c_test_schema" USER_ID = "test_user" CAW = "company" EMAIL = "test@test.com" def pytest_configure(): """We want to pass some variables across couple of test but we don't know them up-front.""" pytest.collection_ids = [] # lets store multiple collections here def mock_send_collection(): return True def mock_get_cognito_user_attributes(): return {} @pytest.fixture(autouse=True) def no_requests(monkeypatch): """Remove requests.sessions.Session.request for all tests.""" monkeypatch.delattr("requests.sessions.Session.request") @pytest.fixture(autouse=True) def replace_send_appsync_collection(monkeypatch): """Uses our mocked connection instead engine""" monkeypatch.setattr( "service.utils.appsync_communication.send_collection", lambda x, y: mock_send_collection(), ) def pytest_sessionstart(session: pytest.Session): """Initialize workspace and management data models""" dotenv.load_dotenv(dotenv_path=".env.test", override=True) dbmate.up(SchemaPath.COMMONS, disable_ssl=True) from service.tasks.data_model import initialize_schema initialize_schema(SCHEMA_NAME, USER_ID, CAW, EMAIL) return True def pytest_sessionfinish(session: pytest.Session, exitstatus): """Drop schemas so we wouldn't have issues due to docker caches etc.""" from service.utils.aws_connectors import run_query run_query(f"DROP SCHEMA {SCHEMA_NAME} CASCADE") for schema in {"commons", "company", "workspace", "alliance"}: run_query(f"DROP SCHEMA {schema} CASCADE")