feat: implement comprehensive configuration management system with web interface and database support
CI / lint-test-build (push) Failing after 1m18s
CI / lint-test-build (push) Failing after 1m18s
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
"""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!")
|
||||
Reference in New Issue
Block a user