diff --git a/tests/test_arduino.py b/tests/test_arduino.py index 8787de6..51c138d 100644 --- a/tests/test_arduino.py +++ b/tests/test_arduino.py @@ -190,5 +190,71 @@ class TestArduino(ArduinoTestCase): build_cmd_str('aw', (pin, value))) +class TestServos(ArduinoTestCase): + + def test_attach(self): + from Arduino.arduino import build_cmd_str + pin = 10 + position = 0 + self.mock_serial.push_line(position) + servo_min = 544 + servo_max = 2400 + self.board.Servos.attach(pin, min=servo_min, max=servo_max) + self.assertEquals(self.mock_serial.output[0], + build_cmd_str('sva', (pin, servo_min, servo_max))) + + def test_detach(self): + from Arduino.arduino import build_cmd_str + pin = 10 + position = 0 + # Attach first. + self.mock_serial.push_line(position) + self.board.Servos.attach(pin) + self.mock_serial.reset_mock() + self.board.Servos.detach(pin) + self.assertEquals(self.mock_serial.output[0], + build_cmd_str('svd', (position,))) + + def test_write(self): + from Arduino.arduino import build_cmd_str + pin = 10 + position = 0 + angle = 90 + # Attach first. + self.mock_serial.push_line(position) + self.board.Servos.attach(pin) + self.mock_serial.reset_mock() + self.board.Servos.write(pin, angle) + self.assertEquals(self.mock_serial.output[0], + build_cmd_str("svw", (position, angle))) + + def test_writeMicroseconds(self): + from Arduino.arduino import build_cmd_str + pin = 10 + position = 0 + microseconds = 1500 + # Attach first. + self.mock_serial.push_line(position) + self.board.Servos.attach(pin) + self.mock_serial.reset_mock() + self.board.Servos.writeMicroseconds(pin, microseconds) + self.assertEquals(self.mock_serial.output[0], + build_cmd_str("svwm", (position, microseconds))) + + def test_read(self): + from Arduino.arduino import build_cmd_str + pin = 10 + position = 0 + angle = 90 + # Attach first. + self.mock_serial.push_line(position) + self.board.Servos.attach(pin) + self.mock_serial.reset_mock() + self.mock_serial.push_line(angle) + self.assertEquals(self.board.Servos.read(pin), angle) + self.assertEquals(self.mock_serial.output[0], + build_cmd_str("svr", (position,))) + + if __name__ == '__main__': unittest.main()