49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
"""Tests for http"""
|
|
|
|
___license___ = "MIT"
|
|
___dependencies___ = ["upip:unittest", "http", "wifi"]
|
|
|
|
import unittest
|
|
from http import *
|
|
import wifi
|
|
|
|
class TestHttp(unittest.TestCase):
|
|
|
|
def setUpClass(self):
|
|
wifi.connect()
|
|
|
|
def test_get_with_https(self):
|
|
with get("https://httpbin.org/get") as response:
|
|
self.assertEqual(response.status, 200)
|
|
print(response.text)
|
|
|
|
def test_get(self):
|
|
with get("http://httpbin.org/get", params={"foo": "bar"}, headers={"accept": "application/json"}) as response:
|
|
self.assertEqual(response.headers["Content-Type"], "application/json")
|
|
self.assertEqual(response.status, 200)
|
|
content = response.json()
|
|
self.assertEqual(content["headers"]["Accept"], "application/json")
|
|
self.assertEqual(content["args"], {"foo":"bar"})
|
|
|
|
def test_post_form(self):
|
|
with post("http://httpbin.org/post", data={"foo": "bar"}).raise_for_status() as response:
|
|
content = response.json()
|
|
self.assertEqual(content["headers"]["Content-Type"], "application/x-www-form-urlencoded")
|
|
self.assertEqual(content["form"], {"foo":"bar"})
|
|
|
|
def test_post_string(self):
|
|
with post("http://httpbin.org/post", data="foobar").raise_for_status() as response:
|
|
content = response.json()
|
|
self.assertEqual(content["headers"]["Content-Type"], "text/plain; charset=UTF-8")
|
|
self.assertEqual(content["data"], "foobar")
|
|
|
|
def test_post_json(self):
|
|
with post("http://httpbin.org/post", json={"foo":"bar"}).raise_for_status() as response:
|
|
content = response.json()
|
|
self.assertEqual(content["headers"]["Content-Type"], "application/json")
|
|
self.assertEqual(content["json"], {"foo":"bar"})
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|