def test_sync_datetime(self): """Test sync function / sending group reads to KNX bus.""" xknx = XKNX() datetime = DateTime(xknx, "TestDateTime", group_address="1/2/3", broadcast_type="DATETIME") with patch("time.localtime") as mock_time: mock_time.return_value = time.struct_time( [2017, 1, 7, 9, 13, 14, 6, 0, 0]) self.loop.run_until_complete(datetime.sync()) # initial Telegram from broadcasting on init self.assertEqual(xknx.telegrams.qsize(), 2) _throwaway_initial = xknx.telegrams.get_nowait() self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual(telegram.destination_address, GroupAddress("1/2/3")) self.assertEqual(len(telegram.payload.value.value), 8) self.assertEqual( telegram.payload.value.value, (0x75, 0x01, 0x07, 0xE9, 0x0D, 0x0E, 0x20, 0x80), )
def test_sync_time(self): """Test sync function / sending group reads to KNX bus.""" xknx = XKNX(loop=self.loop) datetime = DateTime(xknx, "TestDateTime", group_address='1/2/3', broadcast_type="TIME") with patch('time.localtime') as mock_time: mock_time.return_value = time.struct_time([2017, 1, 7, 9, 13, 14, 6, 0, 0]) self.loop.run_until_complete(asyncio.Task(datetime.sync())) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual(telegram.group_address, GroupAddress('1/2/3')) self.assertEqual(telegram.telegramtype, TelegramType.GROUP_WRITE) self.assertEqual(len(telegram.payload.value), 3) self.assertEqual(telegram.payload.value, (0xE9, 0x0D, 0x0E))
def test_sync_time(self): """Test sync function / sending group reads to KNX bus.""" xknx = XKNX(loop=self.loop) datetime = DateTime(xknx, "TestDateTime", group_address='1/2/3', broadcast_type=DateTimeBroadcastType.TIME) with patch('time.localtime') as mock_time: mock_time.return_value = time.struct_time([2017, 1, 7, 9, 13, 14, 6, 0, 0]) self.loop.run_until_complete(asyncio.Task(datetime.sync(False))) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual(telegram.group_address, GroupAddress('1/2/3')) self.assertEqual(telegram.telegramtype, TelegramType.GROUP_WRITE) self.assertEqual(len(telegram.payload.value), 3) self.assertEqual(telegram.payload.value, (0xE9, 0x0D, 0x0E))