示例#1
0
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
示例#2
0
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
示例#3
0
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)]
            )
示例#4
0
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)]
            )
示例#5
0
 def assertActionRunsWithErrorCodes(self,
                                    action,
                                    body,
                                    error_codes,
                                    only=False,
                                    **kwargs):
     with raises_error_codes(error_codes, only=only):
         self.call_action(action, body, **kwargs)
示例#6
0
    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)
示例#7
0
def test_raises_error_codes_no_error():
    with pytest.raises(pytest.raises.Exception):
        with raises_error_codes(['TEST']):
            pass