First pass at mocking and testing azure integration

This commit is contained in:
tomdds
2019-10-28 15:05:44 -04:00
parent 1a92cd35d1
commit 99e306e602
3 changed files with 109 additions and 24 deletions

View File

@@ -0,0 +1,16 @@
import pytest
from unittest.mock import Mock
from atst.domain.csp.cloud import EnvironmentCreationException, AzureCloudProvider
from atst.jobs import (
do_create_environment,
do_create_atat_admin_user,
do_create_environment_baseline,
)
from tests.mock_azure import mock_azure, AUTH_CREDENTIALS
from tests.factories import EnvironmentFactory
def test_create_environment_succeeds(mock_azure: AzureCloudProvider):
print(mock_azure._get_credential_obj(mock_azure._root_creds))

61
tests/mock_azure.py Normal file
View File

@@ -0,0 +1,61 @@
import pytest
from unittest.mock import Mock
from atst.domain.csp.cloud import AzureCloudProvider
AZURE_CONFIG = {
"AZURE_CLIENT_ID": "MOCK",
"AZURE_SECRET_KEY": "MOCK",
"AZURE_TENANT_ID": "MOCK",
}
AUTH_CREDENTIALS = {
"CLIENT_ID": AZURE_CONFIG["AZURE_CLIENT_ID"],
"SECRET_KEY": AZURE_CONFIG["AZURE_SECRET_KEY"],
"TENANT_ID": AZURE_CONFIG["AZURE_TENANT_ID"],
}
def mock_subscription():
from azure.mgmt import subscription
sub_mock = Mock(spec=subscription)
return sub_mock
def mock_authorization():
from azure.mgmt import authorization
return Mock(spec=authorization)
def mock_graphrbac():
import azure.graphrbac as graphrbac
return Mock(spec=graphrbac)
def mock_credentials():
import azure.common.credentials as credentials
cred_mock = Mock(spec=credentials)
return cred_mock
class MockAzureSDK(object):
def __init__(self):
from msrestazure.azure_cloud import AZURE_PUBLIC_CLOUD
self.subscription = mock_subscription()
self.authorization = mock_authorization()
self.graphrbac = mock_graphrbac()
self.credentials = mock_credentials()
# may change to a JEDI cloud
self.cloud = AZURE_PUBLIC_CLOUD
@pytest.fixture(scope="function")
def mock_azure():
return AzureCloudProvider(AZURE_CONFIG, azure_sdk_provider=MockAzureSDK())