コード例 #1
0
 def test_change_Garage_Door_light_to_open( self, send ):
     data = {}
     listeners = [Constants.TopicNames.ZigBeeOutput]
     sp = StatusPanel()
     send.reset_mock()
     sp.changeGarageDoorWarningLight( sp.GARAGE_DOOR_OPEN )
     send.assert_called_once_with( not sp.GARAGE_DOOR_OPEN , {'device': '0x13a20040902a02', 'port': 'DIO-1'}, ['step.ZigBeeOutput'] )
コード例 #2
0
 def test_change_Garage_Door_light_to_open(self, send):
     data = {}
     listeners = [Constants.TopicNames.ZigBeeOutput]
     sp = StatusPanel()
     send.reset_mock()
     sp.changeGarageDoorWarningLight(sp.GARAGE_DOOR_OPEN)
     send.assert_called_once_with(not sp.GARAGE_DOOR_OPEN, {
         'device': '0x13a20040902a02',
         'port': 'DIO-1'
     }, ['step.ZigBeeOutput'])
コード例 #3
0
 def test_first_time_with_garage_door_closed( self, dt, light ):
     data = {}
     list = ['a', 'b']
     t = datetime( 2012, 2, 2, 2, 2, 2 )
     sp = StatusPanel()
     dt.return_value = t
     sp.garage_door = sp.GARAGE_DOOR_OPEN
     sp.garage_door_monitor.step( sp.GARAGE_DOOR_CLOSED, data, list )
     self.assertEqual( sp.garage_door, sp.GARAGE_DOOR_CLOSED )
     light.assert_called_once_with( sp.GARAGE_DOOR_CLOSED )
     light.reset_mock()
コード例 #4
0
 def test_first_time_with_garage_door_closed(self, dt, light):
     data = {}
     list = ['a', 'b']
     t = datetime(2012, 2, 2, 2, 2, 2)
     sp = StatusPanel()
     dt.return_value = t
     sp.garage_door = sp.GARAGE_DOOR_OPEN
     sp.garage_door_monitor.step(sp.GARAGE_DOOR_CLOSED, data, list)
     self.assertEqual(sp.garage_door, sp.GARAGE_DOOR_CLOSED)
     light.assert_called_once_with(sp.GARAGE_DOOR_CLOSED)
     light.reset_mock()
コード例 #5
0
    def test_SilenceAlarm( self, ca ):
        uu = str( uuid.uuid4() )
        data = {Constants.DataPacket.scheduler_id: uu}
        listeners = [Constants.TopicNames.ZigBeeOutput]
        sp = StatusPanel()
        sp.short_scheduler_id = uu
        ca.reset_mock()
        value = True

        value_returned, data_returned, listeners_returned = sp.silence_alarm.step( value, data, listeners )
        ca.assert_called_once_with( sp.ALARM_OFF )
コード例 #6
0
 def test_process_when_disable_alarm_button_pressed( self, ca ):
     uu = str( uuid.uuid4() )
     data = {Constants.DataPacket.scheduler_id: uu}
     listeners = [Constants.TopicNames.ZigBeeOutput]
     sp = StatusPanel()
     ca.reset_mock()
     sp.garage_door = sp.GARAGE_DOOR_OPEN
     sp.long_scheduler_id = uu
     sp.disenable_alarm_button_pressed = sp.DISABLE_ALARM_BUTTON_PRESSED
     sp.process_delayed_alarm.step( 1, data, listeners )
     self.assertEqual( sp.process_delayed_alarm.delayedAlarmState, sp.process_delayed_alarm.Disabled )
     ca.assert_called_once_with( sp.ALARM_OFF )
コード例 #7
0
    def test_SilenceAlarm(self, ca):
        uu = str(uuid.uuid4())
        data = {Constants.DataPacket.scheduler_id: uu}
        listeners = [Constants.TopicNames.ZigBeeOutput]
        sp = StatusPanel()
        sp.short_scheduler_id = uu
        ca.reset_mock()
        value = True

        value_returned, data_returned, listeners_returned = sp.silence_alarm.step(
            value, data, listeners)
        ca.assert_called_once_with(sp.ALARM_OFF)
コード例 #8
0
 def test_process_when_disable_alarm_button_pressed(self, ca):
     uu = str(uuid.uuid4())
     data = {Constants.DataPacket.scheduler_id: uu}
     listeners = [Constants.TopicNames.ZigBeeOutput]
     sp = StatusPanel()
     ca.reset_mock()
     sp.garage_door = sp.GARAGE_DOOR_OPEN
     sp.long_scheduler_id = uu
     sp.disenable_alarm_button_pressed = sp.DISABLE_ALARM_BUTTON_PRESSED
     sp.process_delayed_alarm.step(1, data, listeners)
     self.assertEqual(sp.process_delayed_alarm.delayedAlarmState,
                      sp.process_delayed_alarm.Disabled)
     ca.assert_called_once_with(sp.ALARM_OFF)
コード例 #9
0
 def test_process_delayed_alarm_activeTimer(self, sm, u):
     sp = StatusPanel()
     delay = 2
     value = 4
     sm.reset_mock()
     listeners = [Constants.TopicNames.StatusPanel_ProcessDelayedAlarm]
     u.return_value = value
     args = sp.panel_address, sp.panel_alarm, listeners, value
     sp.process_delayed_alarm.activateTimer(delay)
コード例 #10
0
 def test_press_disarm_alarm_button(self, ca):
     data = {}
     listeners = [Constants.TopicNames.ZigBeeOutput]
     sp = StatusPanel()
     ca.reset_mock()
     sp.disable_alarm_button.step(sp.DISABLE_ALARM_BUTTON_PRESSED, data,
                                  listeners)
     self.assertEqual(sp.disenable_alarm_button_pressed,
                      sp.DISABLE_ALARM_BUTTON_PRESSED)
     self.assertEqual(sp.alarm, sp.ALARM_OFF)
     ca.assert_called_once_with(sp.ALARM_OFF)
コード例 #11
0
    def test_first_time_with_garage_door_open(self, dt, light):
        data = {}
        list = ['a', 'b']
        t = datetime(2012, 2, 2, 2, 2, 2)
        sp = StatusPanel()
        dt.return_value = t

        sp.garage_door_monitor.turnOffAlarmAfterInterval = Mock()
        sp.garage_door_monitor.setTimerToActivateAlarmAfterInterval = Mock()

        sp.garage_door_monitor.step(sp.GARAGE_DOOR_OPEN, data, list)
        self.assertEqual(sp.garage_door, sp.GARAGE_DOOR_OPEN)
        self.assertEqual(sp.when_garage_door_opened, t)
        light.assert_called_once_with(sp.GARAGE_DOOR_OPEN)
        light.reset_mock()
コード例 #12
0
    def test_SystemCheck(self):
        data = {}
        listeners = [Constants.TopicNames.ZigBeeOutput]
        sp = StatusPanel()
        value = True
        # TODO FIX
        #        self.assertEqual( sp.system_check.logger_name, Constants.LogKeys.StatusPanel )
        self.assertEqual(sp.system_check.topic_name,
                         Constants.TopicNames.StatusPanel_SystemCheck)
        sp.system_check.toggle = False

        value_returned, data_returned, listeners_returned = sp.system_check.step(
            value, data, listeners)
        self.assertTrue(value_returned)
        self.assertDictEqual(data, data_returned)
        self.assertListEqual(listeners, listeners_returned)

        value_returned, data_returned, listeners_returned = sp.system_check.step(
            value, data, listeners)
        self.assertFalse(value_returned)
        self.assertDictEqual(data, data_returned)
        self.assertListEqual(listeners, listeners_returned)
コード例 #13
0
    def test_first_time_with_garage_door_closed_then_open_the_garage_door(
            self, dt, light):
        data = {'d': 'e'}
        list = ['a', 'b']
        t = datetime(2012, 2, 2, 2, 2, 2)
        sp = StatusPanel()
        sp.garage_door_monitor.turnOffAlarmAfterInterval = Mock()
        sp.garage_door_monitor.setTimerToActivateAlarmAfterInterval = Mock()
        dt.return_value = t
        sp.garage_door_monitor.step(sp.GARAGE_DOOR_CLOSED, data, list)
        self.assertEqual(sp.garage_door, sp.GARAGE_DOOR_CLOSED)
        light.assert_called_once_with(sp.GARAGE_DOOR_CLOSED)
        light.reset_mock()

        t = datetime(2012, 2, 2, 2, 3, 2)
        dt.return_value = t
        sp.garage_door_monitor.step(sp.GARAGE_DOOR_OPEN, data, list)
        self.assertFalse(sp.garage_door)
        self.assertEqual(sp.when_garage_door_opened, t)
        light.assert_called_once_with(sp.GARAGE_DOOR_OPEN)
        light.reset_mock()

        t1 = datetime(2012, 2, 2, 2, 4, 2)
        dt.return_value = t1
        sp.garage_door_monitor.step(sp.GARAGE_DOOR_OPEN, data, list)
        self.assertFalse(sp.garage_door)
        self.assertEqual(sp.when_garage_door_opened, t)
        self.assertEqual(t1 - sp.when_garage_door_opened, timedelta(0, 60))
        light.assert_called_once_with(sp.GARAGE_DOOR_OPEN)
        light.reset_mock()

        t2 = datetime(2012, 2, 2, 2, 4, 2)
        dt.return_value = t2
        sp.garage_door_monitor.step(sp.GARAGE_DOOR_CLOSED, data, list)
        self.assertTrue(sp.garage_door)
        self.assertIsNone(sp.when_garage_door_opened)
        light.assert_called_once_with(sp.GARAGE_DOOR_CLOSED)
コード例 #14
0
    def test_process_delayed_alarm( self, at, ca ):
        uu = str( uuid.uuid4() )
        data = {Constants.DataPacket.scheduler_id: uu}
        listeners = []
        sp = StatusPanel()
        ca.reset_mock()
        self.assertEqual( sp.process_delayed_alarm.topic_name, Constants.TopicNames.StatusPanel_ProcessDelayedAlarm )

        sp.process_delayed_alarm.delayedAlarmState = sp.process_delayed_alarm.PreAlarm
        sp.garage_door = sp.GARAGE_DOOR_OPEN
        sp.disenable_alarm_button_pressed = sp.ENABLE_ALARM
        sp.long_scheduler_id = uu

        sp.process_delayed_alarm.step( 1, data, listeners )

        at.assert_called_once_with( 2 )
        ca.assert_called_once_with( sp.ALARM_ON )
        self.assertEqual( sp.process_delayed_alarm.delayedAlarmState, sp.process_delayed_alarm.Short_Beep )
        at.reset_mock()
        ca.reset_mock()

        # Test transition from Shout_Beep to Long_silence
        sp.garage_door = sp.GARAGE_DOOR_OPEN
        sp.disenable_alarm_button_pressed = sp.ENABLE_ALARM

        sp.process_delayed_alarm.step( 1, data, listeners )

        at.assert_called_once_with( sp.garage_door_long_silence )
        ca.assert_called_once_with( sp.ALARM_OFF )
        self.assertEqual( sp.process_delayed_alarm.delayedAlarmState, sp.process_delayed_alarm.Long_Silence )
        at.reset_mock()
        ca.reset_mock()

        # Test transition from Long_silence back to Short_Beep
        sp.garage_door = sp.GARAGE_DOOR_OPEN
        sp.disenable_alarm_button_pressed = sp.ENABLE_ALARM

        sp.process_delayed_alarm.step( 1, data, listeners )

        at.assert_called_once_with( sp.garage_door_short_alarm )
        ca.assert_called_once_with( sp.ALARM_ON )
        self.assertEqual( sp.process_delayed_alarm.delayedAlarmState, sp.process_delayed_alarm.Short_Beep )
        at.reset_mock()
        ca.reset_mock()

        # Test transition from Long_silence back to Disabled
        sp.garage_door = sp.GARAGE_DOOR_CLOSED
        sp.disenable_alarm_button_pressed = sp.ENABLE_ALARM

        sp.process_delayed_alarm.step( 1, data, listeners )

        self.assertEqual( sp.process_delayed_alarm.delayedAlarmState, sp.process_delayed_alarm.Disabled )
        at.reset_mock()
        ca.reset_mock()

        # Test Disabled
        sp.garage_door = sp.GARAGE_DOOR_OPEN
        sp.disenable_alarm_button_pressed = sp.DISABLE_ALARM_BUTTON_NOT_PRESSED

        sp.process_delayed_alarm.step( 1, data, listeners )

        self.assertEqual( sp.process_delayed_alarm.delayedAlarmState, sp.process_delayed_alarm.Disabled )
        at.reset_mock()
        ca.reset_mock()
コード例 #15
0
 def test_change_alarm_to_on( self, send ):
     data = {}
     listeners = [Constants.TopicNames.ZigBeeOutput]
     sp = StatusPanel()
     sp.changeAlarm( sp.ALARM_ON )
コード例 #16
0
 def test_change_alarm_to_on(self, send):
     data = {}
     listeners = [Constants.TopicNames.ZigBeeOutput]
     sp = StatusPanel()
     sp.changeAlarm(sp.ALARM_ON)
コード例 #17
0
    def test_process_delayed_alarm(self, at, ca):
        uu = str(uuid.uuid4())
        data = {Constants.DataPacket.scheduler_id: uu}
        listeners = []
        sp = StatusPanel()
        ca.reset_mock()
        self.assertEqual(sp.process_delayed_alarm.topic_name,
                         Constants.TopicNames.StatusPanel_ProcessDelayedAlarm)

        sp.process_delayed_alarm.delayedAlarmState = sp.process_delayed_alarm.PreAlarm
        sp.garage_door = sp.GARAGE_DOOR_OPEN
        sp.disenable_alarm_button_pressed = sp.ENABLE_ALARM
        sp.long_scheduler_id = uu

        sp.process_delayed_alarm.step(1, data, listeners)

        at.assert_called_once_with(2)
        ca.assert_called_once_with(sp.ALARM_ON)
        self.assertEqual(sp.process_delayed_alarm.delayedAlarmState,
                         sp.process_delayed_alarm.Short_Beep)
        at.reset_mock()
        ca.reset_mock()

        # Test transition from Shout_Beep to Long_silence
        sp.garage_door = sp.GARAGE_DOOR_OPEN
        sp.disenable_alarm_button_pressed = sp.ENABLE_ALARM

        sp.process_delayed_alarm.step(1, data, listeners)

        at.assert_called_once_with(sp.garage_door_long_silence)
        ca.assert_called_once_with(sp.ALARM_OFF)
        self.assertEqual(sp.process_delayed_alarm.delayedAlarmState,
                         sp.process_delayed_alarm.Long_Silence)
        at.reset_mock()
        ca.reset_mock()

        # Test transition from Long_silence back to Short_Beep
        sp.garage_door = sp.GARAGE_DOOR_OPEN
        sp.disenable_alarm_button_pressed = sp.ENABLE_ALARM

        sp.process_delayed_alarm.step(1, data, listeners)

        at.assert_called_once_with(sp.garage_door_short_alarm)
        ca.assert_called_once_with(sp.ALARM_ON)
        self.assertEqual(sp.process_delayed_alarm.delayedAlarmState,
                         sp.process_delayed_alarm.Short_Beep)
        at.reset_mock()
        ca.reset_mock()

        # Test transition from Long_silence back to Disabled
        sp.garage_door = sp.GARAGE_DOOR_CLOSED
        sp.disenable_alarm_button_pressed = sp.ENABLE_ALARM

        sp.process_delayed_alarm.step(1, data, listeners)

        self.assertEqual(sp.process_delayed_alarm.delayedAlarmState,
                         sp.process_delayed_alarm.Disabled)
        at.reset_mock()
        ca.reset_mock()

        # Test Disabled
        sp.garage_door = sp.GARAGE_DOOR_OPEN
        sp.disenable_alarm_button_pressed = sp.DISABLE_ALARM_BUTTON_NOT_PRESSED

        sp.process_delayed_alarm.step(1, data, listeners)

        self.assertEqual(sp.process_delayed_alarm.delayedAlarmState,
                         sp.process_delayed_alarm.Disabled)
        at.reset_mock()
        ca.reset_mock()