From 25bedb816dfc2527f85eea19e3eba3fab5dee93d Mon Sep 17 00:00:00 2001 From: richard-dds Date: Wed, 4 Sep 2019 11:25:09 -0400 Subject: [PATCH] Auth create_environment --- atst/domain/csp/cloud.py | 15 ++++++++++++--- tests/domain/test_mock_csp.py | 3 ++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/atst/domain/csp/cloud.py b/atst/domain/csp/cloud.py index b0b46c37..7b67e7d3 100644 --- a/atst/domain/csp/cloud.py +++ b/atst/domain/csp/cloud.py @@ -7,6 +7,10 @@ from atst.models.environment import Environment from atst.models.environment_role import EnvironmentRole +class GeneralCSPException(Exception): + pass + + class CloudProviderInterface: def create_environment( self, auth_credentials: Dict, user: User, environment: Environment @@ -117,10 +121,11 @@ class CloudProviderInterface: class MockCloudProvider(CloudProviderInterface): # TODO: All of these constants - AUTH_EXCEPTION = ValueError("Could not authenticate.") - NETWORK_EXCEPTION = ValueError("Network failure.") + AUTH_EXCEPTION = GeneralCSPException("Authentication failure.") + NETWORK_EXCEPTION = GeneralCSPException("Network failure.") NETWORK_FAILURE_PCT = 12 + ENV_CREATE_FAILURE_PCT = 12 def __init__(self, with_delay=True, with_failure=True): from time import sleep @@ -132,8 +137,12 @@ class MockCloudProvider(CloudProviderInterface): self._random = random def create_environment(self, auth_credentials, user, environment): + self._delay(1, 5) + self._authorize(auth_credentials) + self._delay(1, 5) self._maybe_throw(self.NETWORK_FAILURE_PCT, self.NETWORK_EXCEPTION) + self._maybe_throw(self.ENV_CREATE_FAILURE_PCT, GeneralCSPException("Could not create environment.")) return self._id() @@ -181,5 +190,5 @@ class MockCloudProvider(CloudProviderInterface): return {"username": "mock-cloud", "pass": "shh"} def _authorize(self, credentials): - if credentials != _auth_credentials(): + if credentials != self._auth_credentials(): raise self.AUTH_EXCEPTION diff --git a/tests/domain/test_mock_csp.py b/tests/domain/test_mock_csp.py index 52bb461a..a16b347f 100644 --- a/tests/domain/test_mock_csp.py +++ b/tests/domain/test_mock_csp.py @@ -9,5 +9,6 @@ def mock_csp(): def test_create_environment(mock_csp: MockCloudProvider): - environment_id = mock_csp.create_environment({}, {}, {}) + credentials = mock_csp._auth_credentials() + environment_id = mock_csp.create_environment(credentials, {}, {}) assert isinstance(environment_id, str)