- Added a new fixture to manage runtime report artifacts in a writable temp directory during E2E tests, addressing permission issues in local CI/dev environments. - Updated `conftest.py` to include a requirements.txt file in the model packaging path for training activities. - Refactored existing fixtures to use `pytest.fixture` instead of `pytest_asyncio.fixture` for better compatibility. - Enhanced the `Reports` class to include a target alias for report metrics, ensuring compatibility with Evidently's reporting requirements. - Introduced new test scenarios to validate the handling of missing and whitespace-only `date_column` inputs in the training workflow. These changes improve the robustness of the E2E testing framework and enhance the clarity of model reporting metrics.
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
"""Unit tests for the CleanupFiles workflow."""
|
|
|
|
from unittest.mock import AsyncMock, patch
|
|
|
|
import pytest
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
@patch('model_manager.workflows.cleanup_files.workflow')
|
|
async def test_cleanup_files_workflow(mock_workflow_module):
|
|
"""Test the CleanupFiles workflow."""
|
|
from model_manager.runtime_paths import REPORTS_TEMP_DIR
|
|
from model_manager.workflows.cleanup_files import CleanupFiles
|
|
|
|
# Mock execute_activity_method
|
|
mock_workflow_module.execute_activity_method = AsyncMock()
|
|
|
|
# Instantiate and run the workflow
|
|
workflow_instance = CleanupFiles()
|
|
await workflow_instance.run({})
|
|
|
|
# Verify that the activities were called with the correct parameters
|
|
calls = mock_workflow_module.execute_activity_method.call_args_list
|
|
assert len(calls) == 1
|
|
|
|
# Check cleanup_temp_directories call
|
|
local_call_args = calls[0][0][1]
|
|
assert local_call_args['temp_path'] == REPORTS_TEMP_DIR
|
|
assert local_call_args['metadata']['workflow_name'] == 'cleanup_files'
|
|
assert 'pod_id' in local_call_args['metadata']
|