diff --git a/atst/domain/csp/cloud.py b/atst/domain/csp/cloud.py index d4ea39d1..35e7b2bf 100644 --- a/atst/domain/csp/cloud.py +++ b/atst/domain/csp/cloud.py @@ -488,21 +488,21 @@ class AzureCloudProvider(CloudProviderInterface): ) # Create role assignment for - role_assignment_id = uuid.uuid4() + role_assignment_id = str(uuid4()) role_assignment_create_params = auth_client.role_assignments.models.RoleAssignmentCreateParameters( role_definition_id=REMOTE_ROOT_ROLE_DEF_ID, principal_id=managment_principal.id, ) - self.sdk.authorization.models.RoleAssignment = auth_client.role_assignments.create( + auth_client.role_assignments.create( scope=f"/subscriptions/{subscription.id}/", role_assignment_name=role_assignment_id, parameters=role_assignment_create_params, ) return { - "csp_user_id": service_principal.object_id, - "credentials": service_principal.password_credentials, + "csp_user_id": managment_principal.object_id, + "credentials": managment_principal.password_credentials, "role_name": role_assignment_id, } diff --git a/tests/domain/cloud/test_azure_csp.py b/tests/domain/cloud/test_azure_csp.py index 95d6e013..67ca30f9 100644 --- a/tests/domain/cloud/test_azure_csp.py +++ b/tests/domain/cloud/test_azure_csp.py @@ -1,6 +1,8 @@ import pytest from unittest.mock import Mock +from uuid import uuid4 + from atst.domain.csp.cloud import EnvironmentCreationException, AzureCloudProvider from atst.jobs import ( do_create_environment, @@ -13,4 +15,30 @@ from tests.factories import EnvironmentFactory def test_create_environment_succeeds(mock_azure: AzureCloudProvider): - print(mock_azure._get_credential_obj(mock_azure._root_creds)) + environment = EnvironmentFactory.create() + + subscription_id = str(uuid4()) + + mock_azure.sdk.subscription.SubscriptionClient.return_value.subscription_factory.create_subscription.return_value.result.return_value.subscription_link = ( + f"subscriptions/{subscription_id}" + ) + + result = mock_azure.create_environment( + AUTH_CREDENTIALS, environment.creator, environment + ) + + assert result == subscription_id + + +def test_create_atat_admin_user_succeeds(mock_azure: AzureCloudProvider): + environment_id = str(uuid4()) + + csp_user_id = str(uuid4) + + mock_azure.sdk.graphrbac.GraphRbacManagementClient.return_value.service_principals.create.return_value.object_id = ( + csp_user_id + ) + + result = mock_azure.create_atat_admin_user(AUTH_CREDENTIALS, environment_id) + + assert result.get("csp_user_id") == csp_user_id diff --git a/tests/mock_azure.py b/tests/mock_azure.py index a94aad62..d838b506 100644 --- a/tests/mock_azure.py +++ b/tests/mock_azure.py @@ -19,9 +19,7 @@ AUTH_CREDENTIALS = { def mock_subscription(): from azure.mgmt import subscription - sub_mock = Mock(spec=subscription) - - return sub_mock + return Mock(spec=subscription) def mock_authorization(): @@ -39,8 +37,7 @@ def mock_graphrbac(): def mock_credentials(): import azure.common.credentials as credentials - cred_mock = Mock(spec=credentials) - return cred_mock + return Mock(spec=credentials) class MockAzureSDK(object):