feat: inventory SMTP infrastructure dependencies
Module Package Release / publish-packages (push) Successful in 12s
Module Package Release / publish-packages (push) Successful in 12s
This commit is contained in:
@@ -22,6 +22,7 @@ from govoplan_core.db.session import configure_database, reset_database
|
||||
from govoplan_core.security.credential_envelopes import CredentialEnvelope
|
||||
from govoplan_mail.backend.configuration_provider import (
|
||||
MAIL_CONFIGURATION_CAPABILITY,
|
||||
MAIL_INFRASTRUCTURE_DEPENDENCY_CAPABILITY,
|
||||
SqlMailConfigurationProvider,
|
||||
)
|
||||
from govoplan_mail.backend.db.models import (
|
||||
@@ -168,9 +169,30 @@ class MailConfigurationProviderTests(unittest.TestCase):
|
||||
|
||||
def test_provider_is_registered_and_describes_receipt_bound_fragment(self) -> None:
|
||||
self.assertIn(MAIL_CONFIGURATION_CAPABILITY, manifest.capability_factories)
|
||||
self.assertIn(
|
||||
MAIL_INFRASTRUCTURE_DEPENDENCY_CAPABILITY,
|
||||
manifest.capability_factories,
|
||||
)
|
||||
description = self.provider.describe()
|
||||
self.assertEqual(("smtp_profile",), description.fragment_types)
|
||||
|
||||
def test_inventory_reports_actual_smtp_endpoint_and_credential_binding(self) -> None:
|
||||
fragment = ConfigurationPackageFragment(
|
||||
module_id="mail",
|
||||
fragment_type="smtp_profile",
|
||||
fragment_id="inventory-smtp",
|
||||
payload={"credential_envelope_id": "credential-1"},
|
||||
)
|
||||
self.provider.apply(fragment, {}, self.context)
|
||||
|
||||
dependencies = self.provider.infrastructure_dependencies()
|
||||
|
||||
self.assertEqual(1, len(dependencies))
|
||||
self.assertEqual("mail.smtp", dependencies[0].capability_id)
|
||||
self.assertEqual("smtp_endpoint", dependencies[0].dependency_type)
|
||||
self.assertEqual(1, dependencies[0].metrics["credential_binding_count"])
|
||||
self.assertNotIn("test-mail", str(dependencies[0].to_dict()))
|
||||
|
||||
def test_apply_is_idempotent_and_binds_existing_credential_envelope(self) -> None:
|
||||
fragment = ConfigurationPackageFragment(
|
||||
module_id="mail",
|
||||
|
||||
Reference in New Issue
Block a user