Skip to content

Commit 614a4f1

Browse files
authored
Test more sensors and devices (#144)
1 parent 389a45e commit 614a4f1

File tree

3 files changed

+145
-0
lines changed

3 files changed

+145
-0
lines changed

test/light.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
"""Test light functionality"""
2+
3+
import time
4+
import unittest
5+
6+
from buildhat import Light
7+
from buildhat.exc import LightError
8+
9+
10+
class TestLight(unittest.TestCase):
11+
"""Test light functions"""
12+
13+
def test_light(self):
14+
"""Test light functions"""
15+
light = Light('A')
16+
light.on()
17+
light.brightness(0)
18+
light.brightness(100)
19+
time.sleep(1)
20+
light.brightness(25)
21+
time.sleep(1)
22+
self.assertRaises(LightError, light.brightness, -1)
23+
self.assertRaises(LightError, light.brightness, 101)
24+
light.off()
25+
26+
27+
if __name__ == '__main__':
28+
unittest.main()

test/matrix.py

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
"""Test matrix functionality"""
2+
3+
import time
4+
import unittest
5+
6+
from buildhat import Matrix
7+
from buildhat.exc import MatrixError
8+
9+
10+
class TestMatrix(unittest.TestCase):
11+
"""Test matrix functions"""
12+
13+
def test_matrix(self):
14+
"""Test setting matrix pixels"""
15+
matrix = Matrix('A')
16+
matrix.set_pixels([[(10, 10) for x in range(3)] for y in range(3)])
17+
time.sleep(1)
18+
self.assertRaises(MatrixError, matrix.set_pixels, [[(10, 10) for x in range(3)] for y in range(4)])
19+
self.assertRaises(MatrixError, matrix.set_pixels, [[(10, 10) for x in range(4)] for y in range(3)])
20+
self.assertRaises(MatrixError, matrix.set_pixels, [[(11, 10) for x in range(3)] for y in range(3)])
21+
self.assertRaises(MatrixError, matrix.set_pixels, [[(-1, 10) for x in range(3)] for y in range(3)])
22+
self.assertRaises(MatrixError, matrix.set_pixels, [[(10, 11) for x in range(3)] for y in range(3)])
23+
self.assertRaises(MatrixError, matrix.set_pixels, [[(10, -1) for x in range(3)] for y in range(3)])
24+
self.assertRaises(MatrixError, matrix.set_pixels, [[("gold", 10) for x in range(3)] for y in range(3)])
25+
self.assertRaises(MatrixError, matrix.set_pixels, [[(10, "test") for x in range(3)] for y in range(3)])
26+
matrix.set_pixels([[("pink", 10) for x in range(3)] for y in range(3)])
27+
time.sleep(1)
28+
29+
def test_clear(self):
30+
"""Test clearing matrix"""
31+
matrix = Matrix('A')
32+
matrix.clear()
33+
matrix.clear((10, 10))
34+
time.sleep(1)
35+
matrix.clear(("yellow", 10))
36+
time.sleep(1)
37+
self.assertRaises(MatrixError, matrix.clear, ("gold", 10))
38+
self.assertRaises(MatrixError, matrix.clear, (10, -1))
39+
self.assertRaises(MatrixError, matrix.clear, (10, 11))
40+
self.assertRaises(MatrixError, matrix.clear, (-1, 10))
41+
self.assertRaises(MatrixError, matrix.clear, (10, 11))
42+
43+
def test_transition(self):
44+
"""Test transitions"""
45+
matrix = Matrix('A')
46+
matrix.clear(("green", 10))
47+
time.sleep(1)
48+
matrix.set_transition(1)
49+
matrix.set_pixels([[("blue", 10) for x in range(3)] for y in range(3)])
50+
time.sleep(4)
51+
matrix.set_transition(2)
52+
matrix.set_pixels([[("red", 10) for x in range(3)] for y in range(3)])
53+
time.sleep(4)
54+
matrix.set_transition(0)
55+
self.assertRaises(MatrixError, matrix.set_transition, -1)
56+
self.assertRaises(MatrixError, matrix.set_transition, 3)
57+
self.assertRaises(MatrixError, matrix.set_transition, "test")
58+
59+
def test_level(self):
60+
"""Test level"""
61+
matrix = Matrix('A')
62+
matrix.clear(("orange", 10))
63+
time.sleep(1)
64+
matrix.level(5)
65+
time.sleep(4)
66+
self.assertRaises(MatrixError, matrix.level, -1)
67+
self.assertRaises(MatrixError, matrix.level, 10)
68+
self.assertRaises(MatrixError, matrix.level, "test")
69+
70+
def test_pixel(self):
71+
"""Test pixel"""
72+
matrix = Matrix('A')
73+
matrix.clear()
74+
matrix.set_pixel((0, 0), ("red", 10))
75+
matrix.set_pixel((2, 2), ("red", 10))
76+
time.sleep(1)
77+
self.assertRaises(MatrixError, matrix.set_pixel, (-1, 0), ("red", 10))
78+
self.assertRaises(MatrixError, matrix.set_pixel, (0, -1), ("red", 10))
79+
self.assertRaises(MatrixError, matrix.set_pixel, (3, 0), ("red", 10))
80+
self.assertRaises(MatrixError, matrix.set_pixel, (0, 3), ("red", 10))
81+
self.assertRaises(MatrixError, matrix.set_pixel, (0, 0), ("gold", 10))
82+
self.assertRaises(MatrixError, matrix.set_pixel, (0, 0), ("red", -1))
83+
self.assertRaises(MatrixError, matrix.set_pixel, (0, 0), ("red", 11))
84+
85+
86+
if __name__ == '__main__':
87+
unittest.main()

test/wedo.py

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
"""Test wedo sensor functionality"""
2+
3+
import unittest
4+
5+
from buildhat import MotionSensor, TiltSensor
6+
7+
8+
class TestWeDo(unittest.TestCase):
9+
"""Test wedo sensor functions"""
10+
11+
def test_motionsensor(self):
12+
"""Test motion sensor"""
13+
motion = MotionSensor('A')
14+
dist = motion.get_distance()
15+
self.assertIsInstance(dist, int)
16+
17+
def test_tiltsensor(self):
18+
"""Test tilt sensor
19+
20+
ToDo - Test when I re-find this sensor
21+
"""
22+
tilt = TiltSensor('B')
23+
tvalue = tilt.get_tilt()
24+
self.assertIsInstance(tvalue, tuple)
25+
self.assertIsInstance(tvalue[0], int)
26+
self.assertIsInstance(tvalue[1], int)
27+
28+
29+
if __name__ == '__main__':
30+
unittest.main()

0 commit comments

Comments
 (0)