77
88import helpers .azure_credential_utils as azure_credential_utils
99
10+ @pytest .fixture
11+ def mock_env_vars ():
12+ return {
13+ "app_env" : "dev"
14+ }
15+
1016class TestAzureCredentialUtils :
11- @patch ( "helpers.azure_credential_utils.Config" )
17+ @patch . dict ( os . environ , clear = True )
1218 @patch ("helpers.azure_credential_utils.DefaultAzureCredential" )
1319 @patch ("helpers.azure_credential_utils.ManagedIdentityCredential" )
14- def test_get_azure_credential_dev_env (self , mock_managed_identity_credential , mock_default_azure_credential , mock_config ):
20+ def test_get_azure_credential_dev_env (self , mock_managed_identity_credential , mock_default_azure_credential , mock_env_vars ):
1521 """Test get_azure_credential in dev environment."""
1622 # Arrange
17- mock_config_instance = MagicMock ()
18- mock_config_instance .app_env = "dev"
19- mock_config .return_value = mock_config_instance
20-
23+ os .environ .update (mock_env_vars )
2124 mock_default_credential = MagicMock ()
2225 mock_default_azure_credential .return_value = mock_default_credential
2326
2427 # Act
2528 credential = azure_credential_utils .get_azure_credential ()
2629
2730 # Assert
28- mock_config .assert_called_once ()
2931 mock_default_azure_credential .assert_called_once ()
3032 mock_managed_identity_credential .assert_not_called ()
3133 assert credential == mock_default_credential
3234
33- @patch ( "helpers.azure_credential_utils.Config" )
35+ @patch . dict ( os . environ , clear = True )
3436 @patch ("helpers.azure_credential_utils.DefaultAzureCredential" )
3537 @patch ("helpers.azure_credential_utils.ManagedIdentityCredential" )
36- def test_get_azure_credential_non_dev_env (self , mock_managed_identity_credential , mock_default_azure_credential , mock_config ):
38+ def test_get_azure_credential_non_dev_env (self , mock_managed_identity_credential , mock_default_azure_credential , mock_env_vars ):
3739 """Test get_azure_credential in non-dev environment."""
3840 # Arrange
39- mock_config_instance = MagicMock ()
40- mock_config_instance .app_env = "Prod"
41- mock_config .return_value = mock_config_instance
42-
41+ mock_env_vars ["app_env" ] = "prod"
42+ os .environ .update (mock_env_vars )
4343 mock_managed_credential = MagicMock ()
4444 mock_managed_identity_credential .return_value = mock_managed_credential
4545
4646 # Act
4747 credential = azure_credential_utils .get_azure_credential (client_id = "test-client-id" )
4848
4949 # Assert
50- mock_config .assert_called_once ()
5150 mock_managed_identity_credential .assert_called_once_with (client_id = "test-client-id" )
5251 mock_default_azure_credential .assert_not_called ()
5352 assert credential == mock_managed_credential
5453
5554 @pytest .mark .asyncio
56- @patch ( "helpers.azure_credential_utils.Config" )
55+ @patch . dict ( os . environ , clear = True )
5756 @patch ("helpers.azure_credential_utils.AioDefaultAzureCredential" )
5857 @patch ("helpers.azure_credential_utils.AioManagedIdentityCredential" )
59- async def test_get_azure_credential_async_dev_env (self , mock_aio_managed_identity_credential , mock_aio_default_azure_credential , mock_config ):
58+ async def test_get_azure_credential_async_dev_env (self , mock_aio_managed_identity_credential , mock_aio_default_azure_credential , mock_env_vars ):
6059 """Test get_azure_credential_async in dev environment."""
6160 # Arrange
62- mock_config_instance = MagicMock ()
63- mock_config_instance .app_env = "dev"
64- mock_config .return_value = mock_config_instance
65-
61+ os .environ .update (mock_env_vars )
6662 mock_aio_default_credential = MagicMock ()
6763 mock_aio_default_azure_credential .return_value = mock_aio_default_credential
6864
6965 # Act
7066 credential = await azure_credential_utils .get_azure_credential_async ()
7167
7268 # Assert
73- mock_config .assert_called_once ()
7469 mock_aio_default_azure_credential .assert_called_once ()
7570 mock_aio_managed_identity_credential .assert_not_called ()
7671 assert credential == mock_aio_default_credential
7772
7873 @pytest .mark .asyncio
79- @patch ( "helpers.azure_credential_utils.Config" )
74+ @patch . dict ( os . environ , clear = True )
8075 @patch ("helpers.azure_credential_utils.AioDefaultAzureCredential" )
8176 @patch ("helpers.azure_credential_utils.AioManagedIdentityCredential" )
82- async def test_get_azure_credential_async_non_dev_env (self , mock_aio_managed_identity_credential , mock_aio_default_azure_credential , mock_config ):
77+ async def test_get_azure_credential_async_non_dev_env (self , mock_aio_managed_identity_credential , mock_aio_default_azure_credential , mock_env_vars ):
8378 """Test get_azure_credential_async in non-dev environment."""
8479 # Arrange
85- mock_config_instance = MagicMock ()
86- mock_config_instance .app_env = "Prod"
87- mock_config .return_value = mock_config_instance
88-
80+ mock_env_vars ["app_env" ] = "prod"
81+ os .environ .update (mock_env_vars )
8982 mock_aio_managed_credential = MagicMock ()
9083 mock_aio_managed_identity_credential .return_value = mock_aio_managed_credential
9184
9285 # Act
9386 credential = await azure_credential_utils .get_azure_credential_async (client_id = "test-client-id" )
9487
9588 # Assert
96- mock_config .assert_called_once ()
9789 mock_aio_managed_identity_credential .assert_called_once_with (client_id = "test-client-id" )
9890 mock_aio_default_azure_credential .assert_not_called ()
9991 assert credential == mock_aio_managed_credential
0 commit comments