feat: add durable mail delivery outbox

This commit is contained in:
2026-07-30 14:26:53 +02:00
parent dec5a4e350
commit b8029c24d6
13 changed files with 1913 additions and 17 deletions

View File

@@ -7,7 +7,10 @@ from unittest.mock import patch
from sqlalchemy.orm import Session
from govoplan_core.core.modules import DocumentationContext
from govoplan_mail.backend.documentation import documentation_topics
from govoplan_mail.backend.documentation import (
documentation_configuration_states,
documentation_topics,
)
from govoplan_mail.backend.mail_profiles import EffectiveMailProfilePolicy, MailProfileError
@@ -181,6 +184,48 @@ class MailRuntimeDocumentationTests(unittest.TestCase):
self.assertEqual(topics["mail.workflow.choose-and-test-profile"].metadata["help_contexts"], ["mail.profiles", "app.settings"])
self.assertEqual(topics["mail.workflow.read-mailbox"].metadata["help_contexts"], ["mail.list"])
def test_configuration_provider_exposes_only_explicit_or_inherited_state(self) -> None:
inherited = EffectiveMailProfilePolicy(
source_policies=[
{"scope_type": "system", "applied_fields": ["defaults"]},
{"scope_type": "tenant", "applied_fields": []},
]
)
explicit = EffectiveMailProfilePolicy(
source_policies=[
{"scope_type": "system", "applied_fields": ["defaults"]},
{"scope_type": "tenant", "applied_fields": ["smtp_hosts"]},
]
)
context = self.context({"mail:profile:read"}, documentation_type="admin")
with patch(
"govoplan_mail.backend.documentation.effective_mail_profile_policy_for_scope",
return_value=inherited,
):
inherited_state = documentation_configuration_states(
context,
("mail_profile_policy",),
)
with patch(
"govoplan_mail.backend.documentation.effective_mail_profile_policy_for_scope",
return_value=explicit,
):
explicit_state = documentation_configuration_states(
context,
("mail_profile_policy",),
)
self.assertEqual(
inherited_state["mail_profile_policy"].state,
"inherited",
)
self.assertEqual(
explicit_state["mail_profile_policy"].state,
"enabled",
)
self.assertNotIn("smtp_hosts", repr(explicit_state))
if __name__ == "__main__":
unittest.main()