Ejemplo n.º 1
0
 def test_broken(self):
     gpio = DeterministicGate("broken")
     ctrl = GateController(gpio, TESTLOGGER)
     with self.assertRaises(ValueError):
         ctrl.get_state()
     with self.assertRaises(ValueError):
         ctrl.move_to_state("up")
Ejemplo n.º 2
0
 def test_already_closed(self):
     gpio = DeterministicGate("down")
     ctrl = GateController(gpio, TESTLOGGER)
     self.assertEqual(ctrl.get_state(), "down")
     ctrl.move_to_state("down")
     self.assertEqual(ctrl.get_state(), "down")
     self.assertEqual(gpio.triggered, 0)
Ejemplo n.º 3
0
 def test_simple_close(self):
     gpio = DeterministicGate("up")
     ctrl = GateController(gpio, TESTLOGGER)
     self.assertEqual(ctrl.get_state(), "up")
     gpio.states_after_trigger.extend([(1, "unknown"), (20, "down")])
     ctrl.move_to_state("down")
     self.assertEqual(ctrl.get_state(), "down")
     self.assertEqual(gpio.triggered, 1)
Ejemplo n.º 4
0
 def test_trigger(self):
     gpio = DeterministicGate("unknown")
     ctrl = GateController(gpio, TESTLOGGER)
     self.assertFalse(gpio.motor_pin_state)
     self.assertEqual(gpio.triggered, 0)
     ctrl.trigger()
     self.assertFalse(gpio.motor_pin_state)
     self.assertEqual(gpio.triggered, 1)
     ctrl.trigger()
     self.assertFalse(gpio.motor_pin_state)
     self.assertEqual(gpio.triggered, 2)
Ejemplo n.º 5
0
 def test_unknown_open(self):
     gpio = DeterministicGate("unknown")
     ctrl = GateController(gpio, TESTLOGGER)
     self.assertEqual(ctrl.get_state(), "transitioning")
     gpio.states_after_trigger.extend([
         (20, "down"),
         None,  # gate closes
         (1, "unknown"),
         (20, "up")
     ])  # gate opens
     ctrl.move_to_state("up")
     self.assertEqual(ctrl.get_state(), "up")
     self.assertEqual(gpio.triggered, 2)
Ejemplo n.º 6
0
 def test_interrupted_close(self):
     gpio = DeterministicGate("up")
     ctrl = GateController(gpio, TESTLOGGER)
     self.assertEqual(ctrl.get_state(), "up")
     gpio.states_after_trigger.extend([
         (1, "unknown"),
         None,  # gate starts moving, but someone stops it so it never arrives anywhere
         (1, "unknown"),
         (20, "down")
     ])
     ctrl.move_to_state("down")
     self.assertEqual(ctrl.get_state(), "down")
     self.assertEqual(gpio.triggered, 2)
Ejemplo n.º 7
0
 def test_get_state_transitioning(self):
     gpio = DeterministicGate("unknown")
     ctrl = GateController(gpio, TESTLOGGER)
     self.assertEqual(ctrl.get_state(), "transitioning")
Ejemplo n.º 8
0
 def test_get_state_up(self):
     gpio = DeterministicGate("up")
     ctrl = GateController(gpio, TESTLOGGER)
     self.assertEqual(ctrl.get_state(), "up")