urllib3

Форк
0
/
test_exceptions.py 
69 строк · 2.1 Кб
1
from __future__ import annotations
2

3
import pickle
4
from email.errors import MessageDefect
5
from test import DUMMY_POOL
6

7
import pytest
8

9
from urllib3.connection import HTTPConnection
10
from urllib3.connectionpool import HTTPConnectionPool
11
from urllib3.exceptions import (
12
    ClosedPoolError,
13
    ConnectTimeoutError,
14
    EmptyPoolError,
15
    HeaderParsingError,
16
    HostChangedError,
17
    HTTPError,
18
    LocationParseError,
19
    MaxRetryError,
20
    NewConnectionError,
21
    ReadTimeoutError,
22
)
23

24

25
class TestPickle:
26
    @pytest.mark.parametrize(
27
        "exception",
28
        [
29
            HTTPError(None),
30
            MaxRetryError(DUMMY_POOL, "", None),
31
            LocationParseError(""),
32
            ConnectTimeoutError(None),
33
            HTTPError("foo"),
34
            HTTPError("foo", IOError("foo")),
35
            MaxRetryError(HTTPConnectionPool("localhost"), "/", None),
36
            LocationParseError("fake location"),
37
            ClosedPoolError(HTTPConnectionPool("localhost"), ""),
38
            EmptyPoolError(HTTPConnectionPool("localhost"), ""),
39
            HostChangedError(HTTPConnectionPool("localhost"), "/", 0),
40
            ReadTimeoutError(HTTPConnectionPool("localhost"), "/", ""),
41
        ],
42
    )
43
    def test_exceptions(self, exception: Exception) -> None:
44
        result = pickle.loads(pickle.dumps(exception))
45
        assert isinstance(result, type(exception))
46

47

48
class TestFormat:
49
    def test_header_parsing_errors(self) -> None:
50
        hpe = HeaderParsingError([MessageDefect("defects")], "unparsed_data")
51

52
        assert "defects" in str(hpe)
53
        assert "unparsed_data" in str(hpe)
54

55

56
class TestNewConnectionError:
57
    def test_pool_property_deprecation_warning(self) -> None:
58
        err = NewConnectionError(HTTPConnection("localhost"), "test")
59
        with pytest.warns(DeprecationWarning) as records:
60
            err_pool = err.pool
61

62
        assert err_pool is err.conn
63
        msg = (
64
            "The 'pool' property is deprecated and will be removed "
65
            "in urllib3 v2.1.0. Use 'conn' instead."
66
        )
67
        record = records[0]
68
        assert isinstance(record.message, Warning)
69
        assert record.message.args[0] == msg
70

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.