from __future__ import annotations import unittest from govoplan_core.core.datasources import ( CAPABILITY_DATASOURCE_CATALOGUE, CAPABILITY_DATASOURCE_LIFECYCLE, ) from govoplan_datasources.backend.manifest import get_manifest class DatasourceManifestTests(unittest.TestCase): def test_manifest_exposes_provider_neutral_contracts(self) -> None: manifest = get_manifest() self.assertEqual(manifest.id, "datasources") self.assertIn(CAPABILITY_DATASOURCE_CATALOGUE, manifest.capability_factories) self.assertIn(CAPABILITY_DATASOURCE_LIFECYCLE, manifest.capability_factories) self.assertIn( "datasources.materializations", {item.name for item in manifest.provides_interfaces}, ) requirement = next( item for item in manifest.requires_interfaces if item.name == "connectors.datasource_origins" ) self.assertTrue(requirement.optional) if __name__ == "__main__": unittest.main()