import pytest import json import responses from rapt.client import Client from rapt.hydrometer import Hydrometer @pytest.fixture def client(): yield Client("test", "test") @responses.activate def test_get_hydrometers(client): responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json")) responses.get("https://api.rapt.io/api/hydrometers/gethydrometers", json=json_reader("./tests/json/get_hydrometers_response.json")) hydrometer = Hydrometer(client) hydros = hydrometer.get_hydrometers() assert hydros is not None assert len(hydros) == 1 @responses.activate def test_get_hydrometers_500(client): responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json")) responses.add( responses.GET, "https://api.rapt.io/api/hydrometers/gethydrometers", status=500, ) hydrometer = Hydrometer(client) hydros = hydrometer.get_hydrometers() assert hydros is None @responses.activate def test_get_hydrometer(client): responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json")) responses.get("https://api.rapt.io/api/hydrometers/gethydrometer", json=json_reader("./tests/json/get_hydrometer_response.json")) hydrometer = Hydrometer(client) hydros = hydrometer.get_hydrometer("") assert hydros is not None @responses.activate def test_get_hydrometer_500(client): responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json")) responses.add( responses.GET, "https://api.rapt.io/api/hydrometers/gethydrometer", status=500, ) hydrometer = Hydrometer(client) hydros = hydrometer.get_hydrometer("") assert hydros is None @responses.activate def test_get_telemetry(client): responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json")) responses.get("https://api.rapt.io/api/hydrometers/gettelemetry", json=json_reader("./tests/json/get_hydrometer_telemetry_response.json")) hydrometer = Hydrometer(client) telemetry = hydrometer.get_telemetry("", "", "", "") assert telemetry is not None @responses.activate def test_get_telemetry_500(client): responses.post("https://id.rapt.io/connect/token", json=json_reader("./tests/json/token_response.json")) responses.add( responses.GET, "https://api.rapt.io/api/hydrometers/gettelemetry", status=500, ) hydrometer = Hydrometer(client) telemetry = hydrometer.get_telemetry("", "", "", "") assert telemetry is None def json_reader(path): with open(path) as f: return json.load(f)