4 Commits
Author SHA1 Message Date
zemion e514005003 docs(soap): add German reference coverage
Module Package Release / publish-packages (push) Successful in 11s
2026-08-22 06:21:50 +02:00
zemion 6b35079e14 Release v0.1.18
Module Package Release / publish-packages (push) Successful in 11s
2026-08-05 21:07:52 +02:00
zemion 0ef8f6f0eb Release v0.1.17
Module Package Release / publish-packages (push) Successful in 11s
2026-08-05 20:34:16 +02:00
zemion 3d5f55b197 Release v0.1.16
Module Package Release / publish-packages (push) Successful in 11s
2026-08-05 19:52:32 +02:00
4 changed files with 23 additions and 4 deletions
+2 -2
View File
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "govoplan-soap" name = "govoplan-soap"
version = "0.1.15" version = "0.1.19"
description = "SOAP connector module for GovOPlaN" description = "SOAP connector module for GovOPlaN"
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
dependencies = [ dependencies = [
"govoplan-core>=0.1.15", "govoplan-core>=0.1.18",
"pydantic>=2,<3", "pydantic>=2,<3",
] ]
+1 -1
View File
@@ -2,4 +2,4 @@
__all__ = ["__version__"] __all__ = ["__version__"]
__version__ = "0.1.15" __version__ = "0.1.19"
+13 -1
View File
@@ -32,7 +32,7 @@ def _route_factory(context: ModuleContext):
manifest = ModuleManifest( manifest = ModuleManifest(
id="soap", id="soap",
name="SOAP Connector", name="SOAP Connector",
version="0.1.15", version="0.1.19",
required_capabilities=(CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR), required_capabilities=(CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR),
optional_dependencies=("audit", "docs", "policy"), optional_dependencies=("audit", "docs", "policy"),
provides_interfaces=( provides_interfaces=(
@@ -59,6 +59,18 @@ manifest = ModuleManifest(
documentation_types=("admin", "user"), documentation_types=("admin", "user"),
audience=("integration_user", "operator", "module_admin"), audience=("integration_user", "operator", "module_admin"),
related_modules=("policy", "audit", "docs"), related_modules=("policy", "audit", "docs"),
translations={
"de": {
"title": "Gesteuerte SOAP-Veröffentlichungen verwenden",
"summary": "SOAP bindet ausdrücklich veröffentlichte Moduloperationen an, ohne deren fachliches Verhalten zu übernehmen.",
"body": (
"Nur Operationen, die über den Veröffentlichungsvertrag registriert sind, sind sichtbar. "
"Das Quellmodul bleibt für Validierung, Autorisierungsfakten, Idempotenz und Seiteneffekte verantwortlich; "
"SOAP verantwortet Nachrichtenumschläge, Serialisierung, Transportrichtlinien, Drosselung und Diagnostik. "
"Die aktuelle Oberfläche ist ein Anbieter- und Ermittlungsvertrag und keine unbeschränkte Brücke zu internen Operationen."
),
}
},
metadata={"kind": "reference"}, metadata={"kind": "reference"},
), ),
), ),
+7
View File
@@ -24,6 +24,13 @@ class SoapModuleContractTests(unittest.TestCase):
self.assertEqual("/soap", router.prefix) self.assertEqual("/soap", router.prefix)
self.assertEqual(1, len(router.routes)) self.assertEqual(1, len(router.routes))
def test_public_reference_has_complete_german_localization(self) -> None:
topic = get_manifest().documentation[0]
translation = topic.translations["de"]
self.assertEqual({"title", "summary", "body"}, set(translation))
self.assertTrue(all(str(translation[field]).strip() for field in translation))
def test_operation_descriptor_is_stable(self) -> None: def test_operation_descriptor_is_stable(self) -> None:
descriptor = SoapOperationDescriptor( descriptor = SoapOperationDescriptor(
id="demo.ping", id="demo.ping",