66import apilytics
77import tests .conftest
88
9- client = django .test .client .Client ()
10-
119
1210def test_middleware_should_call_apilytics_api (
13- mocked_urlopen : unittest .mock .MagicMock ,
11+ mocked_urlopen : unittest .mock .MagicMock , client : django . test . client . Client
1412) -> None :
15- # Refresh middleware to call `__init__` again making sure `MiddlewareNotUsed`
16- # is ether called or not called properly.
17- client .handler .load_middleware ()
1813 response = client .get ("/" )
1914 assert response .status_code == 200
2015
@@ -53,9 +48,8 @@ def test_middleware_should_call_apilytics_api(
5348
5449
5550def test_middleware_should_send_query_params (
56- mocked_urlopen : unittest .mock .MagicMock ,
51+ mocked_urlopen : unittest .mock .MagicMock , client : django . test . client . Client
5752) -> None :
58- client .handler .load_middleware ()
5953 response = client .post ("/dummy/123/path/?param=foo¶m2=bar" )
6054 assert response .status_code == 201
6155
@@ -71,10 +65,21 @@ def test_middleware_should_send_query_params(
7165 assert isinstance (data ["timeMillis" ], int )
7266
7367
68+ def test_middleware_should_send_user_agent (
69+ mocked_urlopen : unittest .mock .MagicMock , client : django .test .client .Client
70+ ) -> None :
71+ response = client .get ("/dummy" , HTTP_USER_AGENT = "some agent" )
72+ assert response .status_code == 200
73+
74+ assert mocked_urlopen .call_count == 1
75+ __ , call_kwargs = mocked_urlopen .call_args
76+ data = tests .conftest .decode_request_data (call_kwargs ["data" ])
77+ assert data ["userAgent" ] == "some agent"
78+
79+
7480def test_middleware_should_handle_zero_request_and_response_sizes (
75- mocked_urlopen : unittest .mock .MagicMock ,
81+ mocked_urlopen : unittest .mock .MagicMock , client : django . test . client . Client
7682) -> None :
77- client .handler .load_middleware ()
7883 response = client .post ("/empty?some=query" , content_type = "application/json" )
7984 assert response .status_code == 200
8085
@@ -86,9 +91,8 @@ def test_middleware_should_handle_zero_request_and_response_sizes(
8691
8792
8893def test_middleware_should_handle_non_zero_request_and_response_sizes (
89- mocked_urlopen : unittest .mock .MagicMock ,
94+ mocked_urlopen : unittest .mock .MagicMock , client : django . test . client . Client
9095) -> None :
91- client .handler .load_middleware ()
9296 response = client .post (
9397 "/dummy?some=query" , data = {"hello" : "world" }, content_type = "application/json"
9498 )
@@ -102,9 +106,8 @@ def test_middleware_should_handle_non_zero_request_and_response_sizes(
102106
103107
104108def test_middleware_should_work_with_streaming_response (
105- mocked_urlopen : unittest .mock .MagicMock ,
109+ mocked_urlopen : unittest .mock .MagicMock , client : django . test . client . Client
106110) -> None :
107- client .handler .load_middleware ()
108111 response = client .get ("/streaming" )
109112 assert response .status_code == 200
110113 # Ignore: The attribute *does* exist on StreamingHTTPResponse.
@@ -130,19 +133,17 @@ def test_middleware_should_work_with_streaming_response(
130133
131134@django .test .override_settings (APILYTICS_API_KEY = None )
132135def test_middleware_should_be_disabled_if_api_key_is_unset (
133- mocked_urlopen : unittest .mock .MagicMock ,
136+ mocked_urlopen : unittest .mock .MagicMock , client : django . test . client . Client
134137) -> None :
135- client .handler .load_middleware ()
136138 response = client .get ("/" )
137139 assert response .status_code == 200
138140
139141 assert mocked_urlopen .call_count == 0
140142
141143
142144def test_middleware_should_send_data_even_on_errors (
143- mocked_urlopen : unittest .mock .MagicMock ,
145+ mocked_urlopen : unittest .mock .MagicMock , client : django . test . client . Client
144146) -> None :
145- client .handler .load_middleware ()
146147 try :
147148 client .get ("/error" )
148149 except RuntimeError :
0 commit comments