Release v0.1.2

This commit is contained in:
2026-06-25 19:58:20 +02:00
parent 15794e920e
commit 02564047e9
73 changed files with 4073 additions and 478 deletions

View File

@@ -215,19 +215,18 @@ class ApiSmokeTests(unittest.TestCase):
"smtp": {
"host": "mock.smtp",
"port": 2525,
"username": "sender@example.org",
"password": "smtp-secret",
"security": "starttls",
},
"imap": {
"enabled": True,
"host": "mock.imap",
"port": 993,
"username": "sender@example.org",
"password": "imap-secret",
"security": "tls",
"sent_folder": "Sent",
},
"credentials": {
"smtp": {"username": "sender@example.org", "password": "smtp-secret"},
"imap": {"username": "sender@example.org", "password": "imap-secret"},
},
},
)
self.assertEqual(created_profile.status_code, 201, created_profile.text)
@@ -264,25 +263,28 @@ class ApiSmokeTests(unittest.TestCase):
"smtp": {
"host": "mock.smtp",
"port": 2525,
"username": "sender@example.org",
"password": "smtp-secret",
"security": "starttls",
},
"imap": {
"enabled": True,
"host": "mock.imap",
"port": 993,
"username": "sender@example.org",
"password": "imap-secret",
"security": "tls",
"sent_folder": "Sent",
},
"credentials": {
"smtp": {"username": "sender@example.org", "password": "smtp-secret"},
"imap": {"username": "sender@example.org", "password": "imap-secret"},
},
},
)
self.assertEqual(created_profile.status_code, 201, created_profile.text)
profile_payload = created_profile.json()
self.assertNotIn("password", profile_payload["smtp"])
self.assertNotIn("username", profile_payload["smtp"])
self.assertNotIn("password", profile_payload["imap"])
self.assertNotIn("username", profile_payload["imap"])
self.assertEqual(profile_payload["credentials"]["smtp"]["username"], "sender@example.org")
self.assertEqual(profile_payload["credentials"]["imap"]["username"], "sender@example.org")
profile_id = profile_payload["id"]
campaign_json = {
@@ -325,8 +327,12 @@ class ApiSmokeTests(unittest.TestCase):
assert profile is not None
self.assertNotEqual(profile.smtp_password_encrypted, "smtp-secret")
self.assertNotEqual(profile.imap_password_encrypted, "imap-secret")
self.assertEqual(profile.smtp_username, "sender@example.org")
self.assertEqual(profile.imap_username, "sender@example.org")
self.assertNotIn("password", profile.smtp_config)
self.assertNotIn("username", profile.smtp_config)
self.assertNotIn("password", profile.imap_config or {})
self.assertNotIn("username", profile.imap_config or {})
version = session.get(CampaignVersion, version_id)
self.assertIsNotNone(version)
@@ -346,19 +352,18 @@ class ApiSmokeTests(unittest.TestCase):
"smtp": {
"host": "mock.smtp",
"port": 2525,
"username": "profile-smtp@example.org",
"password": "profile-smtp-secret",
"security": "starttls",
},
"imap": {
"enabled": True,
"host": "mock.imap",
"port": 993,
"username": "profile-imap@example.org",
"password": "profile-imap-secret",
"security": "tls",
"sent_folder": "Sent",
},
"credentials": {
"smtp": {"username": "profile-smtp@example.org", "password": "profile-smtp-secret"},
"imap": {"username": "profile-imap@example.org", "password": "profile-imap-secret"},
},
},
)
self.assertEqual(created_profile.status_code, 201, created_profile.text)
@@ -373,8 +378,10 @@ class ApiSmokeTests(unittest.TestCase):
"mail_profile_id": profile_id,
"inherit_smtp_credentials": False,
"inherit_imap_credentials": False,
"smtp": {"username": "campaign-smtp@example.org", "password": "campaign-smtp-secret"},
"imap": {"username": "campaign-imap@example.org", "password": "campaign-imap-secret"},
"credentials": {
"smtp": {"username": "campaign-smtp@example.org", "password": "campaign-smtp-secret"},
"imap": {"username": "campaign-imap@example.org", "password": "campaign-imap-secret"},
},
},
"recipients": {
"from": {"email": "sender@example.org", "name": "Sender", "type": "to"},
@@ -2713,10 +2720,11 @@ class ApiSmokeTests(unittest.TestCase):
"smtp": {
"host": "mock.smtp",
"port": 2525,
"username": "profile-smtp@example.org",
"password": "profile-smtp-secret",
"security": "starttls",
},
"credentials": {
"smtp": {"username": "profile-smtp@example.org", "password": "profile-smtp-secret"},
},
},
)
self.assertEqual(profile.status_code, 201, profile.text)
@@ -2725,10 +2733,14 @@ class ApiSmokeTests(unittest.TestCase):
policy = self.client.put(
"/api/v1/mail/policies/tenant",
headers=headers,
json={"policy": {"smtp_credentials": {"inherit": True, "allow_override": False}}},
json={"policy": {
"smtp_credentials": {"inherit": True},
"allow_lower_level_limits": {"smtp_credentials.inherit": False},
}},
)
self.assertEqual(policy.status_code, 200, policy.text)
self.assertTrue(policy.json()["effective_policy"] is None)
self.assertEqual(policy.json()["effective_policy"]["smtp_credentials"]["inherit"], True)
self.assertEqual(policy.json()["effective_policy"]["allow_lower_level_limits"]["smtp_credentials.inherit"], False)
campaign_json = {
"version": "1.0",
@@ -2738,7 +2750,9 @@ class ApiSmokeTests(unittest.TestCase):
"server": {
"mail_profile_id": profile_id,
"inherit_smtp_credentials": False,
"smtp": {"username": "campaign-smtp@example.org", "password": "campaign-smtp-secret"},
"credentials": {
"smtp": {"username": "campaign-smtp@example.org", "password": "campaign-smtp-secret"},
},
},
"recipients": {
"from": {"email": "sender@example.org", "name": "Sender", "type": "to"},