"""Test helper to fetch Shelly config using aiohttp digest authentication."""
import asyncio
from aiohttp import ClientSession, DigestAuthMiddleware
async def fetch_with_digest_auth(url: str, username: str, password: str) -> str:
"""Fetch a URL using HTTP Digest Authentication."""
# aiohttp supports digest auth via DigestAuth class
digest_auth = DigestAuthMiddleware(login=username, password=password)
async with (
ClientSession() as session,
session.get(url, middlewares=(digest_auth,)) as response,
):
print(f"Status: {response.status}")
return await response.text()
async def main() -> None:
"""Main function to run the fetch."""
url = "http://192.168.1.93/rpc/Shelly.GetConfig"
username = "admin"
password = "Simo"
try:
content = await fetch_with_digest_auth(url, username, password)
print("Response content:")
print(content)
except Exception as e:
print(f"Error: {e}")
if __name__ == "__main__":
asyncio.run(main())