Coverage for finch/test_finch_output.py: 95%

64 statements  

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

1import pytest 

2import time 

3 

4from birdbrain_constant import BirdbrainConstant 

5from birdbrain_exception import BirdbrainException 

6from birdbrain_finch import BirdbrainFinch 

7from birdbrain_finch_output import BirdbrainFinchOutput 

8from birdbrain_request import BirdbrainRequest 

9 

10def test_beak(): 

11 assert BirdbrainFinchOutput.beak("B", 10, 50, 50) 

12 time.sleep(0.15) 

13 assert BirdbrainFinchOutput.beak("B", 0, 0, 0) 

14 

15def test_tail(): 

16 assert BirdbrainFinchOutput.tail("B", 1, 10, 50, 50) 

17 time.sleep(0.1) 

18 assert BirdbrainFinchOutput.tail("B", 1, "0", 50, "0") 

19 time.sleep(0.1) 

20 assert BirdbrainFinchOutput.tail("B", "2", "0", 50, "0") 

21 time.sleep(0.1) 

22 assert BirdbrainFinchOutput.tail("B", 3, "0", 50, "0") 

23 time.sleep(0.1) 

24 assert BirdbrainFinchOutput.tail("B", 4, "0", 50, "0") 

25 time.sleep(0.1) 

26 assert BirdbrainFinchOutput.tail("B", "all", 0, 0, 100) 

27 time.sleep(0.1) 

28 assert BirdbrainFinchOutput.tail("B", "all", 0, 0, 0) 

29 

30def test_move(): 

31 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.FORWARD, 4, 5) 

32 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.FORWARD, "4", "5") 

33 

34 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.BACKWARD, 4, 5) 

35 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.BACKWARD, "4", "5") 

36 

37 with pytest.raises(BirdbrainException): 

38 assert BirdbrainFinchOutput.move("B", "BAD", 4, 5) 

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

40 

41 with pytest.raises(BirdbrainException) as e: 

42 assert BirdbrainFinchOutput.move("B", None, 4, 5) 

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

44 

45 BirdbrainRequest.stop_all("B") 

46 

47def test_turn(): 

48 assert BirdbrainFinchOutput.turn("B", "L", 25, 50) 

49 assert BirdbrainFinchOutput.turn("B", "R", 25, 50) 

50 assert BirdbrainFinchOutput.turn("B", "L", "25", 50) 

51 assert BirdbrainFinchOutput.turn("B", "R", 25, "50") 

52 

53 with pytest.raises(BirdbrainException): 

54 assert BirdbrainFinchOutput.turn("B", "BAD", 90, 50) 

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

56 

57def test_motors(): 

58 assert BirdbrainFinchOutput.motors("B", 25, 0) 

59 time.sleep(0.2) 

60 assert BirdbrainFinchOutput.motors("B", -25, 0) 

61 time.sleep(0.2) 

62 

63 assert BirdbrainFinchOutput.motors("B", 0, -25) 

64 time.sleep(0.2) 

65 assert BirdbrainFinchOutput.motors("B", "0", "25") 

66 time.sleep(0.2) 

67 

68 BirdbrainRequest.stop_all("B") 

69 

70def test_stop(): 

71 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.FORWARD, 99999, 5, False) 

72 time.sleep(0.2) 

73 assert BirdbrainFinchOutput.stop("B") 

74 

75 assert BirdbrainFinchOutput.move("B", BirdbrainConstant.BACKWARD, 99999, 5, False) 

76 time.sleep(0.2) 

77 assert BirdbrainFinchOutput.stop("B") 

78 

79def test_reset_encoders(): 

80 assert BirdbrainFinchOutput.reset_encoders("B")