3dc324d3f1
This adds the Python files in the tests/ directory to be formatted with ./tools/codeformat.py. The basics/ subdirectory is excluded for now so we aren't changing too much at once. In a few places `# fmt: off`/`# fmt: on` was used where the code had special formatting for readability or where the test was actually testing the specific formatting.
61 lines
1.2 KiB
Python
61 lines
1.2 KiB
Python
try:
|
|
import usocket as _socket
|
|
except:
|
|
import _socket
|
|
try:
|
|
import ussl as ssl
|
|
except:
|
|
import ssl
|
|
|
|
# CPython only supports server_hostname with SSLContext
|
|
ssl = ssl.SSLContext()
|
|
|
|
|
|
def test_one(site, opts):
|
|
ai = _socket.getaddrinfo(site, 443)
|
|
addr = ai[0][-1]
|
|
|
|
s = _socket.socket()
|
|
|
|
try:
|
|
s.connect(addr)
|
|
|
|
if "sni" in opts:
|
|
s = ssl.wrap_socket(s, server_hostname=opts["host"])
|
|
else:
|
|
s = ssl.wrap_socket(s)
|
|
|
|
s.write(b"GET / HTTP/1.0\r\nHost: %s\r\n\r\n" % bytes(site, "latin"))
|
|
resp = s.read(4096)
|
|
# print(resp)
|
|
|
|
finally:
|
|
s.close()
|
|
|
|
|
|
SITES = [
|
|
"google.com",
|
|
"www.google.com",
|
|
"api.telegram.org",
|
|
{"host": "api.pushbullet.com", "sni": True},
|
|
# "w9rybpfril.execute-api.ap-southeast-2.amazonaws.com",
|
|
{"host": "w9rybpfril.execute-api.ap-southeast-2.amazonaws.com", "sni": True},
|
|
]
|
|
|
|
|
|
def main():
|
|
for site in SITES:
|
|
opts = {}
|
|
if isinstance(site, dict):
|
|
opts = site
|
|
site = opts["host"]
|
|
|
|
try:
|
|
test_one(site, opts)
|
|
print(site, "ok")
|
|
except Exception as e:
|
|
print(site, repr(e))
|
|
|
|
|
|
main()
|