parse_test.py
1 from unittest import mock 2 import mocket 3 import json 4 import adafruit_requests 5 6 ip = "1.2.3.4" 7 host = "httpbin.org" 8 response = {"Date": "July 25, 2019"} 9 encoded = json.dumps(response).encode("utf-8") 10 # Padding here tests the case where a header line is exactly 32 bytes buffered by 11 # aligning the Content-Type header after it. 12 headers = "HTTP/1.0 200 OK\r\npadding: 000\r\nContent-Type: application/json\r\nContent-Length: {}\r\n\r\n".format( 13 len(encoded) 14 ).encode( 15 "utf-8" 16 ) 17 18 19 def test_json(): 20 pool = mocket.MocketPool() 21 pool.getaddrinfo.return_value = ((None, None, None, None, (ip, 80)),) 22 sock = mocket.Mocket(headers + encoded) 23 pool.socket.return_value = sock 24 25 s = adafruit_requests.Session(pool) 26 r = s.get("http://" + host + "/get") 27 sock.connect.assert_called_once_with((ip, 80)) 28 assert r.json() == response