@@ -41,6 +41,54 @@ def test_apilytics_sender_should_call_apilytics_api(
4141 assert isinstance (data ["timeMillis" ], int )
4242
4343
44+ def test_middleware_should_send_query_params (
45+ mocked_urlopen : unittest .mock .MagicMock ,
46+ ) -> None :
47+ with apilytics .core .ApilyticsSender (
48+ api_key = "dummy-key" ,
49+ path = "/path" ,
50+ query = "key=value?other=123" ,
51+ method = "PUT" ,
52+ ) as sender :
53+ sender .set_response_info (status_code = 200 )
54+
55+ assert mocked_urlopen .call_count == 1
56+ __ , call_kwargs = mocked_urlopen .call_args
57+ data = tests .conftest .decode_request_data (call_kwargs ["data" ])
58+ assert data ["path" ] == "/path"
59+ assert data ["query" ] == "key=value?other=123"
60+
61+
62+ def test_middleware_should_not_send_empty_query_params (
63+ mocked_urlopen : unittest .mock .MagicMock ,
64+ ) -> None :
65+ with apilytics .core .ApilyticsSender (
66+ api_key = "dummy-key" ,
67+ path = "/" ,
68+ query = "" ,
69+ method = "GET" ,
70+ ) as sender :
71+ sender .set_response_info (status_code = 200 )
72+
73+ assert mocked_urlopen .call_count == 1
74+ __ , call_kwargs = mocked_urlopen .call_args
75+ data = tests .conftest .decode_request_data (call_kwargs ["data" ])
76+ assert "query" not in data
77+
78+ with apilytics .core .ApilyticsSender (
79+ api_key = "dummy-key" ,
80+ path = "/" ,
81+ query = None ,
82+ method = "GET" ,
83+ ) as sender :
84+ sender .set_response_info (status_code = 200 )
85+
86+ assert mocked_urlopen .call_count == 2
87+ __ , call_kwargs = mocked_urlopen .call_args
88+ data = tests .conftest .decode_request_data (call_kwargs ["data" ])
89+ assert "query" not in data
90+
91+
4492@unittest .mock .patch (
4593 "apilytics.core.urllib.request.urlopen" ,
4694 side_effect = urllib .error .URLError ("testing" ),
0 commit comments