Files
arbitrade/tests/unit/test_config_e2e.py
T
zwitschi c8e3daeb57
CI / lint-test-build (push) Failing after 12s
Refactor code for improved readability and consistency
- Consolidated multiline string formatting into single-line for SQL queries in multiple files.
- Adjusted argument formatting in function calls for better alignment and readability.
- Removed unnecessary line breaks and improved spacing in various sections of the codebase.
- Updated test cases to maintain consistency in formatting and improve clarity.
2026-06-04 19:04:30 +02:00

58 lines
1.9 KiB
Python

"""End-to-end test for configuration management system."""
import pytest
from unittest.mock import Mock, patch
from arbitrade.config.service import ConfigurationService
from arbitrade.config.settings import Settings
from arbitrade.storage.db import DuckDBStore
from arbitrade.storage.repositories import AuditRepository
def test_end_to_end_config_workflow():
"""Test complete configuration workflow."""
# Create mocks
settings = Mock(spec=Settings)
store = Mock(spec=DuckDBStore)
audit_repo = Mock(spec=AuditRepository)
# Create service
service = ConfigurationService(settings, store, audit_repo)
# Test initial state
assert service.get_config_version() == 0
assert service.get_last_updated_at() is None
# Test setting a value
with patch("arbitrade.config.service.ConfigSettingRepository") as mock_repo_class:
mock_repo_instance = Mock()
mock_repo_class.return_value = mock_repo_instance
# Mock the setting creation
mock_created_setting = Mock()
mock_created_setting.updated_at = "2023-01-01T00:00:00"
mock_repo_instance.create_setting.return_value = mock_created_setting
# Set a setting
service.set_setting("test_key", "test_value", "test_user")
# Verify version incremented
assert service.get_config_version() == 1
# Verify setting was retrieved
result = service.get_setting("test_key", "default")
assert result == "test_value"
# Verify hot-reload detection works
mock_repo_instance.get_latest_updated_at.return_value = "2023-01-01T00:00:00"
assert service.is_config_outdated() is True
# Verify reload works
assert service.reload_if_changed() is True
assert service.get_config_version() == 2
if __name__ == "__main__":
test_end_to_end_config_workflow()
print("End-to-end test passed!")