Coverage for microbit/test_microbit_input.py: 100%

52 statements  

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

1import pytest 

2 

3from birdbrain_constant import BirdbrainConstant 

4from birdbrain_exception import BirdbrainException 

5from birdbrain_microbit_input import BirdbrainMicrobitInput 

6 

7def test_acceleration(): 

8 response = BirdbrainMicrobitInput.acceleration("A", "Accelerometer") 

9 response = BirdbrainMicrobitInput.acceleration("A") 

10 

11 assert (-100.0 <= response[0] <= 100.0) 

12 assert (-100.0 <= response[1] <= 100.0) 

13 assert (-100.0 <= response[2] <= 100.0) 

14 

15 assert isinstance(response[0], float) 

16 assert isinstance(response[1], float) 

17 assert isinstance(response[2], float) 

18 

19def test_compass(): 

20 response = BirdbrainMicrobitInput.compass("A", "Compass") 

21 response = BirdbrainMicrobitInput.compass("A") 

22 

23 assert (0 <= response <= 359) 

24 assert isinstance(response, int) 

25 

26def test_magnetometer(): 

27 response = BirdbrainMicrobitInput.magnetometer("A") 

28 

29 assert (-180.0 <= response[0] <= 180.0) 

30 assert (-180.0 <= response[1] <= 180.0) 

31 assert (-180.0 <= response[2] <= 180.0) 

32 

33 assert isinstance(response[0], int) 

34 assert isinstance(response[1], int) 

35 assert isinstance(response[2], int) 

36 

37def test_button(): 

38 assert not BirdbrainMicrobitInput.button("A", "A") 

39 assert not BirdbrainMicrobitInput.button("A", "B") 

40 assert not BirdbrainMicrobitInput.button("A", "LOGO") 

41 assert not BirdbrainMicrobitInput.button("A", "Logo") 

42 assert not BirdbrainMicrobitInput.button("A", "logo") 

43 

44 with pytest.raises(BirdbrainException) as e: 

45 BirdbrainMicrobitInput.button("A", "BAD") 

46 assert e.value.message == "Error: Request to device failed" 

47 

48def test_sound(): 

49 response = BirdbrainMicrobitInput.sound("A") 

50 

51 assert (0 <= response <= 100) 

52 assert isinstance(response, int) 

53 

54def test_temperature(): 

55 response = BirdbrainMicrobitInput.temperature("A") 

56 

57 assert (0 <= response <= 50) 

58 assert isinstance(response, int) 

59 

60def test_is_shaking(): 

61 response = BirdbrainMicrobitInput.is_shaking("A") 

62 

63 assert not response 

64 

65def test_orientation(): 

66 response = BirdbrainMicrobitInput.orientation("A") 

67 

68 some_position = False 

69 for orientation in BirdbrainConstant.HUMMINGBIRD_ORIENTATION_RESULTS: 

70 some_position = some_position or (orientation == response) 

71 

72 assert some_position