1- import unittest
2- from unittest .mock import patch
3-
4- # from config import Config
5- from common .config .config import Config
6-
7-
8- class TestConfigInitialization (unittest .TestCase ):
9- @patch .dict (
10- "os.environ" ,
11- {
12- "AZURE_TENANT_ID" : "test-tenant-id" ,
13- "AZURE_CLIENT_ID" : "test-client-id" ,
14- "AZURE_CLIENT_SECRET" : "test-client-secret" ,
15- "COSMOSDB_DATABASE" : "test-database" ,
16- "COSMOSDB_BATCH_CONTAINER" : "test-batch-container" ,
17- "COSMOSDB_FILE_CONTAINER" : "test-file-container" ,
18- "COSMOSDB_LOG_CONTAINER" : "test-log-container" ,
19- "AZURE_BLOB_CONTAINER_NAME" : "test-blob-container-name" ,
20- "AZURE_BLOB_ACCOUNT_NAME" : "test-blob-account-name" ,
21- },
22- clear = True ,
23- )
24- def test_config_initialization (self ):
25- """Test if all attributes are correctly assigned from environment variables."""
26- config = Config ()
27-
28- # Ensure every attribute is accessed
29- self .assertEqual (config .azure_tenant_id , "test-tenant-id" )
30- self .assertEqual (config .azure_client_id , "test-client-id" )
31- self .assertEqual (config .azure_client_secret , "test-client-secret" )
32-
33- self .assertEqual (config .cosmosdb_endpoint , "test-cosmosdb-endpoint" )
34- self .assertEqual (config .cosmosdb_database , "test-database" )
35- self .assertEqual (config .cosmosdb_batch_container , "test-batch-container" )
36- self .assertEqual (config .cosmosdb_file_container , "test-file-container" )
37- self .assertEqual (config .cosmosdb_log_container , "test-log-container" )
38-
39- self .assertEqual (config .azure_blob_container_name , "test-blob-container-name" )
40- self .assertEqual (config .azure_blob_account_name , "test-blob-account-name" )
41-
42- @patch .dict (
43- "os.environ" ,
44- {
45- "COSMOSDB_ENDPOINT" : "test-cosmosdb-endpoint" ,
46- "COSMOSDB_DATABASE" : "test-database" ,
47- "COSMOSDB_BATCH_CONTAINER" : "test-batch-container" ,
48- "COSMOSDB_FILE_CONTAINER" : "test-file-container" ,
49- "COSMOSDB_LOG_CONTAINER" : "test-log-container" ,
50- },
51- )
52- def test_cosmosdb_config_initialization (self ):
53- config = Config ()
54- self .assertEqual (config .cosmosdb_endpoint , "test-cosmosdb-endpoint" )
55- self .assertEqual (config .cosmosdb_database , "test-database" )
56- self .assertEqual (config .cosmosdb_batch_container , "test-batch-container" )
57- self .assertEqual (config .cosmosdb_file_container , "test-file-container" )
58- self .assertEqual (config .cosmosdb_log_container , "test-log-container" )
59-
60-
61- if __name__ == "__main__" :
62- unittest .main ()
1+ import os
2+ import sys
3+ import pytest
4+
5+ sys .path .insert (0 , os .path .abspath (os .path .join (os .path .dirname (__file__ ), '../../../..' , 'backend' )))
6+
7+ @pytest .fixture (autouse = True )
8+ def clear_env (monkeypatch ):
9+ # Clear environment variables that might affect tests.
10+ keys = [
11+ "AZURE_TENANT_ID" ,
12+ "AZURE_CLIENT_ID" ,
13+ "AZURE_CLIENT_SECRET" ,
14+ "COSMOSDB_ENDPOINT" ,
15+ "COSMOSDB_DATABASE" ,
16+ "COSMOSDB_BATCH_CONTAINER" ,
17+ "COSMOSDB_FILE_CONTAINER" ,
18+ "COSMOSDB_LOG_CONTAINER" ,
19+ "AZURE_BLOB_CONTAINER_NAME" ,
20+ "AZURE_BLOB_ACCOUNT_NAME" ,
21+ ]
22+ for key in keys :
23+ monkeypatch .delenv (key , raising = False )
24+
25+ def test_config_initialization (monkeypatch ):
26+ # Set the full configuration environment variables.
27+ monkeypatch .setenv ("AZURE_TENANT_ID" , "test-tenant-id" )
28+ monkeypatch .setenv ("AZURE_CLIENT_ID" , "test-client-id" )
29+ monkeypatch .setenv ("AZURE_CLIENT_SECRET" , "test-client-secret" )
30+ monkeypatch .setenv ("COSMOSDB_ENDPOINT" , "test-cosmosdb-endpoint" )
31+ monkeypatch .setenv ("COSMOSDB_DATABASE" , "test-database" )
32+ monkeypatch .setenv ("COSMOSDB_BATCH_CONTAINER" , "test-batch-container" )
33+ monkeypatch .setenv ("COSMOSDB_FILE_CONTAINER" , "test-file-container" )
34+ monkeypatch .setenv ("COSMOSDB_LOG_CONTAINER" , "test-log-container" )
35+ monkeypatch .setenv ("AZURE_BLOB_CONTAINER_NAME" , "test-blob-container-name" )
36+ monkeypatch .setenv ("AZURE_BLOB_ACCOUNT_NAME" , "test-blob-account-name" )
37+
38+ # Local import to avoid triggering circular imports during module collection.
39+ from common .config .config import Config
40+ config = Config ()
41+
42+ assert config .azure_tenant_id == "test-tenant-id"
43+ assert config .azure_client_id == "test-client-id"
44+ assert config .azure_client_secret == "test-client-secret"
45+ assert config .cosmosdb_endpoint == "test-cosmosdb-endpoint"
46+ assert config .cosmosdb_database == "test-database"
47+ assert config .cosmosdb_batch_container == "test-batch-container"
48+ assert config .cosmosdb_file_container == "test-file-container"
49+ assert config .cosmosdb_log_container == "test-log-container"
50+ assert config .azure_blob_container_name == "test-blob-container-name"
51+ assert config .azure_blob_account_name == "test-blob-account-name"
52+
53+ def test_cosmosdb_config_initialization (monkeypatch ):
54+ # Set only cosmosdb-related environment variables.
55+ monkeypatch .setenv ("COSMOSDB_ENDPOINT" , "test-cosmosdb-endpoint" )
56+ monkeypatch .setenv ("COSMOSDB_DATABASE" , "test-database" )
57+ monkeypatch .setenv ("COSMOSDB_BATCH_CONTAINER" , "test-batch-container" )
58+ monkeypatch .setenv ("COSMOSDB_FILE_CONTAINER" , "test-file-container" )
59+ monkeypatch .setenv ("COSMOSDB_LOG_CONTAINER" , "test-log-container" )
60+
61+ from common .config .config import Config
62+ config = Config ()
63+
64+ assert config .cosmosdb_endpoint == "test-cosmosdb-endpoint"
65+ assert config .cosmosdb_database == "test-database"
66+ assert config .cosmosdb_batch_container == "test-batch-container"
67+ assert config .cosmosdb_file_container == "test-file-container"
68+ assert config .cosmosdb_log_container == "test-log-container"
69+
70+
0 commit comments