Files
govoplan-dataflow/tests/test_manifest.py

48 lines
1.6 KiB
Python

from __future__ import annotations
import unittest
from govoplan_core.core.dataflows import (
CAPABILITY_DATAFLOW_RUN_LIFECYCLE,
CAPABILITY_DATAFLOW_TRIGGER_DISPATCHER,
)
from govoplan_core.core.modules import ModuleManifest
from govoplan_dataflow.backend.manifest import get_manifest
class DataflowManifestTests(unittest.TestCase):
def test_manifest_declares_independent_dataflow_boundary(self) -> None:
manifest = get_manifest()
self.assertIsInstance(manifest, ModuleManifest)
self.assertEqual(manifest.id, "dataflow")
self.assertEqual(manifest.dependencies, ())
self.assertIn("datasources", manifest.optional_dependencies)
self.assertIn("reporting", manifest.optional_dependencies)
self.assertIn("workflow", manifest.optional_dependencies)
self.assertEqual(manifest.frontend.package_name, "@govoplan/dataflow-webui")
self.assertIsNotNone(manifest.route_factory)
self.assertIsNotNone(manifest.migration_spec)
self.assertIn(
CAPABILITY_DATAFLOW_RUN_LIFECYCLE,
manifest.capability_factories,
)
self.assertIn(
CAPABILITY_DATAFLOW_TRIGGER_DISPATCHER,
manifest.capability_factories,
)
self.assertEqual(
{
"dataflow.pipeline_catalog",
"dataflow.pipeline_preview",
"dataflow.run_lifecycle",
"dataflow.dataset_output",
"dataflow.trigger_dispatcher",
},
{item.name for item in manifest.provides_interfaces},
)
if __name__ == "__main__":
unittest.main()