File: test_exceptions.py

package info (click to toggle)
python-yalexs 9.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,120 kB
  • sloc: python: 7,916; makefile: 3; sh: 2
file content (55 lines) | stat: -rw-r--r-- 1,626 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from unittest import mock

import pytest
from aiohttp import ClientResponseError

from yalexs.exceptions import (
    AugustApiAIOHTTPError,
    CannotConnect,
    InvalidAuth,
    RequireValidation,
    YaleApiError,
    YaleXSError,
)


def test_exceptions_can_be_empty_for_back_compat():
    assert InvalidAuth()
    assert str(InvalidAuth()) == "InvalidAuth"
    assert YaleApiError()
    assert str(YaleApiError()) == "YaleApiError"
    assert CannotConnect()
    assert str(CannotConnect()) == "CannotConnect"
    assert RequireValidation()
    assert YaleXSError()
    assert AugustApiAIOHTTPError()


def test_august_api_aio_http_error_reraise():
    mock_client_response_error = ClientResponseError(
        mock.MagicMock(),
        mock.MagicMock(),
        status=401,
    )
    ex = AugustApiAIOHTTPError("test", mock_client_response_error)
    assert str(ex) == "test"
    assert ex.auth_failed is True
    assert ex.aiohttp_client_error is mock_client_response_error
    assert ex.args == ("test",)


def test_subclassed_august_api_aio_http_error_reraise():
    mock_client_response_error = ClientResponseError(
        mock.MagicMock(),
        mock.MagicMock(),
        status=401,
    )
    with pytest.raises(InvalidAuth, match="test"):
        try:
            raise YaleApiError("test", mock_client_response_error)
        except AugustApiAIOHTTPError as ex:
            assert str(ex) == "test"
            assert ex.auth_failed is True
            assert ex.aiohttp_client_error is mock_client_response_error
            assert ex.args == ("test",)
            raise InvalidAuth(ex.args[0], ex) from ex