Add servo tests.

This commit is contained in:
Ian Joseph Wilson
2013-06-15 14:20:46 -07:00
parent 1c2b85daf9
commit 593c753fb0

View File

@@ -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()