def testOnMotionSensorTurnedOn_notLightOnTime_returnsFalse(self): self.astroSensorItem.setState(StringType('MORNING')) zone = Zone('ff', [self.light, self.astroSensor]) zone = zone.addAction(TurnOnSwitch()) isProcessed = zone.dispatchEvent(ZoneEvent.MOTION, self.getMockedEventDispatcher(), self.motionSensor.getItem(), None, True) self.assertFalse(isProcessed)
def testOnMotionSensorTurnedOn_validItemNameNoIlluminanceSensorNoAstroSensor_returnsFalse( self): self.assertFalse(self.light.isOn()) zone = Zone('ff', [self.light, self.motionSensor]) zone = zone.addAction(TurnOnSwitch()) isProcessed = zone.dispatchEvent(ZoneEvent.MOTION, self.getMockedEventDispatcher(), self.motionSensor.getItem(), MockedZoneManager([zone]), True) self.assertFalse(isProcessed)
def testOnMotionSensorTurnedOn_withApplicableZone_returnsTrue(self): self.assertFalse(self.light.isOn()) self.illuminanceSensorItem.setState( DecimalType(ILLUMINANCE_THRESHOLD_IN_LUX - 1)) zone = Zone('ff', [self.light, self.motionSensor, self.illuminanceSensor]) zone = zone.addAction(TurnOnSwitch()) self.zm.addZone(zone) self.assertTrue( self.zm.dispatchEvent(ZoneEvent.MOTION, scope.events, self.motionSensor.getItem()))
def testOnMotionSensorTurnedOn_lightOnTime_turnsOnLight(self): self.assertFalse(self.light.isOn()) self.astroSensorItem.setState(StringType( AstroSensor.LIGHT_ON_TIMES[0])) zone = Zone('ff', [self.light, self.motionSensor, self.astroSensor]) zone = zone.addAction(TurnOnSwitch()) isProcessed = zone.dispatchEvent(ZoneEvent.MOTION, self.getMockedEventDispatcher(), self.motionSensor.getItem(), MockedZoneManager([zone]), True) self.assertTrue(isProcessed) self.assertTrue(self.light.isOn())
def testOnMotionSensorTurnedOn_illuminanceAboveThreshold_returnsFalse( self): self.assertFalse(self.light.isOn()) self.illuminanceSensorItem.setState( DecimalType(ILLUMINANCE_THRESHOLD_IN_LUX + 1)) zone = Zone('ff', [ self.lightWithIlluminance, self.motionSensor, self.illuminanceSensor ]) zone = zone.addAction(TurnOnSwitch()) isProcessed = zone.dispatchEvent(ZoneEvent.MOTION, self.getMockedEventDispatcher(), self.motionSensor.getItem(), MockedZoneManager([zone]), True) self.assertFalse(isProcessed) self.assertFalse(self.light.isOn())
def testOnMotionSensorTurnedOn_notLightOnTimeButIlluminanceBelowThreshold_turnsOnLight( self): self.assertFalse(self.light.isOn()) self.illuminanceSensorItem.setState( DecimalType(ILLUMINANCE_THRESHOLD_IN_LUX - 1)) self.astroSensorItem.setState(StringType('MORNING')) zone = Zone('ff', [ self.lightWithIlluminance, self.motionSensor, self.illuminanceSensor, self.astroSensor ]) zone = zone.addAction(TurnOnSwitch()) isProcessed = zone.dispatchEvent(ZoneEvent.MOTION, self.getMockedEventDispatcher(), self.motionSensor.getItem(), MockedZoneManager([zone]), True) self.assertTrue(isProcessed) self.assertTrue(self.light.isOn())
def testAddAction_twoValidAction_actionAdded(self): zone = Zone('ff').addAction(TurnOnSwitch()) zone = zone.addAction(TurnOffAdjacentZones()) self.assertEqual(1, len(zone.getActions(ZoneEvent.MOTION))) self.assertEqual(1, len(zone.getActions(ZoneEvent.SWITCH_TURNED_ON)))