-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtests.py
61 lines (43 loc) · 1.63 KB
/
tests.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from mock import Mock, patch
from apitopy import Api
@patch("apitopy.requests")
def test_api_http_verbs(requests):
mock_response = Mock(status_code=200, content={"key": "value"})
api = Api("http://example.com/")
for verb in ["GET", "POST", "DELETE"]:
requests_method = getattr(requests, verb.lower())
requests_method.return_value = mock_response
response = getattr(api, verb)("hello")
assert response.status_code == 200
requests_method.assert_called_with(
"http://example.com/hello",
auth=None,
verify=True,
headers={"Accept": "application/json"},
)
@patch("apitopy.requests")
@patch("apitopy._validate")
def test_api_endpoint(_, requests):
api = Api("http://example.com/")
endpoint = api.products[123].items[24]
assert endpoint.path == "products/123/items/24"
@patch("apitopy.requests.get")
def test_api_endpoint_get(requests_get):
mock_response = Mock(status_code=200, json=Mock(return_value={"key": "value"}))
requests_get.return_value = mock_response
api = Api("http://example.com/")
result = api.people.items[24](since="today")
requests_get.assert_called_with(
"http://example.com/people/items/24?since=today",
auth=None,
data=None,
json=None,
verify=True,
headers={"Accept": "application/json"},
)
assert result.key == "value"
def test_api_endpoint_build_url_with_querystring():
api = Api("http://example.com/")
endpoint = api.people.items[24]
result = endpoint.build_url(hello="dolly")
assert result == "people/items/24?hello=dolly"