@@ -42,13 +42,15 @@ def test_middleware_should_call_apilytics_api(
4242 "statusCode" ,
4343 "requestSize" ,
4444 "responseSize" ,
45+ "userAgent" ,
4546 "timeMillis" ,
4647 }
4748 assert data ["path" ] == "/"
4849 assert data ["method" ] == "GET"
4950 assert data ["statusCode" ] == 200
5051 assert data ["requestSize" ] == 0
5152 assert data ["responseSize" ] > 0
53+ assert data ["userAgent" ] == "testclient"
5254 assert isinstance (data ["timeMillis" ], int )
5355
5456
@@ -70,6 +72,18 @@ def test_middleware_should_send_query_params(
7072 assert isinstance (data ["timeMillis" ], int )
7173
7274
75+ def test_middleware_should_send_user_agent (
76+ mocked_urlopen : unittest .mock .MagicMock ,
77+ ) -> None :
78+ response = client .get ("/dummy" , headers = {"User-Agent" : "some agent" })
79+ assert response .status_code == 200
80+
81+ assert mocked_urlopen .call_count == 1
82+ __ , call_kwargs = mocked_urlopen .call_args
83+ data = tests .conftest .decode_request_data (call_kwargs ["data" ])
84+ assert data ["userAgent" ] == "some agent"
85+
86+
7387def test_middleware_should_handle_zero_request_and_response_sizes (
7488 mocked_urlopen : unittest .mock .MagicMock ,
7589) -> None :
@@ -112,12 +126,14 @@ def test_middleware_should_work_with_streaming_response(
112126 "method" ,
113127 "statusCode" ,
114128 "requestSize" ,
129+ "userAgent" ,
115130 "timeMillis" ,
116131 }
117132 assert data ["path" ] == "/streaming"
118133 assert data ["method" ] == "GET"
119134 assert data ["statusCode" ] == 200
120135 assert data ["requestSize" ] == 0
136+ assert data ["userAgent" ] == "testclient"
121137 assert isinstance (data ["timeMillis" ], int )
122138
123139
@@ -150,8 +166,9 @@ def test_middleware_should_send_data_even_on_errors(
150166
151167 __ , call_kwargs = mocked_urlopen .call_args
152168 data = tests .conftest .decode_request_data (call_kwargs ["data" ])
153- assert data .keys () == {"method" , "path" , "timeMillis" , "requestSize" }
169+ assert data .keys () == {"method" , "path" , "timeMillis" , "userAgent" , " requestSize" }
154170 assert data ["method" ] == "GET"
155171 assert data ["path" ] == "/error"
156172 assert data ["requestSize" ] == 0
173+ assert data ["userAgent" ] == "testclient"
157174 assert isinstance (data ["timeMillis" ], int )
0 commit comments