SIENTIAPDE-1478

Refactor PI Web API response handling in tests

- Updated test cases in test_api.py to handle response data as lists instead of dictionaries for consistency with the API's expected output format.
- Adjusted mock responses to reflect the new structure, ensuring tests accurately simulate API behavior.
- Enhanced clarity in test descriptions and improved overall test coverage for response processing scenarios.
This commit is contained in:
vitor-aignosi
2026-01-22 13:48:05 -03:00
parent 0739f7e2b3
commit ecbcd67597
2 changed files with 66 additions and 1336 deletions

File diff suppressed because one or more lines are too long

View File

@@ -121,8 +121,8 @@ async def test_write_pi_web_api_data_success(mock_dataframe, api, base_input_dat
# Mock successful responses
api.pi_web_api_client.write_value.side_effect = [
{'Items': [{'WebId': 'web_id_1', 'Errors': []}, {'WebId': 'web_id_2', 'Errors': []}]},
{'Items': [{'WebId': 'web_id_3', 'Errors': []}, {'WebId': 'web_id_4', 'Errors': []}]},
[{'WebId': 'web_id_1', 'Errors': []}, {'WebId': 'web_id_2', 'Errors': []}],
[{'WebId': 'web_id_3', 'Errors': []}, {'WebId': 'web_id_4', 'Errors': []}],
]
result = await api.write_pi_web_api_data(input_data)
@@ -190,7 +190,7 @@ async def test_write_pi_web_api_data_confidence_error(mock_dataframe, api, base_
# First call succeeds, second fails
api.pi_web_api_client.write_value.side_effect = [
{'Items': [{'WebId': 'web_id_1', 'Errors': []}]},
[{'WebId': 'web_id_1', 'Errors': []}],
Exception('Confidence write failed'),
]
@@ -229,8 +229,8 @@ async def test_write_pi_web_api_data_empty_tags(mock_dataframe, api, base_input_
# Mock empty responses
api.pi_web_api_client.write_value.side_effect = [
{'Items': []},
{'Items': []},
[],
[],
]
result = await api.write_pi_web_api_data(input_data)
@@ -273,12 +273,10 @@ async def test_close(api):
@mark.asyncio
async def test_process_pi_web_api_response_success(api):
"""Test successful processing of PI Web API response with all tags written."""
response_data = {
'Items': [
{'WebId': 'web_id_1', 'Errors': []},
{'WebId': 'web_id_2', 'Errors': []},
]
}
response_data = [
{'WebId': 'web_id_1', 'Errors': []},
{'WebId': 'web_id_2', 'Errors': []},
]
tags = {'tag1': 'web_id_1', 'tag2': 'web_id_2'}
core_labels = {
'pod_id': 'test_pod',
@@ -308,12 +306,10 @@ async def test_process_pi_web_api_response_success(api):
@mark.asyncio
async def test_process_pi_web_api_response_with_errors(api):
"""Test processing response with errors in some tags."""
response_data = {
'Items': [
{'WebId': 'web_id_1', 'Errors': ['Error writing tag']},
{'WebId': 'web_id_2', 'Errors': []},
]
}
response_data = [
{'WebId': 'web_id_1', 'Errors': ['Error writing tag']},
{'WebId': 'web_id_2', 'Errors': []},
]
tags = {'tag1': 'web_id_1', 'tag2': 'web_id_2'}
core_labels = {
'pod_id': 'test_pod',
@@ -339,11 +335,9 @@ async def test_process_pi_web_api_response_with_errors(api):
@mark.asyncio
async def test_process_pi_web_api_response_missing_tags(api):
"""Test processing response when number of written tags doesn't match expected."""
response_data = {
'Items': [
{'WebId': 'web_id_1', 'Errors': []},
]
}
response_data = [
{'WebId': 'web_id_1', 'Errors': []},
]
tags = {'tag1': 'web_id_1', 'tag2': 'web_id_2'}
core_labels = {
'pod_id': 'test_pod',
@@ -372,12 +366,10 @@ async def test_process_pi_web_api_response_missing_tags(api):
@mark.asyncio
async def test_process_pi_web_api_response_missing_webid(api):
"""Test processing response when WebId is missing in response item."""
response_data = {
'Items': [
{'Errors': []},
{'WebId': 'web_id_2', 'Errors': []},
]
}
response_data = [
{'Errors': []},
{'WebId': 'web_id_2', 'Errors': []},
]
tags = {'tag1': 'web_id_1', 'tag2': 'web_id_2'}
core_labels = {
'pod_id': 'test_pod',
@@ -403,11 +395,9 @@ async def test_process_pi_web_api_response_missing_webid(api):
@mark.asyncio
async def test_process_pi_web_api_response_missing_tag_name(api):
"""Test processing response when tag name is not found for WebId."""
response_data = {
'Items': [
{'WebId': 'unknown_web_id', 'Errors': []},
]
}
response_data = [
{'WebId': 'unknown_web_id', 'Errors': []},
]
tags = {'tag1': 'web_id_1'}
core_labels = {
'pod_id': 'test_pod',