class MotorControllerTest(unittest.TestCase): def setUp(self): p = MockPwm() self.p_output = MockPidOutput() p_controller = MockPid(self.p_output) q = MockQep() self.m = MotorController(p, p_controller, self.p_output, q) self.m_pid_disabled = MotorController(p, p_controller, self.p_output, q, False) pass def test_motor_controller_init(self): self.assertTrue(isinstance(self.m, Thread)) self.assertTrue(isinstance(self.m.pwm, MockPwm)) self.assertTrue(isinstance(self.m.qep, MockQep)) self.assertTrue(isinstance(self.m.pid, MockPid)) # Test default values self.assertEqual(self.m.pid_enabled, True) def test_motor_controlling(self): self.m.set_speed(1.0) self.assertEqual(1.0, self.m.pid.set_point) time.sleep(0.1) self.assertEqual(self.p_output.value, 1.0) self.m_pid_disabled.set_speed(1.0) time.sleep(0.1) self.assertEqual(1.0, self.m_pid_disabled.speed_to_command)