From ad82ad4591cc8bae59b634a8b8101554642fbd8d Mon Sep 17 00:00:00 2001 From: brian Date: Mon, 17 Mar 2025 22:19:14 +0000 Subject: [PATCH] added explicit check for necessary env vars --- .../tests/integration/conftest.py | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/shared/repositories/tests/integration/conftest.py b/shared/repositories/tests/integration/conftest.py index 10d88a6..870dd8c 100644 --- a/shared/repositories/tests/integration/conftest.py +++ b/shared/repositories/tests/integration/conftest.py @@ -37,10 +37,12 @@ if test_env_path.exists(): load_dotenv(test_env_path.as_posix()) # define test environment variables -assert 'MINIO_ENDPOINT' in os.environ, 'MINIO_ENDPOINT not set' -assert 'MINIO_ACCESS_KEY' in os.environ, 'MINIO_ACCESS_KEY not set' -assert 'MINIO_SECRET_KEY' in os.environ, 'MINIO_SECRET_KEY not set' -assert 'MONGO_ENDPOINT' in os.environ, 'MONGO_ENDPOINT not set' +necessary_env_vars = { + 'MINIO_ENDPOINT', + 'MINIO_ACCESS_KEY', + 'MINIO_SECRET_KEY', + 'MONGO_ENDPOINT', +} env_var_map = { 'MINIO_BUCKET_NAME': 'test-bucket', 'MINIO_OBJECT_NAME': 'test-object', @@ -51,15 +53,15 @@ env_var_map = { @pytest.fixture(scope='session', autouse=True) -def populate_env( +def setup_env( request: pytest.FixtureRequest, ) -> None: """Populate environment with variables used for testing.""" - # update env + # check if necessary env vars are set + for key in necessary_env_vars: + assert key in os.environ, f'{key} not set' + # set testing env vars for key, val in env_var_map.items(): - # skip if already set by CI pipeline - if key in os.environ: - continue # set env var os.environ[key] = val @@ -73,7 +75,7 @@ def populate_env( @pytest.fixture(scope='session') def raw_minio_client( - populate_env, + setup_env, ) -> Iterator[minio.Minio]: """Raw Minio client fixture.""" # prepare arguments @@ -105,7 +107,7 @@ def raw_minio_client( @pytest.fixture def minio_client( - populate_env, + setup_env, ) -> Iterator[MinioImplementation]: """MinioImplementation fixture.""" # instantiate and connect client @@ -206,7 +208,7 @@ def image_data_in_minio( @pytest.fixture(scope='session') def image_repo( - populate_env, + setup_env, ) -> Iterator[ImageRepository]: """Image repository fixture.""" # define test environment variables @@ -271,7 +273,7 @@ def model_data_in_minio( @pytest.fixture(scope='session') def model_repo( - populate_env, + setup_env, ) -> Iterator[ModelRepository]: """Model repository fixture.""" repo = ModelRepository() @@ -282,7 +284,7 @@ def model_repo( @pytest.fixture def raw_mongo_client( - populate_env, + setup_env, ) -> Iterator[MongoClient]: """Raw mongo client fixture.""" # prepare arguments @@ -299,7 +301,7 @@ def raw_mongo_client( @pytest.fixture def mongo_client( - populate_env, + setup_env, ) -> Iterator[MongoImplementation]: """MongoImplementation fixture.""" # instantiate and connect client @@ -394,7 +396,7 @@ def visual_communication_data_in_mongo( @pytest.fixture(scope='session') def visual_communication_repo( - populate_env, + setup_env, ) -> Iterator[VisualCommunicationRepository]: """Visual communication repository fixture.""" repo = VisualCommunicationRepository()