async def test_raw_request_invalid_json(self): client = get_testclient() with aioresponses() as mock_get: mock_get.get(url="https://dss.local:8080/json/hello", body=b"{whatever is not json") with self.assertRaises(DSRequestException): await client.raw_request(url="/json/hello")
async def test_raw_request_ok_missing(self): client = get_testclient() with aioresponses() as mock_get: mock_get.get(url="https://dss.local:8080/json/hello", payload=dict(ping="pong")) with self.assertRaises(DSCommandFailedException): await client.raw_request(url="/json/hello")
async def test_raw_request_not_200(self): client = get_testclient() with aioresponses() as mock_get: mock_get.get(url=f"https://{TEST_HOST}:{TEST_PORT}/json/hello", status=400) with self.assertRaises(DSRequestException): await client.raw_request(url="/json/hello")
async def test_request_with_data(self): with patch( "pydigitalstrom.commandstack.DSCommandStack.append", Mock(return_value=aiounittest.futurized(dict())), ) as mock_stack_append: device = DSDevice(client=get_testclient(), device_id=5, device_name="test") await device.request(url="abc.de?{x}", x="hello") mock_stack_append.assert_called_with(url="abc.de?hello")
def test_initialize(self): client = get_testclient() self.assertEqual(client.host, TEST_HOST) self.assertEqual(client._apptoken, TEST_TOKEN) self.assertEqual(client._apartment_name, TEST_APARTMENT) self.assertIsNone(client._last_request) self.assertIsNone(client._session_token) self.assertEqual(client._scenes, dict())
async def test_raw_request(self): client = get_testclient() with aioresponses() as mock_get: mock_get.get( url="https://dss.local:8080/json/hello", payload=dict(ok=True, ping="pong"), ) response = await client.raw_request(url="/json/hello") self.assertEqual(response, dict(ok=True, ping="pong"))
async def test_raw_request_invalid_json(self): client = get_testclient() with aioresponses() as mock_get: mock_get.get( url=f"https://{TEST_HOST}:{TEST_PORT}/json/hello", body=b"{whatever is not json", ) with self.assertRaises(DSRequestException): await client.raw_request(url="/json/hello")
async def test_raw_request_ok_false(self): client = get_testclient() with aioresponses() as mock_get: mock_get.get( url=f"https://{TEST_HOST}:{TEST_PORT}/json/hello", payload=dict(ok=False, ping="pong"), ) with self.assertRaises(DSCommandFailedException): await client.raw_request(url="/json/hello")
async def test_get_session_token(self): with patch( "pydigitalstrom.client.DSClient.raw_request", Mock(return_value=aiounittest.futurized(dict(result=dict(token=2736)))), ) as mock_raw_request: client = get_testclient() sessiontoken = await client.get_session_token() self.assertEqual(sessiontoken, 2736) mock_raw_request.assert_called_with( f"/json/system/loginApplication?loginToken={TEST_TOKEN}" ) with patch( "pydigitalstrom.client.DSClient.raw_request", Mock(return_value=aiounittest.futurized(dict())), ) as mock_raw_request: with self.assertRaises(DSException): client = get_testclient() await client.get_session_token() mock_raw_request.assert_called_with( f"/json/system/loginApplication?loginToken={TEST_TOKEN}" )
def test_initial(self): device = DSScene( client=get_testclient(), zone_id=1, zone_name="zone", scene_id=2, scene_name="scene", ) self.assertEqual(device.zone_id, 1) self.assertEqual(device.zone_name, "zone") self.assertEqual(device.scene_id, 2) self.assertEqual(device.scene_name, "scene") self.assertEqual(device.unique_id, "1_2")
async def test_turn_on(self): with patch( "pydigitalstrom.commandstack.DSCommandStack.append", Mock(return_value=aiounittest.futurized(dict())), ) as mock_stack_append: device = DSScene( client=get_testclient(), zone_id=1, zone_name="zone", scene_id=2, scene_name="scene", ) await device.turn_on() mock_stack_append.assert_called_with( url="/json/zone/callScene?id=1&sceneNumber=2&force=true", )
def test_attributes(self): device = DSDevice(client=get_testclient(), device_id=5, device_name="test") self.assertEqual(device._id, 5) self.assertEqual(device._name, "test")
def test_unique_id(self): device = DSDevice(client=get_testclient(), device_id=5, device_name="test") self.assertEqual(device.unique_id, 5)
def test_name(self): device = DSDevice(client=get_testclient(), device_id=5, device_name="test") self.assertEqual(device.name, "test")
async def test_get_aiohttp_session_disable_ssl(self): client = get_testclient() session = await client.get_aiohttp_session() self.assertFalse(session._connector._ssl)