将persist和后端分离,方便替换为其他数据库
This commit is contained in:
@@ -9,7 +9,7 @@ from pydantic import BaseModel
|
||||
from sync_state_machine.config.multi_project_config import build_multi_project_config_from_file
|
||||
from sync_state_machine.common.binding import BindingManager
|
||||
from sync_state_machine.common.collection import DataCollection
|
||||
from sync_state_machine.common.persistence import PersistenceBackend
|
||||
from sync_state_machine.common.sqlite_backend import SQLitePersistenceBackend
|
||||
from sync_state_machine.common.sync_node import SyncNode
|
||||
from sync_state_machine.pipeline.multi_project_pipeline import (
|
||||
_project_scope_overrides,
|
||||
@@ -88,7 +88,7 @@ class _ProjectNode(SyncNode[dict]):
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_binding_manager_prunes_stale_bindings_after_project_scope_cleanup() -> None:
|
||||
persistence = PersistenceBackend(":memory:")
|
||||
persistence = SQLitePersistenceBackend(":memory:")
|
||||
await persistence.initialize()
|
||||
try:
|
||||
local_collection = DataCollection("local", persistence=persistence, auto_persist=False)
|
||||
|
||||
@@ -7,6 +7,7 @@ import pytest
|
||||
from sync_state_machine.common.binding import BindingManager
|
||||
from sync_state_machine.common.collection import DataCollection
|
||||
from sync_state_machine.common.persistence import PersistenceBackend
|
||||
from sync_state_machine.common.sqlite_backend import SQLitePersistenceBackend
|
||||
from sync_state_machine.common.types import BindingStatus, SyncAction, SyncStatus
|
||||
from sync_state_machine.datasource.datasource import BaseDataSource
|
||||
from sync_state_machine.engine.state_apply import apply_state_to_node
|
||||
@@ -38,7 +39,7 @@ def _set_state(pipeline: FullSyncPipeline, node: MockSyncNode, state_id: str, *,
|
||||
|
||||
async def _new_pipeline(tmp_path: Path) -> tuple[FullSyncPipeline, DataCollection, DataCollection, BindingManager, PersistenceBackend]:
|
||||
db_path = tmp_path / "state.db"
|
||||
persistence = PersistenceBackend(str(db_path))
|
||||
persistence = SQLitePersistenceBackend(str(db_path))
|
||||
await persistence.initialize()
|
||||
|
||||
local_collection = DataCollection("local", persistence=persistence, auto_persist=False)
|
||||
|
||||
@@ -7,6 +7,7 @@ import pytest
|
||||
from sync_state_machine.common.binding import BindingManager
|
||||
from sync_state_machine.common.collection import DataCollection
|
||||
from sync_state_machine.common.persistence import PersistenceBackend
|
||||
from sync_state_machine.common.sqlite_backend import SQLitePersistenceBackend
|
||||
from sync_state_machine.datasource.datasource import BaseDataSource
|
||||
from sync_state_machine.pipeline.full_sync_pipeline import FullSyncPipeline
|
||||
from sync_state_machine.sync_system.strategy import BaseSyncStrategy
|
||||
@@ -53,7 +54,7 @@ class _OkStrategy(BaseSyncStrategy):
|
||||
@pytest.mark.asyncio
|
||||
async def test_phase_sync_by_node_type_continues_after_strategy_error(tmp_path: Path) -> None:
|
||||
db_path = tmp_path / "state.db"
|
||||
persistence = PersistenceBackend(str(db_path))
|
||||
persistence = SQLitePersistenceBackend(str(db_path))
|
||||
await persistence.initialize()
|
||||
|
||||
local_collection = DataCollection("local", persistence=persistence, auto_persist=False)
|
||||
@@ -101,7 +102,7 @@ async def test_phase_sync_by_node_type_continues_after_strategy_error(tmp_path:
|
||||
@pytest.mark.asyncio
|
||||
async def test_phase_sync_by_node_type_skip_sync_keeps_bind_but_skips_writes(tmp_path: Path) -> None:
|
||||
db_path = tmp_path / "state.db"
|
||||
persistence = PersistenceBackend(str(db_path))
|
||||
persistence = SQLitePersistenceBackend(str(db_path))
|
||||
await persistence.initialize()
|
||||
|
||||
local_collection = DataCollection("local", persistence=persistence, auto_persist=False)
|
||||
|
||||
@@ -8,6 +8,7 @@ import pytest
|
||||
from sync_state_machine.common.binding import BindingManager
|
||||
from sync_state_machine.common.collection import DataCollection
|
||||
from sync_state_machine.common.persistence import PersistenceBackend
|
||||
from sync_state_machine.common.sqlite_backend import SQLitePersistenceBackend
|
||||
from sync_state_machine.common.types import BindingStatus, SyncAction, SyncStatus
|
||||
from sync_state_machine.domain.construction.sync_node import ConstructionTaskSyncNode
|
||||
from sync_state_machine.domain.construction.sync_strategy import ConstructionTaskSyncStrategy
|
||||
@@ -19,7 +20,7 @@ from sync_state_machine.sync_system.strategy_ops.post_check_ops import evaluate_
|
||||
@pytest.mark.asyncio
|
||||
async def test_post_check_uses_same_id_resolver_as_create_update_for_depend_ids(tmp_path: Path) -> None:
|
||||
db_path = tmp_path / "state.db"
|
||||
persistence = PersistenceBackend(str(db_path))
|
||||
persistence = SQLitePersistenceBackend(str(db_path))
|
||||
await persistence.initialize()
|
||||
|
||||
local_collection = DataCollection("local", persistence=persistence, auto_persist=False)
|
||||
@@ -167,7 +168,7 @@ async def test_post_check_uses_same_id_resolver_as_create_update_for_depend_ids(
|
||||
@pytest.mark.asyncio
|
||||
async def test_post_check_ignores_only_explicit_configured_fields(tmp_path: Path) -> None:
|
||||
db_path = tmp_path / "state.db"
|
||||
persistence = PersistenceBackend(str(db_path))
|
||||
persistence = SQLitePersistenceBackend(str(db_path))
|
||||
await persistence.initialize()
|
||||
|
||||
local_collection = DataCollection("local", persistence=persistence, auto_persist=False)
|
||||
|
||||
@@ -7,6 +7,7 @@ import pytest
|
||||
from sync_state_machine.common.binding import BindingManager
|
||||
from sync_state_machine.common.collection import DataCollection
|
||||
from sync_state_machine.common.persistence import PersistenceBackend
|
||||
from sync_state_machine.common.sqlite_backend import SQLitePersistenceBackend
|
||||
from tests.fixtures.mock_domain import build_project_node, register_test_domain
|
||||
|
||||
|
||||
@@ -15,7 +16,7 @@ async def test_scope_partitioning_and_copy_between_scopes(tmp_path: Path) -> Non
|
||||
register_test_domain()
|
||||
|
||||
db_path = tmp_path / "scope_partitioning.db"
|
||||
persistence = PersistenceBackend(str(db_path))
|
||||
persistence = SQLitePersistenceBackend(str(db_path))
|
||||
await persistence.initialize()
|
||||
|
||||
global_collection = DataCollection("local", scope="global", persistence=persistence, auto_persist=False)
|
||||
|
||||
Reference in New Issue
Block a user