@@ -42,7 +42,7 @@ def test_response_content_type(endpoints: Endpoints, registration_tracker: Regis
4242 actuator_endpoint_url = asdict (endpoints )[actuator_endpoint ]
4343 logging .info ("Testing content type of %s (%s)" , actuator_endpoint , actuator_endpoint_url )
4444 response = requests .get (actuator_endpoint_url )
45- assert response .status_code == HTTPStatus .OK . value
45+ assert response .status_code == HTTPStatus .OK
4646 assert response .headers .get ("Content-Type" , response .headers .get ("content-type" )) == SBA_V2_CONTENT_TYPE
4747
4848 # Issue requests to non-actuator endpoints and verify the correct content-type is returned
@@ -73,7 +73,7 @@ def test_response_content_type(endpoints: Endpoints, registration_tracker: Regis
7373@pytest .mark .mark_self_endpoint
7474def test_self_endpoint (endpoints : Endpoints ) -> None :
7575 response = requests .get (endpoints .pyctuator )
76- assert response .status_code == HTTPStatus .OK . value
76+ assert response .status_code == HTTPStatus .OK
7777 assert response .json ()["_links" ] is not None
7878
7979
@@ -82,15 +82,15 @@ def test_self_endpoint(endpoints: Endpoints) -> None:
8282def test_env_endpoint (endpoints : Endpoints ) -> None :
8383 actual_key , actual_value = list (os .environ .items ())[3 ]
8484 response = requests .get (endpoints .env )
85- assert response .status_code == HTTPStatus .OK . value
85+ assert response .status_code == HTTPStatus .OK
8686 property_sources = response .json ()["propertySources" ]
8787 assert property_sources
8888 system_properties = [source for source in property_sources if source ["name" ] == "systemEnvironment" ]
8989 assert system_properties
9090 assert system_properties [0 ]["properties" ][actual_key ]["value" ] == actual_value
9191
9292 response = requests .get (endpoints .info )
93- assert response .status_code == HTTPStatus .OK . value
93+ assert response .status_code == HTTPStatus .OK
9494 assert response .json ()["app" ] is not None
9595
9696
@@ -102,7 +102,7 @@ def test_health_endpoint_with_psutil(endpoints: Endpoints, monkeypatch: MonkeyPa
102102
103103 # Verify that the diskSpace health check is returning some reasonable values
104104 response = requests .get (endpoints .health )
105- assert response .status_code == HTTPStatus .OK . value
105+ assert response .status_code == HTTPStatus .OK
106106 assert response .json ()["status" ] == "UP"
107107 disk_space_health = response .json ()["details" ]["diskSpace" ]
108108 assert disk_space_health ["status" ] == "UP"
@@ -120,7 +120,7 @@ def mock_disk_usage(path: str) -> MockDiskUsage:
120120
121121 monkeypatch .setattr (psutil , "disk_usage" , mock_disk_usage )
122122 response = requests .get (endpoints .health )
123- assert response .status_code == HTTPStatus .OK . value
123+ assert response .status_code == HTTPStatus .OK
124124 assert response .json ()["status" ] == "DOWN"
125125 disk_space_health = response .json ()["details" ]["diskSpace" ]
126126 assert disk_space_health ["status" ] == "DOWN"
@@ -137,7 +137,7 @@ def test_diskspace_no_psutil(endpoints: Endpoints) -> None:
137137
138138 # Verify that the diskSpace health check is returning some reasonable values
139139 response = requests .get (endpoints .health )
140- assert response .status_code == HTTPStatus .OK . value
140+ assert response .status_code == HTTPStatus .OK
141141 assert response .json ()["status" ] == "UP"
142142 assert "diskSpace" not in response .json ()["details" ]
143143
@@ -149,20 +149,20 @@ def test_metrics_endpoint(endpoints: Endpoints) -> None:
149149 pytest .importorskip ("psutil" )
150150
151151 response = requests .get (endpoints .metrics )
152- assert response .status_code == HTTPStatus .OK . value
152+ assert response .status_code == HTTPStatus .OK
153153 metric_names = response .json ()["names" ]
154154 assert "memory.rss" in metric_names
155155 assert "thread.count" in metric_names
156156
157157 response = requests .get (f"{ endpoints .metrics } /memory.rss" )
158- assert response .status_code == HTTPStatus .OK . value
158+ assert response .status_code == HTTPStatus .OK
159159 metric_json = response .json ()
160160 assert metric_json ["name" ] == "memory.rss"
161161 assert metric_json ["measurements" ][0 ]["statistic" ] == "VALUE"
162162 assert metric_json ["measurements" ][0 ]["value" ] > 10000
163163
164164 response = requests .get (f"{ endpoints .metrics } /thread.count" )
165- assert response .status_code == HTTPStatus .OK . value
165+ assert response .status_code == HTTPStatus .OK
166166 metric_json = response .json ()
167167 assert metric_json ["name" ] == "thread.count"
168168 assert metric_json ["measurements" ][0 ]["statistic" ] == "COUNT"
@@ -210,7 +210,7 @@ def test_threads_endpoint(endpoints: Endpoints) -> None:
210210@pytest .mark .mark_loggers_endpoint
211211def test_loggers_endpoint (endpoints : Endpoints ) -> None :
212212 response = requests .get (endpoints .loggers )
213- assert response .status_code == HTTPStatus .OK . value
213+ assert response .status_code == HTTPStatus .OK
214214
215215 # levels section
216216 loggers_levels = response .json ()["levels" ]
@@ -226,7 +226,7 @@ def test_loggers_endpoint(endpoints: Endpoints) -> None:
226226 assert hasattr (logger_obj , "level" )
227227 # Individual Get logger route
228228 response = requests .get (f"{ endpoints .loggers } /{ logger } " )
229- assert response .status_code == HTTPStatus .OK . value
229+ assert response .status_code == HTTPStatus .OK
230230 assert "configuredLevel" in json .loads (response .content )
231231 assert "effectiveLevel" in json .loads (response .content )
232232 # Set logger level
@@ -240,7 +240,7 @@ def test_loggers_endpoint(endpoints: Endpoints) -> None:
240240
241241 response = requests .post (f"{ endpoints .loggers } /{ logger } " ,
242242 data = post_data )
243- assert response .status_code == HTTPStatus .OK . value
243+ assert response .status_code == HTTPStatus .OK
244244 # Perform get logger level to Validate set logger level succeeded
245245 response = requests .get (f"{ endpoints .loggers } /{ logger } " )
246246 assert json .loads (response .content )["configuredLevel" ] == random_log_level
@@ -254,14 +254,14 @@ def test_logfile_endpoint(endpoints: Endpoints) -> None:
254254 endpoints .root + "logfile_test_repeater" ,
255255 params = {"repeated_string" : thirsty_str }
256256 )
257- assert response .status_code == HTTPStatus .OK . value
257+ assert response .status_code == HTTPStatus .OK
258258
259259 response = requests .get (endpoints .logfile )
260- assert response .status_code == HTTPStatus .OK . value
260+ assert response .status_code == HTTPStatus .OK
261261 assert response .text .find (thirsty_str ) >= 0
262262
263263 response = requests .get (endpoints .logfile , headers = {"Range" : "bytes=-307200" }) # Immitate SBA's 1st request
264- assert response .status_code == HTTPStatus .PARTIAL_CONTENT . value
264+ assert response .status_code == HTTPStatus .PARTIAL_CONTENT
265265
266266
267267@pytest .mark .usefixtures ("boot_admin_server" , "pyctuator_server" )
@@ -270,9 +270,11 @@ def test_traces_endpoint(endpoints: Endpoints) -> None:
270270 response = requests .get (endpoints .httptrace )
271271 assert response .status_code == 200
272272
273- # Create request with header
273+ # Create a request with header
274274 user_header = "my header test"
275275 requests .get (endpoints .root + "httptrace_test_url" , headers = {"User-Data" : user_header })
276+
277+ # Get the captured httptraces
276278 response = requests .get (endpoints .httptrace )
277279 response_traces = response .json ()["traces" ]
278280 trace = next (x for x in response_traces if x ["request" ]["uri" ].endswith ("httptrace_test_url" ))
@@ -283,3 +285,13 @@ def test_traces_endpoint(endpoints: Endpoints) -> None:
283285
284286 # Assert timestamp is formatted in ISO format
285287 datetime .fromisoformat (trace ["timestamp" ])
288+
289+ # Assert that the "time taken" (i.e. the time the server spent processing the request) is less than 100ms
290+ assert int (trace ["timeTaken" ]) < 100
291+
292+ # Issue the same request asking the server to sleep for a sec, than assert request timing is at least 1s
293+ requests .get (endpoints .root + "httptrace_test_url" , params = {"sleep_sec" : 1 }, headers = {"User-Data" : user_header })
294+ response = requests .get (endpoints .httptrace )
295+ response_traces = response .json ()["traces" ]
296+ trace = next (x for x in response_traces if "httptrace_test_url?sleep_sec" in x ["request" ]["uri" ])
297+ assert int (trace ["timeTaken" ]) > 1000
0 commit comments