Skip to content

Commit 208c3dc

Browse files
committed
Test InfraredSensor
1 parent 2896610 commit 208c3dc

30 files changed

+58
-0
lines changed

tests/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Commands used to copy the /sys/class node:
2+
3+
```sh
4+
node=lego-sensor/sensor0
5+
mkdir -p ./${node}
6+
# Copy contents of special files, do not follow symlinks:
7+
cp -P --copy-contents -r /sys/class/${node}/* ./${node}/
8+
```

tests/api_tests.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,32 @@
88
ev3dev.Device.DEVICE_ROOT_PATH = os.path.join(os.path.dirname(__file__), 'fake_sys_class')
99

1010
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+
1130
def test_medium_motor(self):
1231
m = ev3dev.MediumMotor()
1332

1433
self.assertTrue(m.connected);
34+
1535
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'])
1637
self.assertEqual(m.driver_name, 'lego-ev3-m-motor')
1738
self.assertEqual(m.duty_cycle, 0)
1839
self.assertEqual(m.duty_cycle_sp, 42)
@@ -30,6 +51,19 @@ def test_medium_motor(self):
3051
self.assertEqual(m.stop_command, 'coast')
3152
self.assertEqual(m.time_sp, 1000)
3253

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)
3367

3468
if __name__ == "__main__":
3569
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.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lego-ev3-ir
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

0 commit comments

Comments
 (0)