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

1from birdbrain_exception import BirdbrainException 

2from birdbrain_hummingbird import BirdbrainHummingbird 

3from birdbrain_microbit import BirdbrainMicrobit 

4from birdbrain_state import BirdbrainState 

5 

6import pytest 

7import time 

8import random 

9 

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" 

14 

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" 

19 

20def test_connect_valid_device_name(): 

21 microbit = BirdbrainMicrobit.connect("A") 

22 

23 assert microbit.device == "A" 

24 

25def test_is(): 

26 microbit = BirdbrainMicrobit.connect("A") 

27 

28 assert microbit.is_connected() 

29 assert not microbit.is_microbit() 

30 assert microbit.is_hummingbird() 

31 assert not microbit.is_finch() 

32 

33 assert microbit.isConnectionValid() 

34 assert not microbit.isMicrobit() 

35 assert microbit.isHummingbird() 

36 assert not microbit.isFinch() 

37 

38def test_display_with_alias(): 

39 hummingbird = BirdbrainHummingbird("A") 

40 

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

42 

43 time.sleep(0.15) 

44 

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

46 

47 time.sleep(0.15) 

48 

49 hummingbird.stop_all() 

50 

51def test_display_wrong_size(): 

52 with pytest.raises(BirdbrainException) as e: 

53 hummingbird = BirdbrainHummingbird("A") 

54 

55 hummingbird.display([ 0,1 ]) 

56 assert e.value.message == "Error: display() requires a list of length 25" 

57 

58def test_point_and_clear_display_with_alias(): 

59 hummingbird = BirdbrainHummingbird("A") 

60 

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) 

66 

67 time.sleep(0.15) 

68 

69 hummingbird.clear_display() 

70 

71def test_point_true_or_false(): 

72 hummingbird = BirdbrainHummingbird("A") 

73 

74 assert hummingbird.point(3, 3, True) 

75 

76 time.sleep(0.15) 

77 

78 assert hummingbird.point(3, 3, False) 

79 

80def test_point_out_of_range(): 

81 with pytest.raises(BirdbrainException) as e: 

82 hummingbird = BirdbrainHummingbird("A") 

83 

84 assert hummingbird.point(999, 1, 1) 

85 assert e.value.message == "Error: point out of range" 

86 

87def test_print(): 

88 hummingbird = BirdbrainHummingbird("A") 

89 

90 hummingbird.print("A") 

91 

92 time.sleep(1) 

93 

94def test_play_note_with_alias(): 

95 hummingbird = BirdbrainHummingbird("A") 

96 

97 hummingbird.play_note(75, 0.5) 

98 

99 time.sleep(0.25) 

100 

101 hummingbird.playNote(40, 0.5) 

102 

103 time.sleep(0.25) 

104 

105 hummingbird.beep() 

106 

107def test_stop_all(): 

108 hummingbird = BirdbrainHummingbird("A") 

109 

110 hummingbird.stop_all() 

111 hummingbird.stopAll()