import pytest import json from aiohttp import web from aioresponses import aioresponses from rapt.client import Client from rapt.fermentation_chamber import FermentationChamber @pytest.fixture async def client(aiohttp_client): app = web.Application() await aiohttp_client(app) yield Client("test", "test") async def test_get_fermentation_chambers(client): with aioresponses() as responses: responses.post("https://id.rapt.io/connect/token", payload=json_reader("./tests/json/token_response.json")) responses.get("https://api.rapt.io/api/fermentationchambers/getfermentationchambers", payload=json_reader("./tests/json/get_fermentation_chambers_response.json")) fermentation_chamber = FermentationChamber(client) ferms = await fermentation_chamber.get_fermentation_chambers() assert ferms is not None assert len(ferms) == 1 async def test_get_fermentation_chambers_500(client): with aioresponses() as responses: responses.post("https://id.rapt.io/connect/token", payload=json_reader("./tests/json/token_response.json")) responses.get("https://api.rapt.io/api/fermentationchambers/getfermentationchambers", status=500) fermentation_chamber = FermentationChamber(client) ferms = await fermentation_chamber.get_fermentation_chambers() assert ferms is None async def test_get_fermentation_chamber(client): with aioresponses() as responses: responses.post("https://id.rapt.io/connect/token", payload=json_reader("./tests/json/token_response.json")) responses.get("https://api.rapt.io/api/fermentationchambers/getfermentationchamber", payload=json_reader("./tests/json/get_fermentation_chamber_response.json")) fermentation_chamber = FermentationChamber(client) ferms = await fermentation_chamber.get_fermentation_chamber("") assert ferms is not None async def test_get_fermentation_chamber_500(client): with aioresponses() as responses: responses.post("https://id.rapt.io/connect/token", payload=json_reader("./tests/json/token_response.json")) responses.get("https://api.rapt.io/api/fermentationchambers/getfermentationchamber", status=500) fermentation_chamber = FermentationChamber(client) ferms = await fermentation_chamber.get_fermentation_chamber("") assert ferms is None async def test_get_telemetry(client): with aioresponses() as responses: responses.post("https://id.rapt.io/connect/token", payload=json_reader("./tests/json/token_response.json")) responses.get("https://api.rapt.io/api/fermentationchambers/gettelemetry", payload=json_reader("./tests/json/get_fermentation_chamber_telemetry_response.json")) fermentation_chamber = FermentationChamber(client) telemetry = await fermentation_chamber.get_telemetry("", "", "", "") assert telemetry is not None assert len(telemetry) == 1 async def test_get_telemetry_500(client): with aioresponses() as responses: responses.post("https://id.rapt.io/connect/token", payload=json_reader("./tests/json/token_response.json")) responses.get("https://api.rapt.io/api/fermentationchambers/gettelemetry", status=500) fermentation_chamber = FermentationChamber(client) telemetry = await fermentation_chamber.get_telemetry("", "", "", "") assert telemetry is None def json_reader(path): with open(path) as f: return json.load(f)