import ssl
import time
import board
import busio
from digitalio import DigitalInOut
import adafruit_connection_manager
import adafruit_requests
from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K
import traceback

#cs = DigitalInOut(board.D10)
#spi_bus = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)

cs = DigitalInOut(board.GP17)
spi_bus = busio.SPI(board.GP18, MOSI=board.GP19, MISO=board.GP16)

# Initialize ethernet interface with DHCP
radio = WIZNET5K(spi_bus, cs)

# Initialize a requests session
pool = adafruit_connection_manager.get_radio_socketpool(radio)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(radio)
requests = adafruit_requests.Session(pool, ssl_context)

print("Loading server certificate")
with open("/self-signed.pem", "rb") as certfile:
    ssl_context.load_verify_locations(cadata=certfile.read())
requests = adafruit_requests.Session(pool, ssl_context)
    
TEXT_URL = "https://self-signed.badssl.com/"
print(f"Fetching from {TEXT_URL} with certificate (should succeed)")

try:
    response = requests.get(TEXT_URL)
except Exception as e:
    print(f"Unexpected exception: {e}")
else:
    print(f"{response.status_code=}, should be 200 OK")
