2023-04-24 06:51:46 -05:00
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
from botocore . exceptions import ClientError
import pytest
class MockManager :
def __init__ ( self , stub_runner , scenario_data , input_mocker ) :
self . scenario_data = scenario_data
2023-10-18 10:35:05 -07:00
self . service = { " name " : " test-service " , " code " : " service-free-tier " }
self . category = { " name " : " test-category " , " code " : " why-was-i-billed " }
self . severity = { " name " : " test-severity " , " code " : " low " }
self . case_id = " test-case-id "
2023-04-24 06:51:46 -05:00
self . scenario_args = [ self . service , self . category , self . severity ]
answers = [ ]
input_mocker . mock_answers ( answers )
self . stub_runner = stub_runner
def setup_stubs ( self , error , stop_on , stubber ) :
with self . stub_runner ( error , stop_on ) as runner :
2023-10-18 10:35:05 -07:00
runner . add (
stubber . stub_create_case ,
self . service ,
self . category ,
self . severity ,
self . case_id ,
)
2023-04-24 06:51:46 -05:00
@pytest.fixture
def mock_mgr ( stub_runner , scenario_data , input_mocker ) :
return MockManager ( stub_runner , scenario_data , input_mocker )
def test_create_case ( mock_mgr , capsys ) :
mock_mgr . setup_stubs ( None , None , mock_mgr . scenario_data . stubber )
mock_mgr . scenario_data . scenario . create_example_case ( * mock_mgr . scenario_args )
capt = capsys . readouterr ( )
assert mock_mgr . case_id in capt . out
2023-10-18 10:35:05 -07:00
@pytest.mark.parametrize (
" error, stop_on_index " , [ ( " TESTERROR-stub_create_example_case " , 0 ) ]
)
def test_cleanup_error ( mock_mgr , caplog , error , stop_on_index ) :
2023-04-24 06:51:46 -05:00
mock_mgr . setup_stubs ( error , stop_on_index , mock_mgr . scenario_data . stubber )
with pytest . raises ( ClientError ) as exc_info :
mock_mgr . scenario_data . scenario . create_example_case ( * mock_mgr . scenario_args )
2023-10-18 10:35:05 -07:00
assert exc_info . value . response [ " Error " ] [ " Code " ] == error
2023-04-24 06:51:46 -05:00
assert error in caplog . text