Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/azure-cli-testsdk/azure/cli/testsdk/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@
from azure_devtools.scenario_tests import (IntegrationTestBase, ReplayableTest, SubscriptionRecordingProcessor,
OAuthRequestResponsesFilter, LargeRequestBodyProcessor,
LargeResponseBodyProcessor, LargeResponseBodyReplacer, RequestUrlNormalizer,
live_only, DeploymentNameReplacer, patch_time_sleep_api, create_random_name)
live_only, DeploymentNameReplacer, create_random_name)

from azure_devtools.scenario_tests.const import MOCKED_SUBSCRIPTION_ID, ENV_SKIP_ASSERT

from .patches import (patch_load_cached_subscriptions, patch_main_exception_handler,
patch_retrieve_token_for_user, patch_long_run_operation_delay,
patch_progress_controller, patch_get_current_system_username)
patch_progress_controller, patch_get_current_system_username, patch_time_sleep_api)
from .exceptions import CliExecutionError
from .utilities import find_recording_dir, StorageAccountKeyReplacer, GraphClientPasswordReplacer, GeneralNameReplacer
from .reverse_dependency import get_dummy_cli
Expand Down
24 changes: 23 additions & 1 deletion src/azure-cli-testsdk/azure/cli/testsdk/patches.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,21 @@
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

from azure_devtools.scenario_tests import mock_in_unit_test
from azure_devtools.scenario_tests.const import MOCKED_SUBSCRIPTION_ID, MOCKED_TENANT_ID
from azure_devtools.scenario_tests.exceptions import AzureTestError

from .exceptions import CliExecutionError

MOCKED_USER_NAME = 'example@example.com'


def patch_time_sleep_api(unit_test):
def _time_sleep_skip(*_):
return

mock_in_unit_test(unit_test, 'time.sleep', _time_sleep_skip)


def patch_progress_controller(unit_test):
def _mock_pass(*args, **kwargs): # pylint: disable=unused-argument
pass
Expand Down Expand Up @@ -95,3 +102,18 @@ def _get_current_system_username(*args, **kwargs): # pylint: disable=unused-arg
return create_random_name(prefix='example_')

mock_in_unit_test(unit_test, 'azure.cli.core.local_context._get_current_system_username', _get_current_system_username)


def mock_in_unit_test(unit_test, target, replacement):
try:
import unittest.mock as mock
except ImportError:
import mock
import unittest

if not isinstance(unit_test, unittest.TestCase):
raise AzureTestError('Patches can be only called from a unit test')

mp = mock.patch(target, replacement)
mp.__enter__()
unit_test.addCleanup(mp.__exit__, None, None, None)
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ def tearDown(self):
local_folder = self.kwargs.get('local_folder', None)
if local_folder and os.path.exists(local_folder):
rmtree(local_folder)
self.mp.__exit__()
self.mp.__exit__(None, None, None)
return super(DataLakeStoreFileScenarioTest, self).tearDown()

@ResourceGroupPreparer(name_prefix='cls_test_adls_file')
Expand Down