Coverage for shared/test_request.py: 100%
65 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-12 11:24 -0400
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-12 11:24 -0400
1import pytest
3from birdbrain_constant import BirdbrainConstant
4from birdbrain_exception import BirdbrainException
5from birdbrain_request import BirdbrainRequest
7def test_request_uri():
8 uri = BirdbrainRequest.uri(["in", "1", "2", "3", "4", [ "99", 99 ], "something"])
10 assert uri == "http://127.0.0.1:30061/in/1/2/3/4/99/99/something"
12def test_connected():
13 assert BirdbrainRequest.is_connected("A")
15def test_not_connected():
16 assert not BirdbrainRequest.is_connected("C")
18def test_not_connected_connected():
19 assert not BirdbrainRequest.is_not_connected("A")
21def test_not_connected_not_connected():
22 assert BirdbrainRequest.is_not_connected("C")
24def test_response_with_false_arg():
25 assert not BirdbrainRequest.response("1", "false", "2")
27def test_response():
28 assert BirdbrainRequest.response("hummingbird", "in", "orientation", "Shake", "A")
30def test_response_status():
31 assert not BirdbrainRequest.response_status("hummingbird", "in", "orientation", "Shake", "A")
33def test_response_no_connection():
34 with pytest.raises(BirdbrainException) as e:
35 response = BirdbrainRequest.response("hummingbird", "in", "orientation", "Shake", "C")
37 assert e.value.message == "Error: The device is not connected"
39def test_request_status():
40 assert BirdbrainRequest.request_status("all stopped")
42def test_stop_all():
43 response = BirdbrainRequest.stop_all("A")
45 assert response
47def test_disconnect():
48 with pytest.raises(BirdbrainException) as e:
49 BirdbrainRequest.stop_all("C")
51 assert e.value.message == "Error: The device is not connected"
53def test_xyz_response_no_connection():
54 with pytest.raises(BirdbrainException) as e:
55 response = BirdbrainRequest.xyz_response("C", "Accelerometer")
57def test_xyz_response():
58 xyz = BirdbrainRequest.xyz_response("A", "Accelerometer", "float")
60 assert isinstance(xyz, list)
61 assert len(xyz) == 3
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
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
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'
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)
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)