示例#1
0
 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")
示例#2
0
 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")
示例#3
0
 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")
示例#4
0
 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())
示例#6
0
 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"))
示例#7
0
 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")
示例#8
0
 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}"
            )
示例#10
0
 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")
示例#11
0
 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", )
示例#12
0
 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")
示例#13
0
 def test_unique_id(self):
     device = DSDevice(client=get_testclient(), device_id=5, device_name="test")
     self.assertEqual(device.unique_id, 5)
示例#14
0
 def test_name(self):
     device = DSDevice(client=get_testclient(), device_id=5, device_name="test")
     self.assertEqual(device.name, "test")
示例#15
0
 async def test_get_aiohttp_session_disable_ssl(self):
     client = get_testclient()
     session = await client.get_aiohttp_session()
     self.assertFalse(session._connector._ssl)