feat: prepare ARR for controlled public deployment
This commit is contained in:
53
tests/test_arr_direct_runtime.py
Normal file
53
tests/test_arr_direct_runtime.py
Normal file
@@ -0,0 +1,53 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from arr_ingestion.direct_postgres import PostgresDirectIngestionRepository
|
||||
from arr_ingestion.direct_service import DirectSubmissionService
|
||||
from arr_ingestion.direct_validation import DirectResultValidator
|
||||
from arr_web.direct_ingestion_runtime import (
|
||||
DirectIngestionRuntime,
|
||||
compose_direct_ingestion,
|
||||
)
|
||||
from tests.test_arr_ingestion_validation import MemoryStore, policy
|
||||
|
||||
|
||||
class DirectIngestionRuntimeTests(unittest.TestCase):
|
||||
def test_framework_neutral_composition_uses_direct_components(self) -> None:
|
||||
runtime = compose_direct_ingestion(
|
||||
object_store=MemoryStore({}),
|
||||
processor_policy=policy(),
|
||||
connect=lambda _dsn: None,
|
||||
)
|
||||
self.assertIsInstance(runtime.service, DirectSubmissionService)
|
||||
self.assertIsInstance(
|
||||
runtime.service._validator,
|
||||
DirectResultValidator,
|
||||
)
|
||||
self.assertIsInstance(
|
||||
runtime.service._repository,
|
||||
PostgresDirectIngestionRepository,
|
||||
)
|
||||
|
||||
def test_close_callback_is_owned_by_runtime(self) -> None:
|
||||
calls: list[str] = []
|
||||
with tempfile.TemporaryDirectory() as temporary:
|
||||
root = Path(temporary)
|
||||
source = root / "source.xml"
|
||||
source.write_text("<RES_DETAIL/>", encoding="utf-8")
|
||||
runtime = DirectIngestionRuntime(
|
||||
service=compose_direct_ingestion(
|
||||
object_store=MemoryStore({}),
|
||||
processor_policy=policy(),
|
||||
connect=lambda _dsn: None,
|
||||
).service,
|
||||
close_callback=lambda: calls.append("closed"),
|
||||
)
|
||||
runtime.close()
|
||||
self.assertEqual(calls, ["closed"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main(verbosity=2)
|
||||
Reference in New Issue
Block a user