Skip to content

Commit 90d0853

Browse files
committed
Merge pull request #33 from ddemidov/tests
Unit testing
2 parents a44f6a1 + 7054891 commit 90d0853

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+136
-0
lines changed

.travis.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
language: python
2+
python:
3+
- 2.7
4+
5+
sudo: false
6+
7+
install:
8+
- pip install PIL --allow-external PIL --allow-unverified PIL
9+
10+
script:
11+
- ./tests/api_tests.py

README.md

Lines changed: 4 additions & 0 deletions

tests/README.md

Lines changed: 8 additions & 0 deletions

tests/api_tests.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#!/usr/bin/env python
2+
import unittest, sys, os
3+
4+
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
5+
6+
import ev3dev
7+
8+
ev3dev.Device.DEVICE_ROOT_PATH = os.path.join(os.path.dirname(__file__), 'fake_sys_class')
9+
10+
class TestAPI(unittest.TestCase):
11+
def test_device(self):
12+
d = ev3dev.Device('tacho-motor', 'motor*')
13+
self.assertTrue(d.connected)
14+
15+
d = ev3dev.Device('tacho-motor', 'motor0')
16+
self.assertTrue(d.connected)
17+
18+
d = ev3dev.Device('tacho-motor', 'motor*', driver_name='lego-ev3-m-motor')
19+
self.assertTrue(d.connected)
20+
21+
d = ev3dev.Device('tacho-motor', 'motor*', port_name='outA')
22+
self.assertTrue(d.connected)
23+
24+
d = ev3dev.Device('tacho-motor', 'motor*', port_name='outA', driver_name='not-valid')
25+
self.assertTrue(not d.connected)
26+
27+
d = ev3dev.Device('lego-sensor', 'sensor*')
28+
self.assertTrue(d.connected)
29+
30+
def test_medium_motor(self):
31+
m = ev3dev.MediumMotor()
32+
33+
self.assertTrue(m.connected);
34+
35+
self.assertEqual(m.count_per_rot, 360)
36+
self.assertEqual(m.commands, ['run-forever', 'run-to-abs-pos', 'run-to-rel-pos', 'run-timed', 'run-direct', 'stop', 'reset'])
37+
self.assertEqual(m.driver_name, 'lego-ev3-m-motor')
38+
self.assertEqual(m.duty_cycle, 0)
39+
self.assertEqual(m.duty_cycle_sp, 42)
40+
self.assertEqual(m.encoder_polarity, 'normal')
41+
self.assertEqual(m.polarity, 'normal')
42+
self.assertEqual(m.port_name, 'outA')
43+
self.assertEqual(m.position, 42)
44+
self.assertEqual(m.position_sp, 42)
45+
self.assertEqual(m.ramp_down_sp, 0)
46+
self.assertEqual(m.ramp_up_sp, 0)
47+
self.assertEqual(m.speed, 0)
48+
self.assertEqual(m.speed_regulation_enabled, 'off')
49+
self.assertEqual(m.speed_sp, 0)
50+
self.assertEqual(m.state, [])
51+
self.assertEqual(m.stop_command, 'coast')
52+
self.assertEqual(m.time_sp, 1000)
53+
54+
with self.assertRaises(Exception):
55+
c = m.command
56+
57+
def test_infrared_sensor(self):
58+
s = ev3dev.InfraredSensor()
59+
60+
self.assertTrue(s.connected)
61+
62+
self.assertEqual(s.bin_data_format, 's8')
63+
self.assertEqual(s.bin_data('<b'), (16,))
64+
self.assertEqual(s.num_values, 1)
65+
self.assertEqual(s.port_name, 'in1')
66+
self.assertEqual(s.value(0), 16)
67+
68+
if __name__ == "__main__":
69+
unittest.main()
32 Bytes
Binary file not shown.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
s8

tests/fake_sys_class/lego-sensor/sensor0/command

Whitespace-only changes.

tests/fake_sys_class/lego-sensor/sensor0/commands

Whitespace-only changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0

tests/fake_sys_class/lego-sensor/sensor0/direct

Whitespace-only changes.

0 commit comments

Comments
 (0)