-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtest_hooks.py
38 lines (25 loc) · 1.26 KB
/
test_hooks.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
from pytest_httpserver import HTTPServer
import tls_requests
def log_request_return(request):
request.headers["X-Hook"] = '123456'
return request
def log_request_no_return(request):
request.headers["X-Hook"] = '123456'
def log_response_raise_on_4xx_5xx(response):
response.raise_for_status()
def test_request_hook(httpserver: HTTPServer):
httpserver.expect_request("/hooks").respond_with_data(b"OK")
response = tls_requests.get(httpserver.url_for("/hooks"), hooks={"request": [log_request_return]})
assert response.status_code == 200
assert response.request.headers.get("X-Hook") == "123456"
def test_request_hook_no_return(httpserver: HTTPServer):
httpserver.expect_request("/hooks").respond_with_data(b"OK")
response = tls_requests.get(httpserver.url_for("/hooks"), hooks={"request": [log_request_no_return]})
assert response.status_code == 200
assert response.request.headers.get("X-Hook") == "123456"
def test_response_hook(httpserver: HTTPServer):
httpserver.expect_request("/hooks", ).respond_with_data(status=404)
try:
_ = tls_requests.get(httpserver.url_for("/hooks"), hooks={"response": [log_response_raise_on_4xx_5xx]})
except Exception as e:
assert e, tls_requests.exceptions.HTTPError