12
12
RESPONSE_HEADERS = b"HTTP/1.0 200 OK\r \n Content-Length: 0\r \n \r \n "
13
13
14
14
15
- def test_json ():
15
+ def test_host ():
16
+ pool = mocket .MocketPool ()
17
+ pool .getaddrinfo .return_value = ((None , None , None , None , (IP , 80 )),)
18
+ sock = mocket .Mocket (RESPONSE_HEADERS )
19
+ pool .socket .return_value = sock
20
+ sent = []
21
+
22
+ def _send (data ):
23
+ sent .append (data ) # pylint: disable=no-member
24
+ return len (data )
25
+
26
+ sock .send .side_effect = _send
27
+
28
+ requests_session = adafruit_requests .Session (pool )
29
+ headers = {}
30
+ requests_session .get ("http://" + HOST + "/get" , headers = headers )
31
+
32
+ sock .connect .assert_called_once_with ((IP , 80 ))
33
+ sent = b"" .join (sent )
34
+ assert b"Host: httpbin.org\r \n " in sent
35
+
36
+
37
+ def test_host_replace ():
38
+ pool = mocket .MocketPool ()
39
+ pool .getaddrinfo .return_value = ((None , None , None , None , (IP , 80 )),)
40
+ sock = mocket .Mocket (RESPONSE_HEADERS )
41
+ pool .socket .return_value = sock
42
+ sent = []
43
+
44
+ def _send (data ):
45
+ sent .append (data ) # pylint: disable=no-member
46
+ return len (data )
47
+
48
+ sock .send .side_effect = _send
49
+
50
+ requests_session = adafruit_requests .Session (pool )
51
+ headers = {"host" : IP }
52
+ requests_session .get ("http://" + HOST + "/get" , headers = headers )
53
+
54
+ sock .connect .assert_called_once_with ((IP , 80 ))
55
+ sent = b"" .join (sent )
56
+ assert b"host: 1.2.3.4\r \n " in sent
57
+ assert b"Host: httpbin.org\r \n " not in sent
58
+ assert sent .lower ().count (b"host:" ) == 1
59
+
60
+
61
+ def test_user_agent ():
62
+ pool = mocket .MocketPool ()
63
+ pool .getaddrinfo .return_value = ((None , None , None , None , (IP , 80 )),)
64
+ sock = mocket .Mocket (RESPONSE_HEADERS )
65
+ pool .socket .return_value = sock
66
+ sent = []
67
+
68
+ def _send (data ):
69
+ sent .append (data ) # pylint: disable=no-member
70
+ return len (data )
71
+
72
+ sock .send .side_effect = _send
73
+
74
+ requests_session = adafruit_requests .Session (pool )
75
+ headers = {}
76
+ requests_session .get ("http://" + HOST + "/get" , headers = headers )
77
+
78
+ sock .connect .assert_called_once_with ((IP , 80 ))
79
+ sent = b"" .join (sent )
80
+ assert b"User-Agent: Adafruit CircuitPython\r \n " in sent
81
+
82
+
83
+ def test_user_agent_replace ():
16
84
pool = mocket .MocketPool ()
17
85
pool .getaddrinfo .return_value = ((None , None , None , None , (IP , 80 )),)
18
86
sock = mocket .Mocket (RESPONSE_HEADERS )
@@ -30,7 +98,55 @@ def _send(data):
30
98
requests_session .get ("http://" + HOST + "/get" , headers = headers )
31
99
32
100
sock .connect .assert_called_once_with ((IP , 80 ))
33
- sent = b"" .join (sent ). lower ()
101
+ sent = b"" .join (sent )
34
102
assert b"user-agent: blinka/1.0.0\r \n " in sent
35
- # The current implementation sends two user agents. Fix it, and uncomment below.
36
- # assert sent.count(b"user-agent:") == 1
103
+ assert b"User-Agent: Adafruit CircuitPython\r \n " not in sent
104
+ assert sent .lower ().count (b"user-agent:" ) == 1
105
+
106
+
107
+ def test_content_type ():
108
+ pool = mocket .MocketPool ()
109
+ pool .getaddrinfo .return_value = ((None , None , None , None , (IP , 80 )),)
110
+ sock = mocket .Mocket (RESPONSE_HEADERS )
111
+ pool .socket .return_value = sock
112
+ sent = []
113
+
114
+ def _send (data ):
115
+ sent .append (data ) # pylint: disable=no-member
116
+ return len (data )
117
+
118
+ sock .send .side_effect = _send
119
+
120
+ requests_session = adafruit_requests .Session (pool )
121
+ headers = {}
122
+ data = {"test" : True }
123
+ requests_session .post ("http://" + HOST + "/get" , data = data , headers = headers )
124
+
125
+ sock .connect .assert_called_once_with ((IP , 80 ))
126
+ sent = b"" .join (sent )
127
+ assert b"Content-Type: application/x-www-form-urlencoded\r \n " in sent
128
+
129
+
130
+ def test_content_type_replace ():
131
+ pool = mocket .MocketPool ()
132
+ pool .getaddrinfo .return_value = ((None , None , None , None , (IP , 80 )),)
133
+ sock = mocket .Mocket (RESPONSE_HEADERS )
134
+ pool .socket .return_value = sock
135
+ sent = []
136
+
137
+ def _send (data ):
138
+ sent .append (data ) # pylint: disable=no-member
139
+ return len (data )
140
+
141
+ sock .send .side_effect = _send
142
+
143
+ requests_session = adafruit_requests .Session (pool )
144
+ headers = {"content-type" : "application/test" }
145
+ data = {"test" : True }
146
+ requests_session .post ("http://" + HOST + "/get" , data = data , headers = headers )
147
+
148
+ sock .connect .assert_called_once_with ((IP , 80 ))
149
+ sent = b"" .join (sent )
150
+ assert b"content-type: application/test\r \n " in sent
151
+ assert b"Content-Type: application/x-www-form-urlencoded\r \n " not in sent
152
+ assert sent .lower ().count (b"content-type:" ) == 1
0 commit comments