-
Notifications
You must be signed in to change notification settings - Fork 41
/
test_https.py
80 lines (57 loc) · 1.94 KB
/
test_https.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import io
import json
import os
import tempfile
import pytest
import requests
from mocket import Mocket, Mocketizer, mocketize
from mocket.mockhttp import Entry
from tests import urlopen
@pytest.fixture
def response():
return {
"integer": 1,
"string": "asd",
"boolean": False,
}
@mocketize
def test_json(response):
url_to_mock = "https://testme.org/json"
Entry.single_register(
Entry.GET,
url_to_mock,
body=json.dumps(response),
headers={"content-type": "application/json"},
)
mocked_response = requests.get(url_to_mock).json()
assert response == mocked_response
mocked_response = json.loads(urlopen(url_to_mock).read().decode("utf-8"))
assert response == mocked_response
recording_directory = tempfile.mkdtemp()
@pytest.mark.skipif('os.getenv("SKIP_TRUE_HTTP", False)')
@mocketize(truesocket_recording_dir=recording_directory)
def test_truesendall_with_recording_https():
url = "https://httpbin.org/ip"
requests.get(url, headers={"Accept": "application/json"})
resp = requests.get(url, headers={"Accept": "application/json"})
assert resp.status_code == 200
dump_filename = os.path.join(
Mocket.get_truesocket_recording_dir(), Mocket.get_namespace() + ".json",
)
with io.open(dump_filename) as f:
responses = json.load(f)
assert len(responses["httpbin.org"]["443"].keys()) == 1
@pytest.mark.skipif('os.getenv("SKIP_TRUE_HTTP", False)')
def test_truesendall_after_mocket_session():
Mocket.enable()
Mocket.disable()
url = "https://httpbin.org/ip"
resp = requests.get(url)
assert resp.status_code == 200
@pytest.mark.skipif('os.getenv("SKIP_TRUE_HTTP", False)')
def test_real_request_session():
session = requests.Session()
url1 = "https://httpbin.org/ip"
url2 = "http://httpbin.org/headers"
with Mocketizer():
assert len(session.get(url1).content) < len(session.get(url2).content)