Coverage for microbit/test_microbit_output.py: 100%

46 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-04 20:20 -0500

1import pytest 

2import time 

3 

4from birdbrain_device import BirdbrainDevice 

5from birdbrain_exception import BirdbrainException 

6from birdbrain_microbit import BirdbrainMicrobit 

7from birdbrain_microbit_output import BirdbrainMicrobitOutput 

8from birdbrain_request import BirdbrainRequest 

9from birdbrain_state import BirdbrainState 

10 

11def test_display(): 

12 state = BirdbrainState() 

13 

14 BirdbrainMicrobitOutput.display(state, "A", [ 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 ]) 

15 

16 time.sleep(0.15) 

17 

18 BirdbrainRequest.stop_all("A") 

19 

20def test_display_wrong_size(): 

21 with pytest.raises(BirdbrainException) as e: 

22 state = BirdbrainState() 

23 

24 list = [ 0,1 ] 

25 

26 BirdbrainMicrobitOutput.display(state, "A", list) 

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

28 

29def test_point_and_clear_display(): 

30 state = BirdbrainState() 

31 

32 for i in range(2): 

33 assert BirdbrainMicrobitOutput.point(state, "A", 1, 1, 1) 

34 assert BirdbrainMicrobitOutput.point(state, "A", 1, 5, 1) 

35 assert BirdbrainMicrobitOutput.point(state, "A", 5, 1, 1) 

36 assert BirdbrainMicrobitOutput.point(state, "A", 5, 5, 1) 

37 

38 time.sleep(0.15) 

39 

40 BirdbrainMicrobitOutput.clear_display(state, "A") 

41 

42def test_point_true_or_false(): 

43 state = BirdbrainState() 

44 

45 assert BirdbrainMicrobitOutput.point(state, "A", 3, 3, True) 

46 

47 time.sleep(0.15) 

48 

49 assert BirdbrainMicrobitOutput.point(state, "A", 3, 3, False) 

50 

51def test_point_out_of_range(): 

52 with pytest.raises(BirdbrainException) as e: 

53 state = BirdbrainState() 

54 

55 assert BirdbrainMicrobitOutput.point(state, "A", 999, 1, 1) 

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

57 

58def test_print(): 

59 state = BirdbrainState() 

60 

61 assert BirdbrainMicrobitOutput.print(state, "A", "B") 

62 time.sleep(1) 

63 

64 assert BirdbrainMicrobitOutput.print(state, "A", " ") 

65 time.sleep(1) 

66 

67def test_play_note(): 

68 assert BirdbrainMicrobitOutput.play_note("A", 50, 0.25)