Files
grok-register/tests/test_cloudflare_admin_api.py
T

88 lines
3.0 KiB
Python

import unittest
from unittest.mock import patch
import cf_mail_debug
import grok_register_ttk as app
class DummyResponse:
def __init__(self, payload):
self._payload = payload
self.text = ""
def raise_for_status(self):
return None
def json(self):
return self._payload
class CloudflareAdminCreateTests(unittest.TestCase):
def setUp(self):
self.original_config = app.config.copy()
def tearDown(self):
app.config = self.original_config
def test_app_uses_admin_new_address_with_x_admin_auth(self):
app.config.update({
"cloudflare_api_key": "admin-secret",
"cloudflare_auth_mode": "x-admin-auth",
"cloudflare_path_accounts": "/admin/new_address",
"defaultDomains": "vitassk.com",
})
captured = {}
def fake_post(url, **kwargs):
captured["url"] = url
captured.update(kwargs)
return DummyResponse({"address": "adminuser@vitassk.com", "jwt": "address-jwt"})
with patch.object(app, "generate_username", return_value="adminuser"), \
patch.object(app, "http_post", side_effect=fake_post):
address, jwt = app.cloudflare_create_temp_address("https://temp-mail.ikun.day")
self.assertEqual(address, "adminuser@vitassk.com")
self.assertEqual(jwt, "address-jwt")
self.assertEqual(captured["url"], "https://temp-mail.ikun.day/admin/new_address")
self.assertEqual(captured["json"], {
"name": "adminuser",
"domain": "vitassk.com",
"enablePrefix": True,
})
self.assertEqual(captured["headers"]["Content-Type"], "application/json")
self.assertEqual(captured["headers"]["x-admin-auth"], "admin-secret")
def test_debug_tool_can_create_address_through_admin_api(self):
captured = {}
def fake_post(url, **kwargs):
captured["url"] = url
captured.update(kwargs)
return DummyResponse({"address": "debuguser@vitassk.com", "jwt": "debug-jwt"})
with patch.object(cf_mail_debug.requests, "post", side_effect=fake_post):
address, jwt = cf_mail_debug.create_address(
"https://temp-mail.ikun.day",
auth_mode="x-admin-auth",
api_key="admin-secret",
create_path="/admin/new_address",
domain="vitassk.com",
name="debuguser",
)
self.assertEqual(address, "debuguser@vitassk.com")
self.assertEqual(jwt, "debug-jwt")
self.assertEqual(captured["url"], "https://temp-mail.ikun.day/admin/new_address")
self.assertEqual(captured["json"], {
"name": "debuguser",
"domain": "vitassk.com",
"enablePrefix": True,
})
self.assertEqual(captured["headers"]["Content-Type"], "application/json")
self.assertEqual(captured["headers"]["x-admin-auth"], "admin-secret")
if __name__ == "__main__":
unittest.main()