intermittent commit
This commit is contained in:
@@ -364,12 +364,79 @@ class ApiSmokeTests(unittest.TestCase):
|
||||
json={"email": "admin@example.local", "password": "test-admin"},
|
||||
)
|
||||
self.assertEqual(response.status_code, 200, response.text)
|
||||
csrf = response.cookies.get("msm_csrf")
|
||||
csrf = response.cookies.get("govoplan_csrf")
|
||||
self.assertTrue(csrf)
|
||||
|
||||
session_summary = self.client.get("/api/v1/auth/session")
|
||||
self.assertEqual(session_summary.status_code, 200, session_summary.text)
|
||||
session_payload = session_summary.json()
|
||||
self.assertTrue(session_payload["authenticated"])
|
||||
self.assertEqual(session_payload["auth_method"], "session")
|
||||
self.assertNotIn("scopes", session_payload)
|
||||
self.assertNotIn("roles", session_payload)
|
||||
self.assertNotIn("groups", session_payload)
|
||||
|
||||
shell_summary = self.client.get("/api/v1/auth/shell")
|
||||
self.assertEqual(shell_summary.status_code, 200, shell_summary.text)
|
||||
shell_payload = shell_summary.json()
|
||||
self.assertEqual(shell_payload["principal"]["auth_method"], "session")
|
||||
self.assertFalse(shell_payload["profile_loaded"])
|
||||
self.assertFalse(shell_payload["roles_loaded"])
|
||||
self.assertFalse(shell_payload["groups_loaded"])
|
||||
self.assertIsInstance(shell_payload["scopes"], list)
|
||||
self.assertTrue(shell_payload["scopes"])
|
||||
self.assertTrue(shell_payload["tenants"])
|
||||
self.assertTrue(all(membership["roles"] == [] for membership in shell_payload["tenants"]))
|
||||
self.assertNotIn("roles", shell_payload)
|
||||
self.assertNotIn("groups", shell_payload)
|
||||
self.assertNotIn("available_languages", shell_payload)
|
||||
self.assertNotIn("default_language", shell_payload)
|
||||
|
||||
profile_summary = self.client.get("/api/v1/auth/profile")
|
||||
self.assertEqual(profile_summary.status_code, 200, profile_summary.text)
|
||||
profile_payload = profile_summary.json()
|
||||
self.assertTrue(profile_payload["profile_loaded"])
|
||||
self.assertEqual(profile_payload["user"]["id"], session_payload["user"]["id"])
|
||||
self.assertIn("available_languages", profile_payload)
|
||||
self.assertIn("default_language", profile_payload)
|
||||
self.assertNotIn("roles", profile_payload)
|
||||
self.assertNotIn("groups", profile_payload)
|
||||
|
||||
roles_summary = self.client.get("/api/v1/auth/roles")
|
||||
self.assertEqual(roles_summary.status_code, 200, roles_summary.text)
|
||||
roles_payload = roles_summary.json()
|
||||
self.assertTrue(roles_payload["roles_loaded"])
|
||||
self.assertTrue(roles_payload["roles"])
|
||||
self.assertNotIn("groups", roles_payload)
|
||||
|
||||
groups_summary = self.client.get("/api/v1/auth/groups")
|
||||
self.assertEqual(groups_summary.status_code, 200, groups_summary.text)
|
||||
groups_payload = groups_summary.json()
|
||||
self.assertTrue(groups_payload["groups_loaded"])
|
||||
self.assertIsInstance(groups_payload["groups"], list)
|
||||
self.assertNotIn("roles", groups_payload)
|
||||
|
||||
api_key_session = self.client.get("/api/v1/auth/session", headers={"X-API-Key": "test-api-key"})
|
||||
self.assertEqual(api_key_session.status_code, 200, api_key_session.text)
|
||||
self.assertEqual(api_key_session.json()["auth_method"], "api_key")
|
||||
|
||||
api_key_shell = self.client.get("/api/v1/auth/shell", headers={"X-API-Key": "test-api-key"})
|
||||
self.assertEqual(api_key_shell.status_code, 200, api_key_shell.text)
|
||||
api_key_shell_payload = api_key_shell.json()
|
||||
self.assertEqual(api_key_shell_payload["principal"]["auth_method"], "api_key")
|
||||
self.assertFalse(api_key_shell_payload["profile_loaded"])
|
||||
self.assertFalse(api_key_shell_payload["roles_loaded"])
|
||||
self.assertFalse(api_key_shell_payload["groups_loaded"])
|
||||
self.assertIsInstance(api_key_shell_payload["scopes"], list)
|
||||
|
||||
me = self.client.get("/api/v1/auth/me")
|
||||
self.assertEqual(me.status_code, 200, me.text)
|
||||
me_payload = me.json()
|
||||
self.assertEqual(session_payload["user"]["id"], me_payload["user"]["id"])
|
||||
self.assertEqual(session_payload["tenant"]["id"], me_payload["tenant"]["id"])
|
||||
self.assertEqual(shell_payload["user"]["id"], me_payload["user"]["id"])
|
||||
self.assertEqual(shell_payload["tenant"]["id"], me_payload["tenant"]["id"])
|
||||
self.assertTrue(me_payload["profile_loaded"])
|
||||
self.assertEqual(me_payload["principal"]["account_id"], me_payload["user"]["account_id"])
|
||||
self.assertEqual(me_payload["principal"]["membership_id"], me_payload["user"]["id"])
|
||||
self.assertEqual(me_payload["principal"]["tenant_id"], me_payload["tenant"]["id"])
|
||||
@@ -423,6 +490,20 @@ class ApiSmokeTests(unittest.TestCase):
|
||||
imap_host="mock.imap",
|
||||
)
|
||||
|
||||
bootstrapped = self.client.get(
|
||||
f"/api/v1/mail/profiles/{profile_id}/mailbox/bootstrap",
|
||||
headers=headers,
|
||||
params={"folder": "INBOX", "limit": 2},
|
||||
)
|
||||
self.assertEqual(bootstrapped.status_code, 200, bootstrapped.text)
|
||||
bootstrap_payload = bootstrapped.json()
|
||||
self.assertEqual(bootstrap_payload["folder"], "INBOX")
|
||||
self.assertTrue(bootstrap_payload["folders"]["ok"])
|
||||
self.assertFalse(bootstrap_payload["folders"]["from_cache"])
|
||||
self.assertFalse(bootstrap_payload["messages"]["from_cache"])
|
||||
self.assertEqual(bootstrap_payload["messages"]["total_count"], 3)
|
||||
self.assertEqual(len(bootstrap_payload["messages"]["messages"]), 2)
|
||||
|
||||
listed = self.client.get(
|
||||
f"/api/v1/mail/profiles/{profile_id}/mailbox/messages",
|
||||
headers=headers,
|
||||
@@ -433,6 +514,7 @@ class ApiSmokeTests(unittest.TestCase):
|
||||
self.assertEqual(payload["folder"], "INBOX")
|
||||
self.assertEqual(payload["total_count"], 3)
|
||||
self.assertEqual(len(payload["messages"]), 2)
|
||||
self.assertTrue(payload["from_cache"])
|
||||
self.assertTrue(all(message["folder"] == "INBOX" for message in payload["messages"]))
|
||||
self.assertTrue(payload["cursor_stable"])
|
||||
self.assertFalse(payload["full"])
|
||||
@@ -449,6 +531,14 @@ class ApiSmokeTests(unittest.TestCase):
|
||||
self.assertEqual(len(next_payload["messages"]), 1)
|
||||
self.assertFalse(next_payload["next_cursor"])
|
||||
|
||||
cached_next_page = self.client.get(
|
||||
f"/api/v1/mail/profiles/{profile_id}/mailbox/messages",
|
||||
headers=headers,
|
||||
params={"folder": "INBOX", "cursor": payload["next_cursor"]},
|
||||
)
|
||||
self.assertEqual(cached_next_page.status_code, 200, cached_next_page.text)
|
||||
self.assertTrue(cached_next_page.json()["from_cache"])
|
||||
|
||||
stale_cursor = encode_keyset_cursor(
|
||||
"mail.mailbox.messages.v1",
|
||||
fingerprint=keyset_query_fingerprint(
|
||||
@@ -739,7 +829,7 @@ class ApiSmokeTests(unittest.TestCase):
|
||||
|
||||
schema = self.client.get("/api/v1/schemas/campaign", headers=headers)
|
||||
self.assertEqual(schema.status_code, 200, schema.text)
|
||||
self.assertEqual(schema.json()["title"], "MultiMailer Campaign")
|
||||
self.assertEqual(schema.json()["title"], "GovOPlaN Campaign")
|
||||
|
||||
dev_mailbox = self.client.get("/api/v1/dev/mailbox/messages", headers=headers)
|
||||
self.assertEqual(dev_mailbox.status_code, 404, dev_mailbox.text)
|
||||
@@ -3269,7 +3359,7 @@ class ApiSmokeTests(unittest.TestCase):
|
||||
"invoices/archive/202605-010001-report.XLSX",
|
||||
"invoices/202605-010001-90100010-9601741.XLSX",
|
||||
})
|
||||
self.assertFalse(any("multimailer-managed-build" in value for value in resolved_paths))
|
||||
self.assertFalse(any("govoplan-managed-build" in value for value in resolved_paths))
|
||||
|
||||
jobs = self.client.get(
|
||||
f"/api/v1/campaigns/{campaign_id}/jobs",
|
||||
|
||||
Reference in New Issue
Block a user