Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions python/lib/sift_client/_tests/resources/test_test_results.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations

import uuid
from datetime import datetime, timedelta, timezone
from pathlib import Path
from typing import ClassVar
Expand All @@ -22,6 +23,7 @@
TestStepCreate,
TestStepType,
)
from sift_client.util import cel_utils as cel

pytestmark = pytest.mark.integration

Expand All @@ -47,6 +49,8 @@ def test_create_test_report(self, sift_client, nostromo_run):
"name": "Test Report with Steps and Measurements",
"test_system_name": "Test System",
"test_case": "Test Case",
"serial_number": str(uuid.uuid4()),
"part_number": "1234567890",
"start_time": simulated_time,
"end_time": simulated_time,
"run_id": nostromo_run.id_,
Expand Down Expand Up @@ -309,6 +313,53 @@ def test_update_test_report(self, sift_client):

self.test_reports["basic_test_report"] = updated_report

def test_list_test_reports(self, sift_client):
reports = sift_client.test_results.list_(
filter_query=cel.not_(cel.equals("serial_number", ""))
and cel.not_(cel.equals("part_number", "")),
)
existing_report = reports[0]
assert len(reports)
existing_report = reports[0]
reports = sift_client.test_results.list_(
status=existing_report.status,
test_system_name=existing_report.test_system_name,
test_case=existing_report.test_case,
serial_numbers=[existing_report.serial_number],
part_numbers=[existing_report.part_number],
system_operator=existing_report.system_operator,
)
assert existing_report in reports

def test_list_test_steps(self, sift_client):
steps = sift_client.test_results.list_steps()
existing_step = None
for step in steps:
if step.parent_step_id is not None:
existing_step = step
break
assert len(steps)
steps = sift_client.test_results.list_steps(
test_reports=[existing_step.test_report_id],
parent_steps=[existing_step.parent_step_id],
name=existing_step.name,
step_type=existing_step.step_type,
status=existing_step.status,
)
assert existing_step in steps

def test_list_test_measurements(self, sift_client):
measurements = sift_client.test_results.list_measurements()
assert len(measurements)
existing_measurement = measurements[0]
measurements = sift_client.test_results.list_measurements(
test_steps=[existing_measurement.test_step_id],
name=existing_measurement.name,
measurement_type=existing_measurement.measurement_type,
passed=existing_measurement.passed,
)
assert existing_measurement in measurements

def test_archive_and_delete_test_report(self, sift_client):
test_report = self.test_reports.get("basic_test_report")
if not test_report:
Expand Down
8 changes: 4 additions & 4 deletions python/lib/sift_client/resources/sync_stubs/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -1283,8 +1283,8 @@ class TestResultsAPI:
status: TestStatus | None = None,
test_system_name: str | None = None,
test_case: str | None = None,
serial_number: str | None = None,
part_number: str | None = None,
serial_numbers: list[str] | None = None,
part_numbers: list[str] | None = None,
system_operator: str | None = None,
created_by: str | None = None,
modified_by: str | None = None,
Expand All @@ -1309,8 +1309,8 @@ class TestResultsAPI:
status: Status to filter by (TestStatus enum).
test_system_name: Test system name to filter by.
test_case: Test case to filter by.
serial_number: Serial number to filter by.
part_number: Part number to filter by.
serial_numbers: Serial numbers to filter by.
part_numbers: Part numbers to filter by.
system_operator: System operator to filter by.
created_by: User ID who created the test report.
modified_by: User ID who last modified the test report.
Expand Down
24 changes: 13 additions & 11 deletions python/lib/sift_client/resources/test_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ async def list_(
status: TestStatus | None = None,
test_system_name: str | None = None,
test_case: str | None = None,
serial_number: str | None = None,
part_number: str | None = None,
serial_numbers: list[str] | None = None,
part_numbers: list[str] | None = None,
system_operator: str | None = None,
created_by: str | None = None,
modified_by: str | None = None,
Expand All @@ -131,8 +131,8 @@ async def list_(
status: Status to filter by (TestStatus enum).
test_system_name: Test system name to filter by.
test_case: Test case to filter by.
serial_number: Serial number to filter by.
part_number: Part number to filter by.
serial_numbers: Serial numbers to filter by.
part_numbers: Part numbers to filter by.
system_operator: System operator to filter by.
created_by: User ID who created the test report.
modified_by: User ID who last modified the test report.
Expand Down Expand Up @@ -173,6 +173,8 @@ async def list_(
filter_parts.append(in_("test_report_id", test_report_ids))

if status is not None:
if isinstance(status, TestStatus):
status = status.name.lower() # type: ignore
filter_parts.append(equals("status", status))

if test_system_name:
Expand All @@ -181,11 +183,11 @@ async def list_(
if test_case:
filter_parts.append(equals("test_case", test_case))

if serial_number:
filter_parts.append(equals("serial_number", serial_number))
if serial_numbers:
filter_parts.append(in_("serial_number", serial_numbers))

if part_number:
filter_parts.append(equals("part_number", part_number))
if part_numbers:
filter_parts.append(in_("part_number", part_numbers))

if system_operator:
filter_parts.append(equals("system_operator", system_operator))
Expand Down Expand Up @@ -351,10 +353,10 @@ async def list_steps(
filter_parts.append(in_("parent_step_id", parent_step_ids))

if status is not None:
filter_parts.append(equals("status", status))
filter_parts.append(equals("status", status.name.lower()))

if step_type is not None:
filter_parts.append(equals("step_type", step_type))
filter_parts.append(equals("step_type", step_type.name.lower()))

query_filter = and_(*filter_parts)

Expand Down Expand Up @@ -517,7 +519,7 @@ async def list_measurements(
filter_parts.append(in_("test_report_id", test_report_ids))

if measurement_type is not None:
filter_parts.append(equals("measurement_type", measurement_type))
filter_parts.append(equals("measurement_type", measurement_type.name.lower()))

if passed is not None:
filter_parts.append(equals("passed", passed))
Expand Down
Loading