Skip to content

Commit d29aea2

Browse files
added testcase related to azure credential utils
1 parent ce546f1 commit d29aea2

1 file changed

Lines changed: 91 additions & 0 deletions

File tree

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
from unittest.mock import patch, MagicMock
2+
import pytest
3+
import sys
4+
import os
5+
6+
# Add the backend directory to the Python path
7+
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../backend")))
8+
import helper.azure_credential_utils as azure_credential_utils
9+
10+
@pytest.fixture
11+
def mock_env_vars():
12+
return {
13+
"APP_ENV": "dev"
14+
}
15+
16+
class TestAzureCredentialUtils:
17+
@patch.dict(os.environ, {}, clear=True)
18+
@patch("helper.azure_credential_utils.DefaultAzureCredential")
19+
@patch("helper.azure_credential_utils.ManagedIdentityCredential")
20+
def test_get_azure_credential_dev_env(self, mock_managed_identity_credential, mock_default_azure_credential, mock_env_vars):
21+
"""Test get_azure_credential in dev environment."""
22+
# Arrange
23+
os.environ.update(mock_env_vars)
24+
mock_default_credential = MagicMock()
25+
mock_default_azure_credential.return_value = mock_default_credential
26+
27+
# Act
28+
credential = azure_credential_utils.get_azure_credential()
29+
30+
# Assert
31+
mock_default_azure_credential.assert_called_once()
32+
mock_managed_identity_credential.assert_not_called()
33+
assert credential == mock_default_credential
34+
35+
@patch.dict(os.environ, {}, clear=True)
36+
@patch("helper.azure_credential_utils.DefaultAzureCredential")
37+
@patch("helper.azure_credential_utils.ManagedIdentityCredential")
38+
def test_get_azure_credential_non_dev_env(self, mock_managed_identity_credential, mock_default_azure_credential, mock_env_vars):
39+
"""Test get_azure_credential in non-dev environment."""
40+
# Arrange
41+
mock_env_vars["APP_ENV"] = "prod"
42+
os.environ.update(mock_env_vars)
43+
mock_managed_credential = MagicMock()
44+
mock_managed_identity_credential.return_value = mock_managed_credential
45+
46+
# Act
47+
credential = azure_credential_utils.get_azure_credential(client_id="test-client-id")
48+
49+
# Assert
50+
mock_managed_identity_credential.assert_called_once_with(client_id="test-client-id")
51+
mock_default_azure_credential.assert_not_called()
52+
assert credential == mock_managed_credential
53+
54+
@pytest.mark.asyncio
55+
@patch.dict(os.environ, {}, clear=True)
56+
@patch("helper.azure_credential_utils.AioDefaultAzureCredential")
57+
@patch("helper.azure_credential_utils.AioManagedIdentityCredential")
58+
async def test_get_azure_credential_async_dev_env(self, mock_aio_managed_identity_credential, mock_aio_default_azure_credential, mock_env_vars):
59+
"""Test get_azure_credential_async in dev environment."""
60+
# Arrange
61+
os.environ.update(mock_env_vars)
62+
mock_aio_default_credential = MagicMock()
63+
mock_aio_default_azure_credential.return_value = mock_aio_default_credential
64+
65+
# Act
66+
credential = await azure_credential_utils.get_azure_credential_async()
67+
68+
# Assert
69+
mock_aio_default_azure_credential.assert_called_once()
70+
mock_aio_managed_identity_credential.assert_not_called()
71+
assert credential == mock_aio_default_credential
72+
73+
@pytest.mark.asyncio
74+
@patch.dict(os.environ, {}, clear=True)
75+
@patch("helper.azure_credential_utils.AioDefaultAzureCredential")
76+
@patch("helper.azure_credential_utils.AioManagedIdentityCredential")
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):
78+
"""Test get_azure_credential_async in non-dev environment."""
79+
# Arrange
80+
mock_env_vars["APP_ENV"] = "prod"
81+
os.environ.update(mock_env_vars)
82+
mock_aio_managed_credential = MagicMock()
83+
mock_aio_managed_identity_credential.return_value = mock_aio_managed_credential
84+
85+
# Act
86+
credential = await azure_credential_utils.get_azure_credential_async(client_id="test-client-id")
87+
88+
# Assert
89+
mock_aio_managed_identity_credential.assert_called_once_with(client_id="test-client-id")
90+
mock_aio_default_azure_credential.assert_not_called()
91+
assert credential == mock_aio_managed_credential

0 commit comments

Comments
 (0)