forked from pypa/pip
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_network_utils.py
36 lines (31 loc) · 1.11 KB
/
test_network_utils.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
import pytest
from pip._internal.exceptions import NetworkConnectionError
from pip._internal.network.utils import raise_for_status
from tests.lib.requests_mocks import MockResponse
@pytest.mark.parametrize(
("status_code", "error_type"),
[
(401, "Client Error"),
(501, "Server Error"),
],
)
def test_raise_for_status_raises_exception(status_code, error_type):
contents = b"downloaded"
resp = MockResponse(contents)
resp.status_code = status_code
resp.url = "http://www.example.com/whatever.tgz"
resp.reason = "Network Error"
with pytest.raises(NetworkConnectionError) as exc:
raise_for_status(resp)
assert str(exc.info) == (
"{} {}: Network Error for url:"
" http://www.example.com/whatever.tgz".format(status_code, error_type)
)
def test_raise_for_status_does_not_raises_exception():
contents = b"downloaded"
resp = MockResponse(contents)
resp.status_code = 201
resp.url = "http://www.example.com/whatever.tgz"
resp.reason = "No error"
return_value = raise_for_status(resp)
assert return_value is None