11from __future__ import annotations
22
3+ import uuid
34from datetime import datetime , timedelta , timezone
45from pathlib import Path
56from typing import ClassVar
2223 TestStepCreate ,
2324 TestStepType ,
2425)
26+ from sift_client .util import cel_utils as cel
2527
2628pytestmark = pytest .mark .integration
2729
@@ -47,6 +49,8 @@ def test_create_test_report(self, sift_client, nostromo_run):
4749 "name" : "Test Report with Steps and Measurements" ,
4850 "test_system_name" : "Test System" ,
4951 "test_case" : "Test Case" ,
52+ "serial_number" : str (uuid .uuid4 ()),
53+ "part_number" : "1234567890" ,
5054 "start_time" : simulated_time ,
5155 "end_time" : simulated_time ,
5256 "run_id" : nostromo_run .id_ ,
@@ -309,6 +313,53 @@ def test_update_test_report(self, sift_client):
309313
310314 self .test_reports ["basic_test_report" ] = updated_report
311315
316+ def test_list_test_reports (self , sift_client ):
317+ reports = sift_client .test_results .list_ (
318+ filter_query = cel .not_ (cel .equals ("serial_number" , "" ))
319+ and cel .not_ (cel .equals ("part_number" , "" )),
320+ )
321+ existing_report = reports [0 ]
322+ assert len (reports )
323+ existing_report = reports [0 ]
324+ reports = sift_client .test_results .list_ (
325+ status = existing_report .status ,
326+ test_system_name = existing_report .test_system_name ,
327+ test_case = existing_report .test_case ,
328+ serial_numbers = [existing_report .serial_number ],
329+ part_numbers = [existing_report .part_number ],
330+ system_operator = existing_report .system_operator ,
331+ )
332+ assert existing_report in reports
333+
334+ def test_list_test_steps (self , sift_client ):
335+ steps = sift_client .test_results .list_steps ()
336+ existing_step = None
337+ for step in steps :
338+ if step .parent_step_id is not None :
339+ existing_step = step
340+ break
341+ assert len (steps )
342+ steps = sift_client .test_results .list_steps (
343+ test_reports = [existing_step .test_report_id ],
344+ parent_steps = [existing_step .parent_step_id ],
345+ name = existing_step .name ,
346+ step_type = existing_step .step_type ,
347+ status = existing_step .status ,
348+ )
349+ assert existing_step in steps
350+
351+ def test_list_test_measurements (self , sift_client ):
352+ measurements = sift_client .test_results .list_measurements ()
353+ assert len (measurements )
354+ existing_measurement = measurements [0 ]
355+ measurements = sift_client .test_results .list_measurements (
356+ test_steps = [existing_measurement .test_step_id ],
357+ name = existing_measurement .name ,
358+ measurement_type = existing_measurement .measurement_type ,
359+ passed = existing_measurement .passed ,
360+ )
361+ assert existing_measurement in measurements
362+
312363 def test_archive_and_delete_test_report (self , sift_client ):
313364 test_report = self .test_reports .get ("basic_test_report" )
314365 if not test_report :
0 commit comments