Coverage for microbit/test_microbit.py: 100%
74 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-04 20:20 -0500
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-04 20:20 -0500
1from birdbrain_exception import BirdbrainException
2from birdbrain_hummingbird import BirdbrainHummingbird
3from birdbrain_microbit import BirdbrainMicrobit
4from birdbrain_state import BirdbrainState
6import pytest
7import time
8import random
10def test_connect_device_name_as_none():
11 with pytest.raises(BirdbrainException) as e:
12 microbit = BirdbrainMicrobit(None)
13 assert e.value.message == "Missing device name"
15def test_connect_bad_device_name():
16 with pytest.raises(BirdbrainException) as e:
17 microbit = BirdbrainMicrobit.connect('D')
18 assert e.value.message == "Invalid device name: D"
20def test_connect_valid_device_name():
21 microbit = BirdbrainMicrobit.connect("A")
23 assert microbit.device == "A"
25def test_is():
26 microbit = BirdbrainMicrobit.connect("A")
28 assert microbit.is_connected()
29 assert not microbit.is_microbit()
30 assert microbit.is_hummingbird()
31 assert not microbit.is_finch()
33 assert microbit.isConnectionValid()
34 assert not microbit.isMicrobit()
35 assert microbit.isHummingbird()
36 assert not microbit.isFinch()
38def test_display_with_alias():
39 hummingbird = BirdbrainHummingbird("A")
41 assert hummingbird.display([ 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 ])
43 time.sleep(0.15)
45 assert hummingbird.setDisplay([ 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 ])
47 time.sleep(0.15)
49 hummingbird.stop_all()
51def test_display_wrong_size():
52 with pytest.raises(BirdbrainException) as e:
53 hummingbird = BirdbrainHummingbird("A")
55 hummingbird.display([ 0,1 ])
56 assert e.value.message == "Error: display() requires a list of length 25"
58def test_point_and_clear_display_with_alias():
59 hummingbird = BirdbrainHummingbird("A")
61 for i in range(2):
62 assert hummingbird.point(2, 2, 1)
63 assert hummingbird.point(2, 4, 1)
64 assert hummingbird.point(4, 2, 1)
65 assert hummingbird.setPoint(4, 4, 1)
67 time.sleep(0.15)
69 hummingbird.clear_display()
71def test_point_true_or_false():
72 hummingbird = BirdbrainHummingbird("A")
74 assert hummingbird.point(3, 3, True)
76 time.sleep(0.15)
78 assert hummingbird.point(3, 3, False)
80def test_point_out_of_range():
81 with pytest.raises(BirdbrainException) as e:
82 hummingbird = BirdbrainHummingbird("A")
84 assert hummingbird.point(999, 1, 1)
85 assert e.value.message == "Error: point out of range"
87def test_print():
88 hummingbird = BirdbrainHummingbird("A")
90 hummingbird.print("A")
92 time.sleep(1)
94def test_play_note_with_alias():
95 hummingbird = BirdbrainHummingbird("A")
97 hummingbird.play_note(75, 0.5)
99 time.sleep(0.25)
101 hummingbird.playNote(40, 0.5)
103 time.sleep(0.25)
105 hummingbird.beep()
107def test_stop_all():
108 hummingbird = BirdbrainHummingbird("A")
110 hummingbird.stop_all()
111 hummingbird.stopAll()