async def fake_post_request(*args, **kwargs): """Return fake data.""" if "url" not in kwargs: return "{}" endpoint = kwargs["url"].split("/")[-1] if endpoint in "snapshot_720.jpg": return b"test stream image bytes" if endpoint in [ "setpersonsaway", "setpersonshome", "setstate", "setroomthermpoint", "setthermmode", "switchhomeschedule", ]: payload = f'{{"{endpoint}": true}}' elif endpoint == "homestatus": home_id = kwargs.get("params", {}).get("home_id") payload = json.loads( load_fixture(f"netatmo/{endpoint}_{home_id}.json")) else: payload = json.loads(load_fixture(f"netatmo/{endpoint}.json")) return AiohttpClientMockResponse( method="POST", url=kwargs["url"], json=payload, )
async def fake_post_request_no_data(*args, **kwargs): """Fake error during requesting backend data.""" nonlocal fake_post_hits fake_post_hits += 1 return AiohttpClientMockResponse( method="POST", url=kwargs["url"], json={}, )
async def modern_forms_timers_set_mock(method, url, data): """Set up the basic returns based on info or status request.""" if COMMAND_QUERY_STATIC_DATA in data: fixture = "modern_forms/device_info.json" else: fixture = "modern_forms/device_status_timers_active.json" response = AiohttpClientMockResponse(method=method, url=url, json=json.loads( load_fixture(fixture))) return response
async def get(method, url, data): return AiohttpClientMockResponse(method, url, json=results.pop(0))
async def get_devices_json(method, url, data): return AiohttpClientMockResponse(method=method, url=url, json=qs_devices)