Release govoplan-mail v0.1.27: stabilize credentials, folder encoding and transport progress
Module Package Release / publish-packages (push) Successful in 11s
Module Package Release / publish-packages (push) Successful in 11s
This commit is contained in:
@@ -563,7 +563,7 @@ class MailProfilePolicyHelperTests(unittest.TestCase):
|
||||
"credential-1",
|
||||
)
|
||||
|
||||
def test_campaign_delivery_fails_when_policy_requires_local_credentials(self):
|
||||
def test_campaign_delivery_fails_when_policy_requires_missing_explicit_credentials(self):
|
||||
profile = SimpleNamespace(imap_config=None)
|
||||
policy = EffectiveMailProfilePolicy(
|
||||
smtp_credentials=EffectiveCredentialPolicy(inherit=False),
|
||||
@@ -572,6 +572,44 @@ class MailProfilePolicyHelperTests(unittest.TestCase):
|
||||
with self.assertRaisesRegex(MailProfileError, "explicit credential selection"):
|
||||
_assert_campaign_inherits_profile_credentials(profile, policy)
|
||||
|
||||
def test_explicit_mail_credentials_satisfy_independent_protocol_selection_policy(self):
|
||||
profile = SimpleNamespace(imap_config={"host": "imap.example.test"})
|
||||
policy = EffectiveMailProfilePolicy(
|
||||
smtp_credentials=EffectiveCredentialPolicy(inherit=False),
|
||||
imap_credentials=EffectiveCredentialPolicy(inherit=False),
|
||||
)
|
||||
with self.assertRaisesRegex(MailProfileError, "effective IMAP"):
|
||||
_assert_campaign_inherits_profile_credentials(profile, policy, {"smtp_credential_id": "smtp-credential"})
|
||||
_assert_campaign_inherits_profile_credentials(profile, policy, {
|
||||
"smtp_credential_id": "smtp-credential", "imap_credential_id": "imap-credential",
|
||||
})
|
||||
# Allowing a default never forbids an explicitly selected Mail credential.
|
||||
_assert_campaign_inherits_profile_credentials(profile, EffectiveMailProfilePolicy(), {
|
||||
"smtp_credential_id": "smtp-credential", "imap_credential_id": "imap-credential",
|
||||
})
|
||||
|
||||
def test_credential_selection_false_is_overridable_only_without_an_ancestor_lock(self):
|
||||
for locked in (False, True):
|
||||
with self.subTest(locked=locked):
|
||||
policy = EffectiveMailProfilePolicy()
|
||||
_merge_policy(policy, {
|
||||
"smtp_credentials": {"inherit": False},
|
||||
"allow_lower_level_limits": {"smtp_credentials.inherit": not locked},
|
||||
}, source="system")
|
||||
_merge_policy(policy, {
|
||||
"smtp_credentials": {"inherit": True},
|
||||
"allow_lower_level_limits": {"smtp_credentials.inherit": True},
|
||||
}, source="tenant", source_id="tenant-1")
|
||||
self.assertEqual(policy.smtp_credentials.inherit, not locked)
|
||||
self.assertEqual(policy.allow_lower_level_limits["smtp_credentials.inherit"], not locked)
|
||||
|
||||
def test_null_credential_selection_inherits_the_parent_choice(self):
|
||||
policy = EffectiveMailProfilePolicy()
|
||||
_merge_policy(policy, {"smtp_credentials": {"inherit": False}}, source="system")
|
||||
_merge_policy(policy, {"smtp_credentials": {"inherit": None}}, source="tenant", source_id="tenant-1")
|
||||
self.assertFalse(policy.smtp_credentials.inherit)
|
||||
self.assertEqual(policy.smtp_credentials.inherit_source, "system")
|
||||
|
||||
def test_merge_policy_respects_locked_lower_level_limits(self):
|
||||
policy = EffectiveMailProfilePolicy()
|
||||
_merge_policy(
|
||||
|
||||
Reference in New Issue
Block a user