/ tests / parse_test.py
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