From cf9684377a67331c4de6beaa735699ce6d7edd89 Mon Sep 17 00:00:00 2001 From: Bryan Strassner Date: Wed, 25 Jul 2018 10:15:53 -0500 Subject: [PATCH] Refactor to use unittest.mock instead of mock Simple refactor to eliminate use of mock library and instead use the built-in library. Change-Id: Id2c176c9c67a9043ea5f54d62044423518a3446b --- .../shipyard_airflow/test-requirements.txt | 1 - .../deployment_group/test_node_lookup.py | 2 +- .../test_document_validator_manager.py | 4 +- .../af_monitoring/test_workflow_api.py | 3 +- .../unit/control/test_action_validators.py | 6 +-- .../tests/unit/control/test_actions_api.py | 19 ++++---- .../tests/unit/control/test_actions_id_api.py | 3 +- .../unit/control/test_actions_steps_id_api.py | 3 +- .../control/test_actions_steps_id_logs_api.py | 4 +- .../test_actions_validations_id_api.py | 3 +- .../tests/unit/control/test_configdocs_api.py | 4 +- .../unit/control/test_configdocs_helper.py | 4 +- .../control/test_rendered_configdocs_api.py | 2 +- .../plugins/test_check_k8s_node_status.py | 2 +- .../test_deployment_configuration_operator.py | 3 +- .../plugins/test_drydock_nodes_operator.py | 26 +++++------ src/bin/shipyard_client/test-requirements.txt | 1 - .../test_shipyard_api_client.py | 2 +- .../unit/cli/commit/test_commit_actions.py | 2 +- .../unit/cli/commit/test_commit_commands.py | 5 ++- .../unit/cli/control/test_control_actions.py | 2 +- .../unit/cli/control/test_control_commands.py | 2 +- .../unit/cli/create/test_create_actions.py | 5 +-- .../unit/cli/create/test_create_commands.py | 3 +- .../cli/describe/test_describe_actions.py | 2 +- .../cli/describe/test_describe_commands.py | 2 +- .../tests/unit/cli/get/test_get_actions.py | 6 +-- .../tests/unit/cli/get/test_get_commands.py | 2 +- .../tests/unit/cli/test_input_checks.py | 45 +++++++++---------- .../tests/unit/cli/test_shipyard_commands.py | 2 +- 30 files changed, 87 insertions(+), 83 deletions(-) diff --git a/src/bin/shipyard_airflow/test-requirements.txt b/src/bin/shipyard_airflow/test-requirements.txt index 4c77065d..89d52046 100644 --- a/src/bin/shipyard_airflow/test-requirements.txt +++ b/src/bin/shipyard_airflow/test-requirements.txt @@ -1,7 +1,6 @@ # Testing pytest==3.4 pytest-cov==2.5.1 -mock==2.0.0 responses==0.8.1 testfixtures==5.1.1 apache-airflow[crypto,celery,postgres,hive,hdfs,jdbc]==1.9.0 diff --git a/src/bin/shipyard_airflow/tests/unit/common/deployment_group/test_node_lookup.py b/src/bin/shipyard_airflow/tests/unit/common/deployment_group/test_node_lookup.py index 800087cc..e08b9deb 100644 --- a/src/bin/shipyard_airflow/tests/unit/common/deployment_group/test_node_lookup.py +++ b/src/bin/shipyard_airflow/tests/unit/common/deployment_group/test_node_lookup.py @@ -14,7 +14,7 @@ """Tests for the default node_lookup provided with the deployment group functionality. """ -import mock +from unittest import mock import pytest diff --git a/src/bin/shipyard_airflow/tests/unit/common/document_validators/test_document_validator_manager.py b/src/bin/shipyard_airflow/tests/unit/common/document_validators/test_document_validator_manager.py index 31de1235..72d75785 100644 --- a/src/bin/shipyard_airflow/tests/unit/common/document_validators/test_document_validator_manager.py +++ b/src/bin/shipyard_airflow/tests/unit/common/document_validators/test_document_validator_manager.py @@ -12,8 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. """Tests for the DocumentValidationManager""" -import mock -from mock import MagicMock +from unittest import mock +from unittest.mock import MagicMock import pytest diff --git a/src/bin/shipyard_airflow/tests/unit/control/af_monitoring/test_workflow_api.py b/src/bin/shipyard_airflow/tests/unit/control/af_monitoring/test_workflow_api.py index f5513e0b..8322b273 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/af_monitoring/test_workflow_api.py +++ b/src/bin/shipyard_airflow/tests/unit/control/af_monitoring/test_workflow_api.py @@ -11,7 +11,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from mock import patch +from unittest.mock import patch + import pytest from shipyard_airflow.control.helpers.workflow_helper import ( diff --git a/src/bin/shipyard_airflow/tests/unit/control/test_action_validators.py b/src/bin/shipyard_airflow/tests/unit/control/test_action_validators.py index bfe86bf8..97498be0 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/test_action_validators.py +++ b/src/bin/shipyard_airflow/tests/unit/control/test_action_validators.py @@ -12,11 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. """Tests for the action validators run when an action is created""" -import mock -from mock import MagicMock -import yaml +from unittest import mock +from unittest.mock import MagicMock import pytest +import yaml from shipyard_airflow.common.deployment_group.errors import ( DeploymentGroupCycleError, diff --git a/src/bin/shipyard_airflow/tests/unit/control/test_actions_api.py b/src/bin/shipyard_airflow/tests/unit/control/test_actions_api.py index 48694cd6..8aa3a68a 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/test_actions_api.py +++ b/src/bin/shipyard_airflow/tests/unit/control/test_actions_api.py @@ -12,14 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. from datetime import datetime -from falcon import testing -from mock import patch -from oslo_config import cfg -import falcon import json import logging -import mock import os +from unittest import mock +from unittest.mock import patch + +import falcon +from falcon import testing +from oslo_config import cfg import pytest import responses @@ -241,7 +242,7 @@ def test_on_get(mock_get_all_actions, mock_authorize): act_resource.on_get(req, resp) mock_authorize.assert_called_once_with( 'workflow_orchestrator:list_actions', context) - mock_get_all_actions.assert_called_once() + assert mock_get_all_actions.call_count == 1 assert resp.body is not None assert resp.status == '200 OK' @@ -406,21 +407,21 @@ def test_create_action_validator_error(): def test_get_all_actions_db(mock_get_all_submitted_actions): act_resource = ActionsResource() act_resource.get_all_actions_db() - mock_get_all_submitted_actions.assert_called() + assert mock_get_all_submitted_actions.called @patch('shipyard_airflow.db.airflow_db.AirflowDbAccess.get_all_dag_runs') def test_get_all_dag_runs_db(mock_get_all_dag_runs): act_resource = ActionsResource() act_resource.get_all_dag_runs_db() - mock_get_all_dag_runs.assert_called() + assert mock_get_all_dag_runs.called @patch('shipyard_airflow.db.airflow_db.AirflowDbAccess.get_all_tasks') def test_get_all_tasks_db(mock_get_all_tasks): act_resource = ActionsResource() act_resource.get_all_tasks_db() - mock_get_all_tasks.assert_called() + assert mock_get_all_tasks.called @patch('shipyard_airflow.db.shipyard_db.ShipyardDbAccess.insert_action') diff --git a/src/bin/shipyard_airflow/tests/unit/control/test_actions_id_api.py b/src/bin/shipyard_airflow/tests/unit/control/test_actions_id_api.py index 4b8441b9..b86ff8ca 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/test_actions_id_api.py +++ b/src/bin/shipyard_airflow/tests/unit/control/test_actions_id_api.py @@ -12,7 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. from datetime import datetime -import mock +from unittest import mock + import pytest from shipyard_airflow.control.action.actions_id_api import (ActionsIdResource) diff --git a/src/bin/shipyard_airflow/tests/unit/control/test_actions_steps_id_api.py b/src/bin/shipyard_airflow/tests/unit/control/test_actions_steps_id_api.py index 7a282f51..23fd0c15 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/test_actions_steps_id_api.py +++ b/src/bin/shipyard_airflow/tests/unit/control/test_actions_steps_id_api.py @@ -11,8 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from mock import patch from datetime import datetime +from unittest.mock import patch + import pytest from shipyard_airflow.errors import ApiError diff --git a/src/bin/shipyard_airflow/tests/unit/control/test_actions_steps_id_logs_api.py b/src/bin/shipyard_airflow/tests/unit/control/test_actions_steps_id_logs_api.py index ebabc716..3afc977d 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/test_actions_steps_id_logs_api.py +++ b/src/bin/shipyard_airflow/tests/unit/control/test_actions_steps_id_logs_api.py @@ -11,9 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import mock from datetime import datetime -from mock import patch +from unittest import mock +from unittest.mock import patch from shipyard_airflow.control.action.actions_steps_id_logs_api import \ ActionsStepsLogsResource diff --git a/src/bin/shipyard_airflow/tests/unit/control/test_actions_validations_id_api.py b/src/bin/shipyard_airflow/tests/unit/control/test_actions_validations_id_api.py index a082fece..359f880a 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/test_actions_validations_id_api.py +++ b/src/bin/shipyard_airflow/tests/unit/control/test_actions_validations_id_api.py @@ -11,7 +11,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from mock import patch +from unittest.mock import patch + import pytest from shipyard_airflow.control.action.actions_validations_id_api import \ diff --git a/src/bin/shipyard_airflow/tests/unit/control/test_configdocs_api.py b/src/bin/shipyard_airflow/tests/unit/control/test_configdocs_api.py index cf93f18f..7704dc5c 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/test_configdocs_api.py +++ b/src/bin/shipyard_airflow/tests/unit/control/test_configdocs_api.py @@ -13,8 +13,8 @@ # limitations under the License. """ Tests for the configdocs_api""" import json -import mock -from mock import ANY, patch +from unittest import mock +from unittest.mock import ANY, patch import pytest diff --git a/src/bin/shipyard_airflow/tests/unit/control/test_configdocs_helper.py b/src/bin/shipyard_airflow/tests/unit/control/test_configdocs_helper.py index e3846254..4b9e6c2e 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/test_configdocs_helper.py +++ b/src/bin/shipyard_airflow/tests/unit/control/test_configdocs_helper.py @@ -12,12 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. import json -import mock +from unittest import mock from unittest.mock import patch -import yaml import pytest import responses +import yaml from .fake_response import FakeResponse from shipyard_airflow.control.base import ShipyardRequestContext diff --git a/src/bin/shipyard_airflow/tests/unit/control/test_rendered_configdocs_api.py b/src/bin/shipyard_airflow/tests/unit/control/test_rendered_configdocs_api.py index a0e94abb..91286161 100644 --- a/src/bin/shipyard_airflow/tests/unit/control/test_rendered_configdocs_api.py +++ b/src/bin/shipyard_airflow/tests/unit/control/test_rendered_configdocs_api.py @@ -11,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from mock import patch +from unittest.mock import patch import pytest diff --git a/src/bin/shipyard_airflow/tests/unit/plugins/test_check_k8s_node_status.py b/src/bin/shipyard_airflow/tests/unit/plugins/test_check_k8s_node_status.py index 0f59794d..11c06ad7 100644 --- a/src/bin/shipyard_airflow/tests/unit/plugins/test_check_k8s_node_status.py +++ b/src/bin/shipyard_airflow/tests/unit/plugins/test_check_k8s_node_status.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. """Tests for check_k8s_node_status functions""" -import mock +from unittest import mock from shipyard_airflow.plugins.check_k8s_node_status import ( check_node_status diff --git a/src/bin/shipyard_airflow/tests/unit/plugins/test_deployment_configuration_operator.py b/src/bin/shipyard_airflow/tests/unit/plugins/test_deployment_configuration_operator.py index 15434a93..62c67c1e 100644 --- a/src/bin/shipyard_airflow/tests/unit/plugins/test_deployment_configuration_operator.py +++ b/src/bin/shipyard_airflow/tests/unit/plugins/test_deployment_configuration_operator.py @@ -11,7 +11,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import mock +from unittest import mock + import pytest import yaml diff --git a/src/bin/shipyard_airflow/tests/unit/plugins/test_drydock_nodes_operator.py b/src/bin/shipyard_airflow/tests/unit/plugins/test_drydock_nodes_operator.py index bd9af71c..99098d09 100644 --- a/src/bin/shipyard_airflow/tests/unit/plugins/test_drydock_nodes_operator.py +++ b/src/bin/shipyard_airflow/tests/unit/plugins/test_drydock_nodes_operator.py @@ -13,11 +13,11 @@ # limitations under the License. """Tests for drydock_nodes operator functions""" import copy -import mock import os -import yaml +from unittest import mock import pytest +import yaml from airflow.exceptions import AirflowException @@ -274,9 +274,9 @@ class TestDrydockNodesOperator: ) op.design_ref = {} op.do_execute() - get_dgm.assert_called_once() - nl.assert_called_once() - pdg.assert_called_once() + assert get_dgm.call_count == 1 + assert nl.call_count == 1 + assert pdg.call_count == 1 assert "critical groups have met their success criteria" in caplog.text @mock.patch("shipyard_airflow.plugins.drydock_nodes." @@ -297,9 +297,9 @@ class TestDrydockNodesOperator: op.design_ref = {} op.do_execute() - get_dgm.assert_called_once() - nl.assert_called_once() - pdg.assert_called_once() + assert get_dgm.call_count == 1 + assert nl.call_count == 1 + assert pdg.call_count == 1 def test_execute_prepare(self): op = DrydockNodesOperator(main_dag_name="main", @@ -313,7 +313,7 @@ class TestDrydockNodesOperator: group = DeploymentGroup(GROUP_DICT, mock.MagicMock()) group.actionable_nodes = ['node1', 'node2', 'node3'] op._execute_prepare(group) - op._execute_task.assert_called_once() + assert op._execute_task.call_count == 1 @mock.patch("shipyard_airflow.plugins.check_k8s_node_status." "check_node_status", return_value=[]) @@ -330,8 +330,8 @@ class TestDrydockNodesOperator: group = DeploymentGroup(GROUP_DICT, mock.MagicMock()) group.actionable_nodes = ['node1', 'node2', 'node3'] op._execute_deployment(group) - op._execute_task.assert_called_once() - cns.assert_called_once() + assert op._execute_task.call_count == 1 + assert cns.call_count == 1 @mock.patch("shipyard_airflow.plugins.check_k8s_node_status." "check_node_status", return_value=['node2', 'node4']) @@ -348,8 +348,8 @@ class TestDrydockNodesOperator: group = DeploymentGroup(GROUP_DICT, mock.MagicMock()) group.actionable_nodes = ['node1', 'node2', 'node3'] task_res = op._execute_deployment(group) - op._execute_task.assert_called_once() - cns.assert_called_once() + assert op._execute_task.call_count == 1 + assert cns.call_count == 1 assert 'node4 failed to join Kubernetes' in caplog.text assert len(task_res.successes) == 2 diff --git a/src/bin/shipyard_client/test-requirements.txt b/src/bin/shipyard_client/test-requirements.txt index 96d33dff..e280508d 100644 --- a/src/bin/shipyard_client/test-requirements.txt +++ b/src/bin/shipyard_client/test-requirements.txt @@ -1,7 +1,6 @@ # Testing pytest==3.4 pytest-cov==2.5.1 -mock==2.0.0 responses==0.8.1 testfixtures==5.1.1 diff --git a/src/bin/shipyard_client/tests/unit/apiclient_test/test_shipyard_api_client.py b/src/bin/shipyard_client/tests/unit/apiclient_test/test_shipyard_api_client.py index 1e43816e..f4d54ae3 100644 --- a/src/bin/shipyard_client/tests/unit/apiclient_test/test_shipyard_api_client.py +++ b/src/bin/shipyard_client/tests/unit/apiclient_test/test_shipyard_api_client.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. import json -import mock +from unittest import mock from shipyard_client.api_client.base_client import BaseClient from shipyard_client.api_client.shipyard_api_client import ShipyardClient diff --git a/src/bin/shipyard_client/tests/unit/cli/commit/test_commit_actions.py b/src/bin/shipyard_client/tests/unit/cli/commit/test_commit_actions.py index f959a3c3..079e24a3 100644 --- a/src/bin/shipyard_client/tests/unit/cli/commit/test_commit_actions.py +++ b/src/bin/shipyard_client/tests/unit/cli/commit/test_commit_actions.py @@ -11,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import mock +from unittest import mock import responses diff --git a/src/bin/shipyard_client/tests/unit/cli/commit/test_commit_commands.py b/src/bin/shipyard_client/tests/unit/cli/commit/test_commit_commands.py index 1d66b3de..d65804ab 100644 --- a/src/bin/shipyard_client/tests/unit/cli/commit/test_commit_commands.py +++ b/src/bin/shipyard_client/tests/unit/cli/commit/test_commit_commands.py @@ -11,9 +11,10 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import mock +from unittest import mock +from unittest.mock import patch, ANY + from click.testing import CliRunner -from mock import patch, ANY from shipyard_client.cli.commit.actions import CommitConfigdocs from shipyard_client.cli.commands import shipyard diff --git a/src/bin/shipyard_client/tests/unit/cli/control/test_control_actions.py b/src/bin/shipyard_client/tests/unit/cli/control/test_control_actions.py index 63014c0c..7192b8f7 100644 --- a/src/bin/shipyard_client/tests/unit/cli/control/test_control_actions.py +++ b/src/bin/shipyard_client/tests/unit/cli/control/test_control_actions.py @@ -11,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import mock +from unittest import mock import responses diff --git a/src/bin/shipyard_client/tests/unit/cli/control/test_control_commands.py b/src/bin/shipyard_client/tests/unit/cli/control/test_control_commands.py index d6fb4377..7451c424 100644 --- a/src/bin/shipyard_client/tests/unit/cli/control/test_control_commands.py +++ b/src/bin/shipyard_client/tests/unit/cli/control/test_control_commands.py @@ -11,9 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from unittest.mock import patch, ANY from click.testing import CliRunner -from mock import patch, ANY from shipyard_client.cli.control.actions import Control from shipyard_client.cli.commands import shipyard diff --git a/src/bin/shipyard_client/tests/unit/cli/create/test_create_actions.py b/src/bin/shipyard_client/tests/unit/cli/create/test_create_actions.py index 813ef848..5fa71f82 100644 --- a/src/bin/shipyard_client/tests/unit/cli/create/test_create_actions.py +++ b/src/bin/shipyard_client/tests/unit/cli/create/test_create_actions.py @@ -11,11 +11,10 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - -import mock -import yaml +from unittest import mock import responses +import yaml from shipyard_client.api_client.base_client import BaseClient from shipyard_client.cli.create.actions import CreateAction diff --git a/src/bin/shipyard_client/tests/unit/cli/create/test_create_commands.py b/src/bin/shipyard_client/tests/unit/cli/create/test_create_commands.py index da6526a1..c315d93e 100644 --- a/src/bin/shipyard_client/tests/unit/cli/create/test_create_commands.py +++ b/src/bin/shipyard_client/tests/unit/cli/create/test_create_commands.py @@ -11,8 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from unittest.mock import patch, ANY + from click.testing import CliRunner -from mock import patch, ANY from shipyard_client.cli.create.actions import CreateAction, CreateConfigdocs from shipyard_client.cli.commands import shipyard diff --git a/src/bin/shipyard_client/tests/unit/cli/describe/test_describe_actions.py b/src/bin/shipyard_client/tests/unit/cli/describe/test_describe_actions.py index c9b414dc..907938bd 100644 --- a/src/bin/shipyard_client/tests/unit/cli/describe/test_describe_actions.py +++ b/src/bin/shipyard_client/tests/unit/cli/describe/test_describe_actions.py @@ -11,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import mock +from unittest import mock import responses diff --git a/src/bin/shipyard_client/tests/unit/cli/describe/test_describe_commands.py b/src/bin/shipyard_client/tests/unit/cli/describe/test_describe_commands.py index 91990017..a56dd17e 100644 --- a/src/bin/shipyard_client/tests/unit/cli/describe/test_describe_commands.py +++ b/src/bin/shipyard_client/tests/unit/cli/describe/test_describe_commands.py @@ -11,9 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from unittest.mock import patch, ANY from click.testing import CliRunner -from mock import patch, ANY from shipyard_client.cli.describe.actions import DescribeAction from shipyard_client.cli.describe.actions import DescribeStep diff --git a/src/bin/shipyard_client/tests/unit/cli/get/test_get_actions.py b/src/bin/shipyard_client/tests/unit/cli/get/test_get_actions.py index 3f8d1877..c42519d9 100644 --- a/src/bin/shipyard_client/tests/unit/cli/get/test_get_actions.py +++ b/src/bin/shipyard_client/tests/unit/cli/get/test_get_actions.py @@ -11,11 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import mock -from mock import patch -import pytest +from unittest import mock +from unittest.mock import patch import responses +import pytest from shipyard_client.api_client.base_client import BaseClient from shipyard_client.cli import cli_format_common diff --git a/src/bin/shipyard_client/tests/unit/cli/get/test_get_commands.py b/src/bin/shipyard_client/tests/unit/cli/get/test_get_commands.py index 58658003..52f1048d 100644 --- a/src/bin/shipyard_client/tests/unit/cli/get/test_get_commands.py +++ b/src/bin/shipyard_client/tests/unit/cli/get/test_get_commands.py @@ -11,9 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from unittest.mock import patch, ANY from click.testing import CliRunner -from mock import patch, ANY from shipyard_client.cli.get.actions import ( GetActions, GetConfigdocs, GetConfigdocsStatus, GetRenderedConfigdocs, diff --git a/src/bin/shipyard_client/tests/unit/cli/test_input_checks.py b/src/bin/shipyard_client/tests/unit/cli/test_input_checks.py index 14d00c91..cc5fbbc5 100644 --- a/src/bin/shipyard_client/tests/unit/cli/test_input_checks.py +++ b/src/bin/shipyard_client/tests/unit/cli/test_input_checks.py @@ -11,15 +11,14 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -"""Unit tests for input_checks helper module""" -from unittest.mock import Mock +from unittest import mock from shipyard_client.cli import input_checks def test_check_workflow_id_valid(): """Check that a valid formatted id passes""" - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) input_checks.check_workflow_id( ctx, 'something__2017-01-01T12:34:56.000000') ctx.fail.assert_not_called() @@ -32,7 +31,7 @@ def test_check_workflow_id_valid_tricky(): date if the code is not properly set up to separate the date first. """ - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) input_checks.check_workflow_id( ctx, '2017-01-01T12:34:99.000__2017-01-01T12:34:56.000000') ctx.fail.assert_not_called() @@ -40,7 +39,7 @@ def test_check_workflow_id_valid_tricky(): def test_check_workflow_id_no_date(): """Check tha a missing date portion of the string is rejected.""" - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_workflow_id(ctx, 'something__') except Exception: @@ -52,7 +51,7 @@ def test_check_workflow_id_no_date(): def test_check_workflow_id_none(): """Check that the workflow id check invokes the context.fail on None""" - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_workflow_id( ctx, None) @@ -64,7 +63,7 @@ def test_check_workflow_id_none(): def test_check_workflow_id_invalid_separator(): """Check that the separator check invokes the context.fail""" - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_workflow_id( ctx, 'something20170101T12:34:56.000000') @@ -76,7 +75,7 @@ def test_check_workflow_id_invalid_separator(): def test_check_workflow_id_invalid_date(): """Check that the date format check invokes the context.fail""" - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_workflow_id( ctx, 'something__blah0101 12:34:56.000000') @@ -88,7 +87,7 @@ def test_check_workflow_id_invalid_date(): def test_check_workflow_id_invalid_date_format(): """Check that the date format check invokes the context.fail""" - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_workflow_id( ctx, 'something__2017-01-01T12:34:56') @@ -99,13 +98,13 @@ def test_check_workflow_id_invalid_date_format(): def test_check_id_valid(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) input_checks.check_id(ctx, "12345678901234567890123456") ctx.fail.assert_not_called() def test_check_id_too_long(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_id(ctx, "TOOLONGTOOLONGTOOLONGTOOLONGTOOLONG") except Exception: @@ -115,7 +114,7 @@ def test_check_id_too_long(): def test_check_id_too_short(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_id(ctx, "TOOSHORT") except Exception: @@ -125,7 +124,7 @@ def test_check_id_too_short(): def test_check_id_bad_chars(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_id(ctx, "_ARENOTALLOWED-") except Exception: @@ -135,7 +134,7 @@ def test_check_id_bad_chars(): def test_check_id_none(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_id(ctx, None) except Exception: @@ -145,7 +144,7 @@ def test_check_id_none(): def test_check_control_action_valid(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) input_checks.check_control_action(ctx, 'pause') input_checks.check_control_action(ctx, 'unpause') input_checks.check_control_action(ctx, 'stop') @@ -153,7 +152,7 @@ def test_check_control_action_valid(): def test_check_control_action_invalid(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_control_action(ctx, 'completely_bogus') except Exception: @@ -163,7 +162,7 @@ def test_check_control_action_invalid(): def test_check_control_action_none(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_control_action(ctx, None) except Exception: @@ -173,7 +172,7 @@ def test_check_control_action_none(): def test_check_action_commands(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) input_checks.check_action_command(ctx, 'deploy_site') input_checks.check_action_command(ctx, 'update_site') input_checks.check_action_command(ctx, 'update_software') @@ -182,7 +181,7 @@ def test_check_action_commands(): def test_check_action_commands_invalid(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_action_command(ctx, "burger_and_fries") except Exception: @@ -192,7 +191,7 @@ def test_check_action_commands_invalid(): def test_check_action_commands_none(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) try: input_checks.check_action_command(ctx, None) except Exception: @@ -202,7 +201,7 @@ def test_check_action_commands_none(): def test_check_reformat_parameter_valid(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) param = ['this=that'] input_checks.check_reformat_parameter(ctx, param) param = [] @@ -219,7 +218,7 @@ def test_check_reformat_parameter_valid(): def test_check_reformat_parameter_no_equals_second(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) param = ['this=that', 'someanother'] try: input_checks.check_reformat_parameter(ctx, param) @@ -230,7 +229,7 @@ def test_check_reformat_parameter_no_equals_second(): def test_check_reformat_parameter_no_equals_first(): - ctx = Mock(side_effect=Exception("failed")) + ctx = mock.Mock(side_effect=Exception("failed")) param = ['thisthat', 'some=another'] try: input_checks.check_reformat_parameter(ctx, param) diff --git a/src/bin/shipyard_client/tests/unit/cli/test_shipyard_commands.py b/src/bin/shipyard_client/tests/unit/cli/test_shipyard_commands.py index 2ee83745..8982893c 100644 --- a/src/bin/shipyard_client/tests/unit/cli/test_shipyard_commands.py +++ b/src/bin/shipyard_client/tests/unit/cli/test_shipyard_commands.py @@ -11,9 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from unittest.mock import patch from click.testing import CliRunner -from mock import patch from shipyard_client.cli.commands import shipyard from shipyard_client.api_client.shipyardclient_context import \