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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
from unittest.mock import MagicMock
import json
import pytest
from aiopvapi.helpers.aiorequest import AioRequest
from aiopvapi.hub import Version, Hub
from tests.test_scene_members import AsyncMock
from tests.fake_server import TestFakeServer, FAKE_BASE_URL, USER_DATA_VALUE
@pytest.fixture
def fake_aiorequest():
request = AioRequest("127.0.0.1", websession=MagicMock())
request.api_version = 2
request.get = AsyncMock()
request.put = AsyncMock()
return request
def test_version():
version1 = Version(123, 456, 789)
assert version1._revision == 123
assert version1._sub_revision == 456
assert version1._build == 789
version2 = Version(123, 456, 789)
assert version1 == version2
version3 = Version(456, 123, 789)
assert not version1 == version3
version1 = Version("abc", "def", "ghi")
version2 = Version("abc", "def", "ghi")
assert version1 == version2
class TestHub_v2(TestFakeServer):
def test_hub_init(self):
async def go():
await self.start_fake_server()
hub = Hub(self.request)
await hub.query_firmware()
return hub
hub = self.loop.run_until_complete(go())
assert hub.base_path == "http://" + FAKE_BASE_URL + "/api"
# self.request.get.mock.assert_called_once_with(FAKE_BASE_URL + "/userdata")
data = json.loads(USER_DATA_VALUE)
assert hub.main_processor_info == data["userData"]["firmware"]["mainProcessor"]
assert hub.main_processor_version == Version(2, 0, 395) # "REVISION: 2 SUB_REVISION: 0 BUILD: 395"
assert hub.radio_version == [Version(2, 0, 1307)] # ["REVISION: 2 SUB_REVISION: 0 BUILD: 1307"]
assert hub.ssid == "cisco789"
assert hub.name == "Hubby"
class TestHub_v3(TestFakeServer):
def __init__(self, methodName: str = "runTest") -> None:
super().__init__(methodName)
self.api_version = 3
def test_hub_init(self):
async def go():
await self.start_fake_server(api_version=3)
hub = Hub(self.request)
await hub.query_firmware()
return hub
hub = self.loop.run_until_complete(go())
assert hub.base_path == "http://" + FAKE_BASE_URL + "/home"
# self.request.get.mock.assert_called_once_with(FAKE_BASE_URL + "/userdata")
data = json.loads(USER_DATA_VALUE)
assert hub.main_processor_info == data["userData"]["firmware"]["mainProcessor"]
assert hub.main_processor_version == Version(2, 0, 395) # "REVISION: 2 SUB_REVISION: 0 BUILD: 395"
assert hub.radio_version == [Version(2, 0, 1307)] # ["REVISION: 2 SUB_REVISION: 0 BUILD: 1307"]
assert hub.ssid == "cisco789"
assert hub.name == "00:26:74:af:fd:ae"
|