完善桌面端界面、发布检查与邮箱域名同步
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query, status
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query, Response, status
|
||||
from fastapi import File, UploadFile
|
||||
from pydantic import BaseModel, EmailStr, Field
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
@@ -130,8 +130,10 @@ def ensure_user_active(db_user) -> None:
|
||||
|
||||
@router.get("/email-domains", response_model=EmailDomainsResponse)
|
||||
async def read_email_domains(
|
||||
response: Response,
|
||||
db: AsyncSession = Depends(get_db_session),
|
||||
) -> EmailDomainsResponse:
|
||||
response.headers["Cache-Control"] = "no-store"
|
||||
rows = await email_service.list_email_settings(db)
|
||||
return EmailDomainsResponse(items=[row.register_domain for row in rows])
|
||||
|
||||
|
||||
@@ -70,6 +70,22 @@ async def add_email_settings(SessionLocal, domain: str) -> None:
|
||||
await session.commit()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_email_domains_come_only_from_email_service_settings(client_and_db):
|
||||
client, SessionLocal = client_and_db
|
||||
|
||||
empty_response = await client.get("/api/v1/auth/email-domains")
|
||||
assert empty_response.status_code == 200
|
||||
assert empty_response.json() == {"items": []}
|
||||
assert empty_response.headers["cache-control"] == "no-store"
|
||||
|
||||
await add_email_settings(SessionLocal, "example.com")
|
||||
configured_response = await client.get("/api/v1/auth/email-domains")
|
||||
assert configured_response.status_code == 200
|
||||
assert configured_response.json() == {"items": ["example.com"]}
|
||||
assert configured_response.headers["cache-control"] == "no-store"
|
||||
|
||||
|
||||
async def encrypted_auth_payload(client: AsyncClient, email: str, password: str) -> dict:
|
||||
key_resp = await client.get("/api/v1/auth/login-key")
|
||||
assert key_resp.status_code == 200
|
||||
|
||||
Reference in New Issue
Block a user