def test_raises_error_codes_multiple(codes): errors = [Error(code=code, message='bam') for code in codes] with raises_error_codes(['TEST', 'AUTH_MISSING']) as exc_info: raise Client.CallActionError( actions=[ActionResponse(action='', errors=errors)]) assert exc_info.soa_errors == errors
def test_raises_error_codes_on_match(test_error): errors = [test_error] with raises_error_codes('TEST') as exc_info: raise Client.CallActionError( actions=[ActionResponse(action='', errors=errors)]) assert exc_info.soa_errors == errors
def test_raises_error_codes_missing(codes): errors = [Error(code=code, message='bam') for code in codes] with pytest.raises(pytest.raises.Exception): with raises_error_codes(['AUTH_MISSING']): raise Client.CallActionError( actions=[ActionResponse(action='', errors=errors)] )
def test_raises_error_codes_unexpected_only(test_error, auth_missing_error): errors = [test_error, auth_missing_error] with pytest.raises(pytest.raises.Exception): with raises_error_codes(['AUTH_MISSING'], only=True): raise Client.CallActionError( actions=[ActionResponse(action='', errors=errors)] )
def assertActionRunsWithErrorCodes(self, action, body, error_codes, only=False, **kwargs): with raises_error_codes(error_codes, only=only): self.call_action(action, body, **kwargs)
def assertActionRunsWithErrorCodes( self, action, # type: six.text_type body, # type: Body error_codes, # type: Union[Iterable[six.text_type], six.text_type] only=False, # type: bool **kwargs # type: Any ): # type: (...) -> None """ Calls `self.call_action` and asserts that it runs with the specified error codes. :param action: The name of the action to call :param body: The request body to send to the action :param error_codes: A single error code or iterable of multiple error codes (all of the specified errors must be present in the response). :param only: If `True` additional errors cause a failure (defaults to `False`, so additional errors are ignored). :param kwargs: Additional keyword arguments to send to :meth:`pysoa.client.client.Client.call_action`. """ with raises_error_codes(error_codes, only=only): self.call_action(action, body, **kwargs)
def test_raises_error_codes_no_error(): with pytest.raises(pytest.raises.Exception): with raises_error_codes(['TEST']): pass