Coverage for shared/test_request.py: 100%

65 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-05-21 08:37 -0400

1import pytest 

2 

3from birdbrain_constant import BirdbrainConstant 

4from birdbrain_exception import BirdbrainException 

5from birdbrain_request import BirdbrainRequest 

6 

7def test_request_uri(): 

8 uri = BirdbrainRequest.uri(["in", "1", "2", "3", "4", [ "99", 99 ], "something"]) 

9 

10 assert uri == "http://127.0.0.1:30061/in/1/2/3/4/99/99/something" 

11 

12def test_connected(): 

13 assert BirdbrainRequest.is_connected("A") 

14 

15def test_not_connected(): 

16 assert not BirdbrainRequest.is_connected("C") 

17 

18def test_not_connected_connected(): 

19 assert not BirdbrainRequest.is_not_connected("A") 

20 

21def test_not_connected_not_connected(): 

22 assert BirdbrainRequest.is_not_connected("C") 

23 

24def test_response_with_false_arg(): 

25 assert not BirdbrainRequest.response("1", "false", "2") 

26 

27def test_response(): 

28 assert BirdbrainRequest.response("hummingbird", "in", "orientation", "Shake", "A") 

29 

30def test_response_status(): 

31 assert not BirdbrainRequest.response_status("hummingbird", "in", "orientation", "Shake", "A") 

32 

33def test_response_no_connection(): 

34 with pytest.raises(BirdbrainException) as e: 

35 response = BirdbrainRequest.response("hummingbird", "in", "orientation", "Shake", "C") 

36 

37 assert e.value.message == "Error: The device is not connected" 

38 

39def test_request_status(): 

40 assert BirdbrainRequest.request_status("all stopped") 

41 

42def test_stop_all(): 

43 response = BirdbrainRequest.stop_all("A") 

44 

45 assert response 

46 

47def test_disconnect(): 

48 with pytest.raises(BirdbrainException) as e: 

49 BirdbrainRequest.stop_all("C") 

50 

51 assert e.value.message == "Error: The device is not connected" 

52 

53def test_xyz_response_no_connection(): 

54 with pytest.raises(BirdbrainException) as e: 

55 response = BirdbrainRequest.xyz_response("C", "Accelerometer") 

56 

57def test_xyz_response(): 

58 xyz = BirdbrainRequest.xyz_response("A", "Accelerometer", "float") 

59 

60 assert isinstance(xyz, list) 

61 assert len(xyz) == 3 

62 

63def test_calculate_speed(): 

64 assert BirdbrainRequest.calculate_speed(0) == 255 

65 assert BirdbrainRequest.calculate_speed(9) == 255 

66 assert BirdbrainRequest.calculate_speed(100) == 146.0 

67 assert BirdbrainRequest.calculate_speed(-100) == 74.0 

68 

69 assert BirdbrainRequest.calculate_speed("0") == 255 

70 assert BirdbrainRequest.calculate_speed("9") == 255 

71 assert BirdbrainRequest.calculate_speed("100") == 146.0 

72 assert BirdbrainRequest.calculate_speed("-100") == 74.0 

73 

74def test_calculate_left_or_right(): 

75 assert BirdbrainRequest.calculate_left_or_right('L') == 'Left' 

76 assert BirdbrainRequest.calculate_left_or_right('R') == 'Right' 

77 assert BirdbrainRequest.calculate_left_or_right('BAD') == 'None' 

78 

79def test_validate_port(): 

80 assert BirdbrainRequest.validate_port(1, BirdbrainConstant.VALID_LED_PORTS) 

81 assert BirdbrainRequest.validate_port(2, BirdbrainConstant.VALID_LED_PORTS) 

82 assert BirdbrainRequest.validate_port(3, BirdbrainConstant.VALID_LED_PORTS) 

83 assert BirdbrainRequest.validate_port("1", BirdbrainConstant.VALID_LED_PORTS) 

84 

85 with pytest.raises(BirdbrainException) as e: 

86 BirdbrainRequest.validate_port(4, BirdbrainConstant.VALID_LED_PORTS) 

87 with pytest.raises(BirdbrainException) as e: 

88 BirdbrainRequest.validate_port(-1, BirdbrainConstant.VALID_LED_PORTS) 

89 with pytest.raises(BirdbrainException) as e: 

90 BirdbrainRequest.validate_port("4", BirdbrainConstant.VALID_LED_PORTS)