SIENTIAPDE-1445

Invert startTime and endTime parameters in PIWebAPIClient to ensure descending order results. Update tests to verify parameter handling and use pytest.approx for floating-point comparisons.
This commit is contained in:
vitor-aignosi
2025-12-23 12:10:11 -03:00
parent 7424844db6
commit a6a3a9326e
3 changed files with 43 additions and 12 deletions

View File

@@ -287,15 +287,18 @@ class PIWebAPIClient(SientiaMonitoring):
# Build query parameters with WebIds (filtering out None values)
params: list[tuple[str, str]] = [('webid', web_id['webid']) for web_id in web_ids.values()]
# Invert startTime and endTime to get descending order (most recent first)
# PI Web API returns descending order when endTime < startTime
params.extend(
[
('startTime', start_time),
('endtime', end_time),
('startTime', end_time), # Use end_time as startTime (inverted)
('endtime', start_time), # Use start_time as endTime (inverted)
('selectedFields', 'Items.Name;Items.Items.Timestamp;Items.Items.Value'),
]
)
params.append(('maxCount', str(max_count)))
if max_count is not None:
params.append(('maxCount', str(max_count)))
data = await self._curl_get_json(
url=url,