Beispiel #1
0
 def test_trigger_time_range(self):
     (s_h, s_m, s_s) = datetime.now().timetuple()[3:6]
     e_h = s_h
     e_m = s_m
     e_s = s_s + 2
     s = StateDevice()
     s2 = StateDevice(
         devices=s,
         trigger={
             Attribute.COMMAND: Command.ON,
             Attribute.MAPPED: Command.OFF,
             Attribute.SECS: 1,
             Attribute.START: '{h}:{m}:{s}'.format(
                 h=s_h,
                 m=s_m,
                 s=s_s,
             ),
             Attribute.END: '{h}:{m}:{s}'.format(
                 h=e_h,
                 m=e_m,
                 s=e_s,
             ),
         },
     )
     self.assertEqual(s2.state, State.UNKNOWN)
     s.on()
     self.assertEqual(s2.state, State.ON)
     time.sleep(3)
     self.assertEqual(s2.state, State.OFF)
     ##
     time.sleep(2)
     s.on()
     time.sleep(3)
     self.assertEqual(s2.state, State.ON)
Beispiel #2
0
 def test_time_off(self):
     now = datetime.now()
     hours, mins, secs = now.timetuple()[3:6]
     secs = (secs + 2) % 60
     mins += (secs + 2) / 60
     trigger_time1 = '{h}:{m}:{s}'.format(
         h=hours,
         m=mins,
         s=secs,
     )
     print 'Trigger Time' + trigger_time1
     secs = (secs + 2) % 60
     mins += (secs + 2) / 60
     trigger_time2 = '{h}:{m}:{s}'.format(
         h=hours,
         m=mins,
         s=secs,
     )
     print 'Trigger Time' + trigger_time2
     device = StateDevice(
         time={
             Attribute.COMMAND: Command.OFF,
             Attribute.TIME: (trigger_time1, trigger_time2),
         })
     self.assertEqual(device.state, State.UNKNOWN)
     time.sleep(3)
     print datetime.now()
     self.assertEqual(device.state, State.OFF)
     device.on()
     time.sleep(3)
     print datetime.now()
     print device._times
     self.assertEqual(device.state, State.OFF)
Beispiel #3
0
 def test_binding_default(self):
     d1 = StateDevice()
     d1.off()
     d2 = StateDevice(d1)
     self.assertEqual(d2.state, State.OFF)
     d1.on()
     self.assertEqual(d2.state, State.ON)
Beispiel #4
0
 def test_loop_prevention(self):
     s1 = StateDevice()
     s2 = StateDevice()
     s1.devices(s2)
     s2.devices(s1)
     s1.on()
     pass
Beispiel #5
0
 def test_override_default_maps(self):
     d = StateDevice(mapped={
         Attribute.COMMAND: Command.ON,
         Attribute.MAPPED: Command.OFF,
     })
     d.on()
     self.assertEqual(d.state, State.OFF)
Beispiel #6
0
 def test_state_ignore_range(self):
     (s_h, s_m, s_s) = datetime.now().timetuple()[3:6]
     e_h = s_h
     e_m = s_m
     e_s = s_s + 2
     s = StateDevice()
     s2 = StateDevice(
         devices=s,
         ignore={
             Attribute.SOURCE: s,
             Attribute.START: '{h}:{m}:{s}'.format(
                 h=s_h,
                 m=s_m,
                 s=s_s,
             ),
             Attribute.END: '{h}:{m}:{s}'.format(
                 h=e_h,
                 m=e_m,
                 s=e_s,
             ),
         },
     )
     self.assertEqual(s2.state, State.UNKNOWN)
     s.on()
     self.assertEqual(s2.state, State.UNKNOWN)
     time.sleep(3)
     s.on()
     self.assertEqual(s2.state, State.ON)
Beispiel #7
0
 def test_state_ignore_range(self):
     (s_h, s_m, s_s) = datetime.now().timetuple()[3:6]
     e_h = s_h
     e_m = s_m
     e_s = s_s + 2
     s = StateDevice()
     s2 = StateDevice(devices=s,
                      ignore={
                              Attribute.SOURCE: s,
                              Attribute.START: '{h}:{m}:{s}'.format(
                                                                   h=s_h,
                                                                   m=s_m,
                                                                   s=s_s,
                                                                   ),
                              Attribute.END: '{h}:{m}:{s}'.format(
                                                                   h=e_h,
                                                                   m=e_m,
                                                                   s=e_s,
                                                                   ),
                              },
                      
                      )
     self.assertEqual(s2.state, State.UNKNOWN)
     s.on()
     self.assertEqual(s2.state, State.UNKNOWN)
     time.sleep(3)
     s.on()
     self.assertEqual(s2.state, State.ON)
Beispiel #8
0
    def test_trigger_out_range_gc(self):
        (s_h, s_m, s_s) = datetime.now().timetuple()[3:6]
        e_h = s_h
        e_m = s_m
        e_s = s_s + 2
        d1 = StateDevice()
        d2 = Light(
                   devices=d1,
                   trigger={
                            Attribute.COMMAND: Command.ON,
                            Attribute.MAPPED: Command.OFF,
                            Attribute.SECS: 2,
                            Attribute.START: '{h}:{m}:{s}'.format(
                                                                 h=s_h,
                                                                 m=s_m,
                                                                 s=s_s,
                                                                 ),
                            Attribute.END: '{h}:{m}:{s}'.format(
                                                                 h=e_h,
                                                                 m=e_m,
                                                                 s=e_s,
                                                                 ),
                            }
                   )

        time.sleep(3)
        self.assertEqual(d2.state, State.UNKNOWN)
        d1.on()
        self.assertEqual(d2.state, State.ON)
        time.sleep(3)
        self.assertEqual(d2.state, State.ON)
Beispiel #9
0
 def test_delay_zero_secs(self):
     d1 = StateDevice()
     d2 = StateDevice()
     d3 = StateDevice(
                      devices=(d1, d2),
                      delay=({
                             Attribute.COMMAND: Command.OFF,
                             Attribute.SECS: 2
                             },
                             {
                              Attribute.COMMAND: Command.OFF,
                              Attribute.SECS: 0,
                              Attribute.SOURCE: d2,
                              }
                             ),
                      initial=State.ON,
                      )    
     self.assertEqual(d3.state, State.ON)
     d1.off()
     self.assertEqual(d3.state, State.ON)
     time.sleep(3)
     self.assertEqual(d3.state, State.OFF)
     d3.on()
     self.assertEqual(d3.state, State.ON)
     d2.off()
     self.assertEqual(d3.state, State.OFF)
Beispiel #10
0
 def test_delay_multiple(self):
     d1 = StateDevice()
     d2 = StateDevice()
     d3 = StateDevice(
                       devices=(d1, d2),
                       delay=(
                                  {Attribute.COMMAND: (Command.OFF),
                                  Attribute.SOURCE: (d1),
                                  Attribute.SECS: 2,
                                  },
                                  {Attribute.COMMAND: Command.OFF,
                                  Attribute.SOURCE: d2,
                                  Attribute.SECS: 4,
                                  },
                              )
                       )
     self.assertEqual(d3.state, State.UNKNOWN)
     d3.on()
     self.assertEqual(d3.state, State.ON)
     d1.off()
     self.assertEqual(d3.state, State.ON)
     time.sleep(3)
     self.assertEqual(d3.state, State.OFF)
     
     #d2
     d3.on()
     self.assertEqual(d3.state, State.ON)
     d2.off()
     self.assertEqual(d3.state, State.ON)
     time.sleep(3)
     self.assertEqual(d3.state, State.ON)
     time.sleep(1)
     self.assertEqual(d3.state, State.OFF)
Beispiel #11
0
 def test_loop_prevention(self):
     s1 = StateDevice()
     s2 = StateDevice()
     s1.devices(s2)
     s2.devices(s1)
     s1.on()
     pass
Beispiel #12
0
 def test_time_off(self):
     now = datetime.now()
     hours, mins, secs = now.timetuple()[3:6]
     secs = (secs + 2) % 60
     mins += (secs + 2) / 60
     trigger_time1 = '{h}:{m}:{s}'.format(
                                          h=hours,
                                          m=mins,
                                          s=secs,
                                              )
     print 'Trigger Time' + trigger_time1
     secs = (secs + 2) % 60
     mins += (secs + 2) / 60
     trigger_time2 = '{h}:{m}:{s}'.format(
                                          h=hours,
                                          m=mins,
                                          s=secs,
                                              )
     print 'Trigger Time' + trigger_time2
     device = StateDevice(
                           time={
                                 
                                 Attribute.COMMAND: Command.OFF,
                                 Attribute.TIME: (trigger_time1, trigger_time2),
                                 }
                           )
     self.assertEqual(device.state, State.UNKNOWN)
     time.sleep(3)
     print datetime.now()
     self.assertEqual(device.state, State.OFF)
     device.on()
     time.sleep(3)
     print datetime.now()
     print device._times
     self.assertEqual(device.state, State.OFF)
Beispiel #13
0
    def test_trigger_out_range_gc(self):
        (s_h, s_m, s_s) = datetime.now().timetuple()[3:6]
        e_h = s_h
        e_m = s_m
        e_s = s_s + 2
        d1 = StateDevice()
        d2 = Light(devices=d1,
                   trigger={
                       Attribute.COMMAND: Command.ON,
                       Attribute.MAPPED: Command.OFF,
                       Attribute.SECS: 2,
                       Attribute.START: '{h}:{m}:{s}'.format(
                           h=s_h,
                           m=s_m,
                           s=s_s,
                       ),
                       Attribute.END: '{h}:{m}:{s}'.format(
                           h=e_h,
                           m=e_m,
                           s=e_s,
                       ),
                   })

        time.sleep(3)
        self.assertEqual(d2.state, State.UNKNOWN)
        d1.on()
        self.assertEqual(d2.state, State.ON)
        time.sleep(3)
        self.assertEqual(d2.state, State.ON)
Beispiel #14
0
 def test_initial_from_device(self):
     d1 = StateDevice()
     self.assertEqual(d1.state, State.UNKNOWN)
     d1.on()
     self.assertEqual(d1.state, State.ON)
     d2 = StateDevice(devices=d1)
     self.assertEqual(d2.state, State.ON)
Beispiel #15
0
 def test_trigger_time_range(self):
     (s_h, s_m, s_s) = datetime.now().timetuple()[3:6]
     e_h = s_h
     e_m = s_m
     e_s = s_s + 2
     s = StateDevice()
     s2 = StateDevice(devices=s,
                      trigger={
                             Attribute.COMMAND: Command.ON,
                             Attribute.MAPPED: Command.OFF,
                             Attribute.SECS: 1,
                              Attribute.START: '{h}:{m}:{s}'.format(
                                                                   h=s_h,
                                                                   m=s_m,
                                                                   s=s_s,
                                                                   ),
                              Attribute.END: '{h}:{m}:{s}'.format(
                                                                   h=e_h,
                                                                   m=e_m,
                                                                   s=e_s,
                                                                   ),
                              },
                      
                      )
     self.assertEqual(s2.state, State.UNKNOWN)
     s.on()
     self.assertEqual(s2.state, State.ON)
     time.sleep(3)
     self.assertEqual(s2.state, State.OFF)
     ##
     time.sleep(2)
     s.on()
     time.sleep(3)
     self.assertEqual(s2.state, State.ON)
Beispiel #16
0
 def test_binding_default(self):
     d1 = StateDevice()
     d1.off()
     d2 = StateDevice(d1)
     self.assertEqual(d2.state, State.OFF)
     d1.on()
     self.assertEqual(d2.state, State.ON)
Beispiel #17
0
 def test_last_command(self):
     s1 = StateDevice()
     s1.on()
     self.assertEqual(s1.state, State.ON)
     s1.off()
     self.assertEqual(s1.state, State.OFF)
     self.assertEqual(s1.last_command, Command.OFF)
Beispiel #18
0
 def test_last_command(self):
     s1 = StateDevice()
     s1.on()
     self.assertEqual(s1.state, State.ON)
     s1.off()
     self.assertEqual(s1.state, State.OFF)
     self.assertEqual(s1.last_command, Command.OFF)
Beispiel #19
0
 def test_onStateChanged(self):
     s1 = StateDevice()
     custom = Mock()
     s1.on()
     s1.onStateChanged(custom.method)
     s1.off()
     custom.method.assert_called_with(State.OFF, source=None, prev=State.ON)
Beispiel #20
0
    def test_delay_multiple(self):
        d1 = StateDevice()
        d2 = StateDevice()
        d3 = StateDevice(devices=(d1, d2),
                         delay=(
                             {
                                 Attribute.COMMAND: (Command.OFF),
                                 Attribute.SOURCE: (d1),
                                 Attribute.SECS: 2,
                             },
                             {
                                 Attribute.COMMAND: Command.OFF,
                                 Attribute.SOURCE: d2,
                                 Attribute.SECS: 4,
                             },
                         ))
        self.assertEqual(d3.state, State.UNKNOWN)
        d3.on()
        self.assertEqual(d3.state, State.ON)
        d1.off()
        self.assertEqual(d3.state, State.ON)
        time.sleep(3)
        self.assertEqual(d3.state, State.OFF)

        #d2
        d3.on()
        self.assertEqual(d3.state, State.ON)
        d2.off()
        self.assertEqual(d3.state, State.ON)
        time.sleep(3)
        self.assertEqual(d3.state, State.ON)
        time.sleep(1)
        self.assertEqual(d3.state, State.OFF)
Beispiel #21
0
 def test_toggle_state(self):
     s1 = StateDevice()
     s1.on()
     self.assertEqual(s1.state, State.ON)
     s1.toggle()
     self.assertEqual(s1.state, State.OFF)
     s1.toggle()
     self.assertEqual(s1.state, State.ON)
Beispiel #22
0
 def test_previous_state_command(self):
     s1 = StateDevice()
     s1.on()
     self.assertEqual(s1.state, State.ON)
     s1.off()
     self.assertEqual(s1.state, State.OFF)
     s1.previous()
     self.assertEqual(s1.state, State.ON)
Beispiel #23
0
 def test_initial_from_device(self):
     d1 = StateDevice(
                       )
     self.assertEqual(d1.state, State.UNKNOWN)
     d1.on()
     self.assertEqual(d1.state, State.ON)
     d2 = StateDevice(devices=d1)
     self.assertEqual(d2.state, State.ON)
Beispiel #24
0
 def test_toggle_state(self):
     s1 = StateDevice()
     s1.on()
     self.assertEqual(s1.state, State.ON)
     s1.toggle()
     self.assertEqual(s1.state, State.OFF)
     s1.toggle()
     self.assertEqual(s1.state, State.ON)
Beispiel #25
0
 def test_previous_state_command(self):
     s1 = StateDevice()
     s1.on()
     self.assertEqual(s1.state, State.ON)
     s1.off()
     self.assertEqual(s1.state, State.OFF)
     s1.previous()
     self.assertEqual(s1.state, State.ON)
 def test_bind_devices_initial_state(self):
     s1 = StateDevice()
     self.assertEqual(s1.state, State.UNKNOWN)
     s1.on()
     self.assertEqual(s1.state, State.ON)
     s2 = StateDevice(s1)
     self.assertEqual(s2.state, State.ON)
     s3 = StateDevice(s1, initial_state=State.OFF)
     self.assertEqual(s3.state, State.OFF)
Beispiel #27
0
 def test_override_default_maps(self):
     d = StateDevice(
                      mapped={
                              Attribute.COMMAND: Command.ON,
                              Attribute.MAPPED: Command.OFF,
                              }
                      )
     d.on()
     self.assertEqual(d.state, State.OFF)
Beispiel #28
0
 def test_onStateChangedGlobal(self):
     s1 = StateDevice()
     custom = Mock()
     s1.on()
     StateDevice.test_onStateChangedGlobal(custom.method)
     s1.off()
     custom.method.assert_called_with(State.OFF,
                                      source=None,
                                      prev=State.ON,
                                      device=s1)
Beispiel #29
0
 def test_ignore_device(self):
     s1 = StateDevice()
     s2 = StateDevice(devices=s1,
                      ignore={
                              Attribute.SOURCE: s1
                              }
                      )
     self.assertEqual(s2.state, State.UNKNOWN)
     s1.on()
     self.assertEqual(s2.state, State.UNKNOWN)
 def test_idle(self):
     s1 = StateDevice()
     s2 = StateDevice(devices=s1,
                      idle_off=2
                      )
     s1.on()
     self.assertEqual(s2.state, State.ON)
     time.sleep(3)
     self.assertEqual(s2.state, State.OFF)
     s1.on()
     self.assertEqual(s2.state, State.ON)
Beispiel #31
0
 def test_trigger(self):
     s1 = StateDevice(
         trigger={
             Attribute.COMMAND: Command.ON,
             Attribute.MAPPED: Command.OFF,
             Attribute.SECS: 2
         })
     s1.on()
     self.assertEqual(s1.state, State.ON)
     time.sleep(3)
     self.assertEqual(s1.state, State.OFF)
Beispiel #32
0
 def test_map_delay(self):
     d = StateDevice(mapped={
         Attribute.COMMAND: Command.ON,
         Attribute.MAPPED: Command.OFF,
         Attribute.SECS: 2,
     }, )
     self.assertEqual(d.state, State.UNKNOWN)
     d.on()
     self.assertEqual(d.state, State.UNKNOWN)
     time.sleep(3)
     self.assertEqual(d.state, Command.OFF)
Beispiel #33
0
 def test_trigger(self):
     s1 = StateDevice(
                       trigger={
                                'command': Command.ON,
                                'mapped': Command.OFF,
                                'secs': 2
                                }
                       )
     s1.on();
     self.assertEqual(s1.state, State.ON)
     time.sleep(3)
     self.assertEqual(s1.state, State.OFF)
Beispiel #34
0
 def test_trigger(self):
     s1 = StateDevice(
                       trigger={
                                Attribute.COMMAND: Command.ON,
                                Attribute.MAPPED: Command.OFF,
                                Attribute.SECS: 2
                                }
                       )
     s1.on();
     self.assertEqual(s1.state, State.ON)
     time.sleep(3)
     self.assertEqual(s1.state, State.OFF)
Beispiel #35
0
 def test_ignore_multi_command(self):
     s1 = StateDevice()
     s2 = StateDevice(devices=s1,
                      ignore={
                              Attribute.COMMAND: (Command.ON, Command.OFF,)
                              },
                      )
     self.assertEqual(s2.state, State.UNKNOWN)
     s1.on()
     self.assertEqual(s2.state, State.UNKNOWN)
     s1.off()
     self.assertEqual(s2.state, State.UNKNOWN)
Beispiel #36
0
 def test_ignore_multiples_state(self):
     s1 = StateDevice()
     s2 = StateDevice(
         devices=s1,
         ignore={Attribute.COMMAND: (Command.ON, Command.OFF)},
     )
     self.assertEqual(s2.state, State.UNKNOWN)
     s1.on()
     self.assertEqual(s2.state, State.UNKNOWN)
     s1.off()
     self.assertEqual(s2.state, State.UNKNOWN)
     s1.on()
     self.assertEqual(s2.state, State.UNKNOWN)
Beispiel #37
0
 def test_map(self):
     d1 = StateDevice()
     d2 = StateDevice()
     d3 = StateDevice(devices=(d1, d2),
                       mapped={Attribute.COMMAND: Command.ON,
                                Attribute.MAPPED: Command.OFF,
                                Attribute.SOURCE: d2}
                       )
     self.assertEqual(d3.state, State.UNKNOWN)
     d1.on()
     self.assertEqual(d3.state, State.ON)
     d2.on()
     self.assertEqual(d3.state, State.OFF)
Beispiel #38
0
 def test_idle_timer(self):
     s1 = StateDevice()
     s2 = StateDevice(devices=s1,
                      idle={
                          Attribute.MAPPED: State.OFF,
                          Attribute.SECS: 2,
                      })
     s1.on()
     self.assertEqual(s2.state, State.ON)
     time.sleep(3)
     self.assertEqual(s2.state, State.OFF)
     s1.on()
     self.assertEqual(s2.state, State.ON)
Beispiel #39
0
 def test_map_delay(self):
     d = StateDevice(
                      mapped={
                              Attribute.COMMAND: Command.ON,
                              Attribute.MAPPED: Command.OFF,
                              Attribute.SECS: 2,
                              },
                      )
     self.assertEqual(d.state, State.UNKNOWN)
     d.on()
     self.assertEqual(d.state, State.UNKNOWN)
     time.sleep(3)
     self.assertEqual(d.state, Command.OFF)
Beispiel #40
0
 def test_delay_single(self):
     d1 = StateDevice(delay={
         Attribute.COMMAND: Command.OFF,
         Attribute.SECS: 2,
     })
     self.assertEqual(d1.state, State.UNKNOWN)
     d1.on()
     self.assertEqual(d1.state, State.ON)
     d1.off()
     self.assertEqual(d1.state, State.ON)
     time.sleep(3)
     #        time.sleep(20000)
     self.assertEqual(d1.state, State.OFF)
Beispiel #41
0
 def test_map(self):
     d1 = StateDevice()
     d2 = StateDevice()
     d3 = StateDevice(devices=(d1, d2),
                       mapped={'command': Command.ON,
                                'mapped': Command.OFF,
                                'source': d2}
                       )
     self.assertEqual(d3.state, State.UNKNOWN)
     d1.on()
     self.assertEqual(d3.state, State.ON)
     d2.on()
     self.assertEqual(d3.state, State.OFF)
Beispiel #42
0
 def test_ignore_state(self):
     s1 = StateDevice()
     s2 = StateDevice(devices = s1,
                       ignore={
                               Attribute.COMMAND: Command.ON,
                               Attribute.SOURCE: s1,
                               },
                       )
     s1.on()
     self.assertEqual(s2.state, State.UNKNOWN)
     s1.off()
     self.assertEqual(s2.state, State.OFF)
     s1.on()
     self.assertEqual(s2.state, State.OFF)
Beispiel #43
0
 def test_map(self):
     d1 = StateDevice()
     d2 = StateDevice()
     d3 = StateDevice(devices=(d1, d2),
                      mapped={
                          Attribute.COMMAND: Command.ON,
                          Attribute.MAPPED: Command.OFF,
                          Attribute.SOURCE: d2
                      })
     self.assertEqual(d3.state, State.UNKNOWN)
     d1.on()
     self.assertEqual(d3.state, State.ON)
     d2.on()
     self.assertEqual(d3.state, State.OFF)
Beispiel #44
0
 def test_idle_timer(self):
     s1 = StateDevice()
     s2 = StateDevice(devices=s1,
                      idle={
                            Attribute.MAPPED: State.OFF,
                            Attribute.SECS: 2,
                            }
                      )
     s1.on()
     self.assertEqual(s2.state, State.ON)
     time.sleep(3)
     self.assertEqual(s2.state, State.OFF)
     s1.on()
     self.assertEqual(s2.state, State.ON)
Beispiel #45
0
    def test_delay_single(self):
        d1 = StateDevice(
                          delay={Attribute.COMMAND: Command.OFF,
                                 Attribute.SECS: 2,
                                 }
                          )
        self.assertEqual(d1.state, State.UNKNOWN)
        d1.on()
        self.assertEqual(d1.state, State.ON)
        d1.off()
        self.assertEqual(d1.state, State.ON)
        time.sleep(3)
#        time.sleep(20000)
        self.assertEqual(d1.state, State.OFF)
Beispiel #46
0
 def test_idle_timer(self):
     s1 = StateDevice()
     s2 = StateDevice(devices=s1,
                      idle={
                            'command': State.OFF,
                            'secs': 2,
                            }
                      )
     s1.on()
     self.assertEqual(s2.state, State.ON)
     time.sleep(3)
     self.assertEqual(s2.state, State.OFF)
     s1.on()
     self.assertEqual(s2.state, State.ON)
Beispiel #47
0
    def test_delay_single(self):
        d1 = StateDevice(
                          delay={'command': Command.OFF,
                                 'secs': 2,
                                 }
                          )
        self.assertEqual(d1.state, State.UNKNOWN)
        d1.on()
        self.assertEqual(d1.state, State.ON)
        d1.off()
        self.assertEqual(d1.state, State.ON)
        time.sleep(3)
#        time.sleep(20000)
        self.assertEqual(d1.state, State.OFF)
Beispiel #48
0
 def test_ignore_state(self):
     s1 = StateDevice()
     s2 = StateDevice(devices = s1,
                       ignore={
                               'command': Command.ON,
                               'source:': s1,
                               },
                       )
     s1.on()
     self.assertEqual(s2.state, State.UNKNOWN)
     s1.off()
     self.assertEqual(s2.state, State.OFF)
     s1.on()
     self.assertEqual(s2.state, State.OFF)
Beispiel #49
0
    def test_time_cron_off(self):
        now = datetime.now()
        hours, mins, secs = now.timetuple()[3:6]
        secs = (secs + 2) % 60
        mins += (secs + 2) / 60
        ctime = (secs, mins, hours)

        s = StateDevice(time={
            Attribute.COMMAND: Command.OFF,
            Attribute.TIME: ctime,
        })
        s.on()
        self.assertEqual(s.state, Command.ON)
        time.sleep(3)
        self.assertEqual(s.state, Command.OFF)
Beispiel #50
0
 def test_state_remove_device(self):
     s1 = StateDevice()
     s2 = StateDevice(devices=s1)
     s1.on()
     self.assertEqual(s2.state, State.ON)
     s2.off()
     self.assertEqual(s2.state, State.OFF)        
     r=s2.remove_device(s1)
     self.assertTrue(r)
     self.assertEqual(s2.state, State.OFF)        
     s1.on()
     self.assertEqual(s2.state, State.OFF)     
     # remove again and not error
     r = s2.remove_device(s1)
     self.assertFalse(r)
Beispiel #51
0
 def test_state_remove_device(self):
     s1 = StateDevice()
     s2 = StateDevice(devices=s1)
     s1.on()
     self.assertEqual(s2.state, State.ON)
     s2.off()
     self.assertEqual(s2.state, State.OFF)
     r = s2.remove_device(s1)
     self.assertTrue(r)
     self.assertEqual(s2.state, State.OFF)
     s1.on()
     self.assertEqual(s2.state, State.OFF)
     # remove again and not error
     r = s2.remove_device(s1)
     self.assertFalse(r)
Beispiel #52
0
 def test_map_sources(self):
     d1 = StateDevice()
     d2 = StateDevice()
     d3 = StateDevice()
     d4 = StateDevice(devices=(d1, d2, d3),
                      mapped={
                          Attribute.COMMAND: Command.ON,
                          Attribute.SOURCE: (d1, d2),
                          Attribute.MAPPED: Command.OFF,
                      })
     self.assertEqual(d4.state, State.UNKNOWN)
     d3.on()
     self.assertEqual(d4.state, State.ON)
     d2.on()
     self.assertEqual(d4.state, State.OFF)
Beispiel #53
0
 def test_ignore_state(self):
     s1 = StateDevice()
     s2 = StateDevice(
         devices=s1,
         ignore={
             Attribute.COMMAND: Command.ON,
             Attribute.SOURCE: s1,
         },
     )
     s1.on()
     self.assertEqual(s2.state, State.UNKNOWN)
     s1.off()
     self.assertEqual(s2.state, State.OFF)
     s1.on()
     self.assertEqual(s2.state, State.OFF)
Beispiel #54
0
    def test_restriction_specific_state(self):
        # Dark = ON
        # light = OFF
        sr = StateDevice()
        s2 = StateDevice(devices=(sr),
                         restriction={
                             Attribute.SOURCE: sr,
                             Attribute.STATE: State.OFF,
                             Attribute.TARGET: Command.ON,
                         })

        # Restrict
        sr.on()
        self.assertEqual(State.ON, s2.state)
        sr.off()
        self.assertEqual(State.OFF, s2.state)
Beispiel #55
0
 def test_delay(self):
     d1 = StateDevice()
     d2 = StateDevice(devices=d1,
                      delay={
                          Attribute.COMMAND: Command.OFF,
                          Attribute.MAPPED: (Command.LEVEL, 80),
                          Attribute.SOURCE: d1,
                          Attribute.SECS: 2,
                      })
     self.assertEqual(d2.state, State.UNKNOWN)
     d1.on()
     self.assertEqual(d2.state, State.ON)
     d1.off()
     self.assertEqual(d2.state, State.ON)
     time.sleep(3)
     #        time.sleep(2000)
     self.assertEqual(d2.state, (State.LEVEL, 80))
Beispiel #56
0
 def test_idle_timer_then_trigger(self):
     s1 = StateDevice()
     s2 = StateDevice(devices=s1,
                      trigger={
                          Attribute.COMMAND: State.ON,
                          Attribute.MAPPED: State.OFF,
                          Attribute.SECS: 4,
                      },
                      idle={
                          Attribute.MAPPED: State.UNKNOWN,
                          Attribute.SECS: 2,
                      })
     s1.on()
     self.assertEqual(s2.state, State.ON)
     time.sleep(3)
     self.assertEqual(s2.state, State.UNKNOWN)
     time.sleep(5)
     self.assertEqual(s2.state, State.OFF)
Beispiel #57
0
    def test_initial(self):
        interface = Mock()
        p = PropertyMock(side_effect=ValueError)
        type(interface).state = p
        device = InterfaceDevice(address='asdf',
                                 devices=interface,
                                 initial=State.ON)
        interface.on.assert_called_with('asdf')
        #        interface.initial.assert_called_with('asdf')

        device1 = StateDevice()
        device1.on()
        interface2 = Mock()
        type(interface2).state = p
        device = InterfaceDevice(address='asdf',
                                 devices=interface2,
                                 initial=State.ON)
        interface2.on.assert_called_with('asdf')
Beispiel #58
0
 def test_delay_cancel_on_other_state(self):
     d1 = StateDevice()
     d2 = StateDevice(
         devices=d1,
         initial=State.OFF,
         delay={
             Attribute.COMMAND: Command.OFF,
             Attribute.SECS: 2,
         },
     )
     self.assertEqual(d2.state, State.UNKNOWN)
     d1.on()
     self.assertEqual(d2.state, State.ON)
     d1.off()
     self.assertEqual(d2.state, State.ON)
     d1.on()
     self.assertEqual(d2.state, State.ON)
     time.sleep(3)
     self.assertEqual(d2.state, State.ON)
Beispiel #59
0
 def test_idle_source(self):
     s1 = StateDevice()
     s2 = StateDevice()
     s1.off()
     s2.off()
     s3 = StateDevice(devices=(s1, s2),
                      idle={
                          Attribute.MAPPED: State.OFF,
                          Attribute.SECS: 2,
                          Attribute.SOURCE: s2
                      })
     s1.on()
     self.assertEqual(s3.state, State.ON)
     time.sleep(3)
     self.assertEqual(s3.state, State.ON)
     s2.on()
     self.assertEqual(s3.state, State.ON)
     time.sleep(3)
     self.assertEqual(s3.state, State.OFF)
Beispiel #60
0
 def test_manual_state(self):
     d1 = StateDevice()
     d2 = StateDevice(
         devices=d1,
         delay={
             Attribute.COMMAND: Command.OFF,
             Attribute.SECS: 2
         },
     )
     d2.on()
     self.assertEqual(d2.state, State.ON)
     d2.manual()
     d2.off()
     self.assertEqual(d2.state, State.OFF)
     d2.on()
     d2.automatic()
     d2.off()
     self.assertEqual(d2.state, State.ON)
     time.sleep(3)
     self.assertEqual(d2.state, State.OFF)