1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
"""Asynchronous Python client for LaMetric TIME devices."""
# pylint: disable=protected-access
import aiohttp
from aresponses import Response, ResponsesMockServer
from demetriek import LaMetricDevice
from . import load_fixture
async def test_get_audio(aresponses: ResponsesMockServer) -> None:
"""Test getting audio information."""
aresponses.add(
"127.0.0.2:4343",
"/api/v2/device/audio",
"GET",
aresponses.Response(
status=200,
headers={"Content-Type": "application/json"},
text=load_fixture("audio.json"),
),
)
async with aiohttp.ClientSession() as session:
demetriek = LaMetricDevice(host="127.0.0.2", api_key="abc", session=session)
audio = await demetriek.audio()
assert audio
assert audio.volume == 50
assert audio.volume_range
assert audio.volume_range.range_min == 0
assert audio.volume_range.range_max == 100
assert audio.volume_limit
assert audio.volume_limit.range_min == 0
assert audio.volume_limit.range_max == 100
async def test_set_audio(aresponses: ResponsesMockServer) -> None:
"""Test setting display properties."""
async def response_handler(request: aiohttp.ClientResponse) -> Response:
"""Response handler for this test."""
data = await request.json()
assert data == {
"volume": 99,
}
return aresponses.Response(
status=200,
headers={"Content-Type": "application/json"},
text=load_fixture("audio_set.json"),
)
aresponses.add("127.0.0.2:4343", "/api/v2/device/audio", "PUT", response_handler)
async with aiohttp.ClientSession() as session:
demetriek = LaMetricDevice(host="127.0.0.2", api_key="abc", session=session)
audio = await demetriek.audio(volume=99)
assert audio
assert audio.volume == 99
assert audio.volume_range
assert audio.volume_range.range_min == 0
assert audio.volume_range.range_max == 100
assert audio.volume_limit
assert audio.volume_limit.range_min == 0
assert audio.volume_limit.range_max == 100
|