Skip to content

Commit 82bc206

Browse files
committed
Add tests
1 parent fff6dd4 commit 82bc206

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

app/tests/components_tests/test_tasks.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1766,3 +1766,63 @@ def test_parse_endpoint_invocation_outputs(settings):
17661766
civ = invocation.outputs.first()
17671767

17681768
assert civ.value == "test output content"
1769+
1770+
1771+
@pytest.mark.django_db
1772+
def test_parse_endpoint_invocation_outputs_failure(mocker):
1773+
invocation = InvocationFactory(
1774+
status=InvocationStatusChoices.EXECUTED,
1775+
)
1776+
mocker.patch.object(
1777+
EndpointOrchestrator,
1778+
"get_outputs",
1779+
side_effect=Exception,
1780+
)
1781+
1782+
parse_endpoint_invocation_outputs(**invocation.task_kwargs)
1783+
1784+
invocation.refresh_from_db()
1785+
1786+
assert invocation.status == InvocationStatusChoices.FAILURE
1787+
assert invocation.error_message == SystemErrorMessages.UNEXPECTED_ERROR
1788+
1789+
1790+
@pytest.mark.parametrize(
1791+
"status",
1792+
set(InvocationStatusChoices).difference(
1793+
[InvocationStatusChoices.EXECUTED, InvocationStatusChoices.CANCELLED]
1794+
),
1795+
)
1796+
@pytest.mark.django_db
1797+
def test_parse_endpoint_invocation_outputs_wrong_state_raises(mocker, status):
1798+
invocation = InvocationFactory(status=status)
1799+
mock_get_outputs = mocker.patch.object(
1800+
EndpointOrchestrator,
1801+
"get_outputs",
1802+
)
1803+
1804+
with pytest.raises(
1805+
RuntimeError, match="Invocation is not ready for output parsing"
1806+
):
1807+
parse_endpoint_invocation_outputs(**invocation.task_kwargs)
1808+
invocation.refresh_from_db()
1809+
1810+
mock_get_outputs.assert_not_called()
1811+
assert invocation.status == status
1812+
assert invocation.outputs.count() == 0
1813+
1814+
1815+
@pytest.mark.django_db
1816+
def test_parse_endpoint_invocation_outputs_cancelled_skipped(mocker):
1817+
invocation = InvocationFactory(status=InvocationStatusChoices.CANCELLED)
1818+
mock_get_outputs = mocker.patch.object(
1819+
EndpointOrchestrator,
1820+
"get_outputs",
1821+
)
1822+
1823+
parse_endpoint_invocation_outputs(**invocation.task_kwargs)
1824+
invocation.refresh_from_db()
1825+
1826+
mock_get_outputs.assert_not_called()
1827+
assert invocation.status == InvocationStatusChoices.CANCELLED
1828+
assert invocation.outputs.count() == 0

0 commit comments

Comments
 (0)