def test_ask_for_approval(self): """Test ask for approval.""" get_input_path = "runway.cfngin.ui.get_raw_input" with patch(get_input_path, return_value="y"): self.assertIsNone(ask_for_approval([], [], None)) for v in ("n", "N", "x", "\n"): with patch(get_input_path, return_value=v): with self.assertRaises(exceptions.CancelExecution): ask_for_approval([], []) with patch(get_input_path, side_effect=["v", "n"]) as mock_get_input: with patch( 'runway.cfngin.providers.aws.default.output_full_changeset' ) as mock_full_changeset: with self.assertRaises(exceptions.CancelExecution): ask_for_approval([], [], True) self.assertEqual(mock_full_changeset.call_count, 1) self.assertEqual(mock_get_input.call_count, 2)
def test_ask_for_approval_with_params_diff(self): """Test ask for approval with params diff.""" get_input_path = "runway.cfngin.ui.get_raw_input" params_diff = [ DictValue('ParamA', None, 'new-param-value'), DictValue('ParamB', 'param-b-old-value', 'param-b-new-value-delta') ] with patch(get_input_path, return_value="y"): self.assertIsNone(ask_for_approval([], params_diff, None)) for v in ("n", "N", "x", "\n"): with patch(get_input_path, return_value=v): with self.assertRaises(exceptions.CancelExecution): ask_for_approval([], params_diff) with patch(get_input_path, side_effect=["v", "n"]) as mock_get_input: with patch( 'runway.cfngin.providers.aws.default.output_full_changeset' ) as mock_full_changeset: with self.assertRaises(exceptions.CancelExecution): ask_for_approval([], params_diff, True) self.assertEqual(mock_full_changeset.call_count, 1) self.assertEqual(mock_get_input.call_count, 2)