Adding integration tests for workflow engine

This commit is contained in:
2025-08-06 18:22:16 +02:00
parent f0d98d23ff
commit e73709c859
3 changed files with 81 additions and 3 deletions

View File

@@ -0,0 +1,78 @@
import pytest
from unittest.mock import Mock, patch
from core.Expando import Expando
from core.jira import JiraRequestTypes
from core.settings_management import SettingsManager, MemoryDbEngine
from workflow.engine import JiraDataProducer, TableDataProducer
JIRA_IMPORT_PATH = "workflow.engine.Jira"
@pytest.fixture
def mock_jira_search_1():
with patch(JIRA_IMPORT_PATH) as mock_jira_class:
mock_jira_instance = Mock()
mock_jira_instance.search.return_value = [
Expando({
"key": "TEST-1",
"fields": {
"summary": "Test Issue",
"status": {"name": "Open"},
"assignee": {"displayName": "Test User"}
}
})
]
mock_jira_class.return_value = mock_jira_instance
yield mock_jira_instance # This allows us to access the mock instance in our tests
@pytest.fixture
def mock_jira_error():
with patch(JIRA_IMPORT_PATH) as mock_jira_class:
mock_jira_instance = Mock()
mock_jira_instance.search.side_effect = Exception("Jira API Error")
mock_jira_class.return_value = mock_jira_instance
yield mock_jira_instance
def get_jira_patch(jp: JiraDataProducer):
# Create and configure the mock instance
mock_jira_instance = Mock()
if jp.request_type == JiraRequestTypes.Search.value:
mock_jira_instance.search.return_value = [
Expando({
"key": "TEST-1",
"fields": {
"summary": "Test Issue",
"status": {"name": "Open"},
"assignee": {"displayName": "Test User"}
}
})
]
else:
raise ValueError("Unsupported request type")
return patch(JIRA_IMPORT_PATH, return_value=mock_jira_instance)
def jira_producer(session, request_type, request, fields=None):
return JiraDataProducer(session,
SettingsManager(MemoryDbEngine()),
"component_id",
request_type=request_type,
request=request,
fields=fields)
def test_i_can_produce_jira_search(session):
data = {}
jp = jira_producer(session, JiraRequestTypes.Search, "project=key1")
with get_jira_patch(jp):
res = list(jp.process(data))
assert len(res) == 1
assert res[0].key == "TEST-1"