def test__get_switch(self): """ Tests if an error is set when a switch cannot be connected. Due to the connection timeout this test can take several seconds to complete. """ # We capture stderr to check for invalid input IP with mock.patch('sys.stderr', new=io.StringIO()) as test_srderr: # Invalid _coffee_switch_name causes to print an error switch = HardwareSwitch._get_switch('127.0.0.1') self.assert_stderr(test_srderr) self.assertIsNone(switch) # Test that the default IP returns a connected switch instance switch = HardwareSwitch._get_switch() self.assertEqual(type(switch), WemoSwitch)
def test_safe_on(self): """ Tests the default switch Turns ON only if already ON. """ switch = HardwareSwitch._get_switch() switch_is_on = switch.get_state() if switch_is_on is True: switch.turn_off() switch_is_on = switch.get_state() self.assertFalse(switch_is_on) HardwareSwitch.safe_on() switch_is_on = switch.get_state() self.assertTrue(switch_is_on) # We capture stderr to check for swtich already ON when called and # mock the turn off method to check if it was called with mock.patch('sys.stderr', new=io.StringIO()) as test_srderr: with mock.patch('LightUpHardware.pywemoswitch.WemoSwitch') as \ mock_switch: self.assert_stderr(test_srderr, True) HardwareSwitch.safe_on() self.assertEqual(mock_switch.turn_off.call_count, 0) self.assert_stderr(test_srderr) switch_is_on = switch.get_state() self.assertTrue(switch_is_on) # to clean up, turn the switch off sleep(1) switch.turn_off()
def test_switch_on_off(self): """ Tests the switch Turns ON and OFF with the default input and a given switch. """ state = HardwareSwitch.switch_on() self.assertTrue(state) sleep(1) state = HardwareSwitch.switch_off() self.assertFalse(state) switch = HardwareSwitch._get_switch() state = HardwareSwitch.switch_on(switch) self.assertTrue(state) sleep(1) state = HardwareSwitch.switch_off(switch) self.assertFalse(state)