def test_stop(self): """Test stopping cover.""" xknx = XKNX() cover_short_stop = Cover( xknx, "TestCover", group_address_long="1/2/1", group_address_short="1/2/2", group_address_position="1/2/3", group_address_position_state="1/2/4", ) self.loop.run_until_complete(cover_short_stop.stop()) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual(telegram, Telegram(GroupAddress("1/2/2"), payload=DPTBinary(1))) cover_manual_stop = Cover( xknx, "TestCover", group_address_long="1/2/1", group_address_short="1/2/2", group_address_stop="1/2/0", group_address_position="1/2/3", group_address_position_state="1/2/4", ) self.loop.run_until_complete(cover_manual_stop.stop()) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual(telegram, Telegram(GroupAddress("1/2/0"), payload=DPTBinary(1)))
def test_stop(self): """Test stopping cover.""" xknx = XKNX(loop=self.loop) cover_short_stop = Cover(xknx, 'TestCover', group_address_long='1/2/1', group_address_short='1/2/2', group_address_position='1/2/3', group_address_position_state='1/2/4') self.loop.run_until_complete(asyncio.Task(cover_short_stop.stop())) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual(telegram, Telegram(GroupAddress('1/2/2'), payload=DPTBinary(1))) cover_manual_stop = Cover(xknx, 'TestCover', group_address_long='1/2/1', group_address_short='1/2/2', group_address_stop='1/2/0', group_address_position='1/2/3', group_address_position_state='1/2/4') self.loop.run_until_complete(asyncio.Task(cover_manual_stop.stop())) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual(telegram, Telegram(GroupAddress('1/2/0'), payload=DPTBinary(1)))
def test_stop(self): """Test stopping cover.""" xknx = XKNX(loop=self.loop) cover = Cover( xknx, 'TestCover', group_address_long='1/2/1', group_address_short='1/2/2', group_address_position='1/2/3', group_address_position_state='1/2/4') self.loop.run_until_complete(asyncio.Task(cover.stop())) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual(telegram, Telegram(GroupAddress('1/2/2'), payload=DPTBinary(0)))
def test_supports_stop_false(self): """Test support_position_true.""" xknx = XKNX(loop=self.loop) cover = Cover(xknx, 'Children.Venetian', group_address_long='1/4/14', group_address_position='1/4/16', group_address_angle='1/4/18') self.assertFalse(cover.supports_stop) with patch('logging.Logger.warning') as mock_warn: self.loop.run_until_complete(asyncio.Task(cover.stop())) self.assertEqual(xknx.telegrams.qsize(), 0) mock_warn.assert_called_with('Stop not supported for device %s', 'Children.Venetian')
def test_supports_stop_false(self): """Test support_position_true.""" xknx = XKNX() cover = Cover( xknx, "Children.Venetian", group_address_long="1/4/14", group_address_position="1/4/16", group_address_angle="1/4/18", ) self.assertFalse(cover.supports_stop) with patch("logging.Logger.warning") as mock_warn: self.loop.run_until_complete(cover.stop()) self.assertEqual(xknx.telegrams.qsize(), 0) mock_warn.assert_called_with("Stop not supported for device %s", "Children.Venetian")
def test_is_traveling(self): """Test moving cover to absolute position.""" xknx = XKNX() cover = Cover( xknx, "TestCover", group_address_long="1/2/1", group_address_stop="1/2/2", group_address_position="1/2/3", group_address_position_state="1/2/4", travel_time_down=10, travel_time_up=10, ) with patch("time.time") as mock_time: mock_time.return_value = 1517000000.0 self.assertFalse(cover.is_traveling()) self.assertFalse(cover.is_opening()) self.assertFalse(cover.is_closing()) self.assertTrue(cover.position_reached()) # we start with state open covers (up) cover.travelcalculator.set_position(0) self.loop.run_until_complete(cover.set_down()) self.assertTrue(cover.is_traveling()) self.assertTrue(cover.is_open()) self.assertFalse(cover.is_closed()) self.assertFalse(cover.is_opening()) self.assertTrue(cover.is_closing()) mock_time.return_value = 1517000005.0 # 5 Seconds, half way self.assertFalse(cover.position_reached()) self.assertTrue(cover.is_traveling()) self.assertFalse(cover.is_open()) self.assertFalse(cover.is_closed()) self.assertFalse(cover.is_opening()) self.assertTrue(cover.is_closing()) mock_time.return_value = 1517000010.0 # 10 Seconds, fully closed self.assertTrue(cover.position_reached()) self.assertFalse(cover.is_traveling()) self.assertFalse(cover.is_open()) self.assertTrue(cover.is_closed()) self.assertFalse(cover.is_opening()) self.assertFalse(cover.is_closing()) # up again self.loop.run_until_complete(cover.set_up()) self.assertFalse(cover.position_reached()) self.assertTrue(cover.is_traveling()) self.assertFalse(cover.is_open()) self.assertTrue(cover.is_closed()) self.assertTrue(cover.is_opening()) self.assertFalse(cover.is_closing()) mock_time.return_value = 1517000015.0 # 15 Seconds, half way self.assertFalse(cover.position_reached()) self.assertTrue(cover.is_traveling()) self.assertFalse(cover.is_open()) self.assertFalse(cover.is_closed()) self.assertTrue(cover.is_opening()) self.assertFalse(cover.is_closing()) mock_time.return_value = 1517000016.0 # 16 Seconds, manual stop self.loop.run_until_complete(cover.stop()) self.assertTrue(cover.position_reached()) self.assertFalse(cover.is_traveling()) self.assertFalse(cover.is_open()) self.assertFalse(cover.is_closed()) self.assertFalse(cover.is_opening()) self.assertFalse(cover.is_closing())