-
-
Notifications
You must be signed in to change notification settings - Fork 883
/
Copy pathtest_transports.py
42 lines (34 loc) · 1.46 KB
/
test_transports.py
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
import pytest
from httpx import AsyncHTTPTransport, HTTPTransport
from httpx._transports.default import _DEFAULT_TRUST_ENV, _DEFAULT_VERIFY
DIFFERENT_VERIFY = {"verify": not _DEFAULT_VERIFY}
DIFFERENT_CERT_ENV = {"cert": ()}
DIFFERENT_TRUST_ENV = {"trust_env": not _DEFAULT_TRUST_ENV}
@pytest.mark.parametrize("transport", [HTTPTransport, AsyncHTTPTransport])
def test_default_ssl_config_cached(transport):
transport_1 = transport()
transport_2 = transport()
assert transport_1._pool._ssl_context is not None
assert transport_2._pool._ssl_context is not None
assert transport_1._pool._ssl_context is transport_2._pool._ssl_context
@pytest.mark.parametrize("transport", [HTTPTransport, AsyncHTTPTransport])
@pytest.mark.parametrize(
("kwargs_1", "kwargs_2"),
[
({}, DIFFERENT_VERIFY),
(DIFFERENT_VERIFY, {}),
(DIFFERENT_VERIFY, DIFFERENT_VERIFY),
({}, DIFFERENT_CERT_ENV),
(DIFFERENT_CERT_ENV, {}),
(DIFFERENT_CERT_ENV, DIFFERENT_CERT_ENV),
({}, DIFFERENT_TRUST_ENV),
(DIFFERENT_TRUST_ENV, {}),
(DIFFERENT_TRUST_ENV, DIFFERENT_TRUST_ENV),
],
)
def test_non_default_ssl_config_not_cached(transport, kwargs_1, kwargs_2):
transport_1 = transport(**kwargs_1)
transport_2 = transport(**kwargs_2)
assert transport_1._pool._ssl_context is not None
assert transport_2._pool._ssl_context is not None
assert transport_1._pool._ssl_context is not transport_2._pool._ssl_context