feat:账号设置+密码重置

This commit is contained in:
xiaozhu
2026-09-01 15:03:45 +08:00
parent 64d33fb1d0
commit 1532feedde
13 changed files with 815 additions and 29 deletions
@@ -0,0 +1,39 @@
"""Unit tests for auth profile / password request schemas."""
from __future__ import annotations
import pytest
from pydantic import ValidationError
from backend.api.auth import PasswordChange, ProfileUpdate
from backend.api.platform.employees import PlatformEmployeePasswordReset
def test_profile_update_allows_partial_fields() -> None:
only_name = ProfileUpdate(display_name="张三")
assert only_name.display_name == "张三"
assert only_name.email is None
only_email = ProfileUpdate(email="a@example.com")
assert only_email.email == "a@example.com"
def test_profile_update_forbids_unknown_fields() -> None:
with pytest.raises(ValidationError):
ProfileUpdate(display_name="张三", username="hacked") # type: ignore[call-arg]
def test_password_change_enforces_new_password_length() -> None:
with pytest.raises(ValidationError):
PasswordChange(current_password="old-pass", new_password="short")
ok = PasswordChange(current_password="old-pass-1", new_password="new-pass-12")
assert ok.new_password == "new-pass-12"
def test_admin_password_reset_schema() -> None:
with pytest.raises(ValidationError):
PlatformEmployeePasswordReset(new_password="1234567")
payload = PlatformEmployeePasswordReset(new_password="reset-pass-9")
assert payload.new_password == "reset-pass-9"