style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 30s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 31s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m3s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m21s
AI Code Review / AI Code Review (pull_request) Successful in 1m30s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m33s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m33s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 1m55s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m47s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 4m0s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 17s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 45s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 237h1m5s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 237h1m8s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 237h1m8s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 237h5m1s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 237h5m2s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 237h5m3s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 237h5m5s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 237h5m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 237h5m6s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 237h5m7s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 237h5m8s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 237h5m7s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 237h5m11s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 237h5m7s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 237h35m42s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 237h35m45s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 237h39m41s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 237h39m42s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 237h39m45s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 30s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 31s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m3s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m21s
AI Code Review / AI Code Review (pull_request) Successful in 1m30s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m33s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m33s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 1m55s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m47s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 4m0s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 17s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 45s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 237h1m5s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 237h1m8s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 237h1m8s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 237h5m1s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 237h5m2s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 237h5m3s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 237h5m5s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 237h5m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 237h5m6s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 237h5m7s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 237h5m8s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 237h5m7s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 237h5m11s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 237h5m7s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 237h35m42s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 237h35m45s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 237h39m41s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 237h39m42s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 237h39m45s
This commit is contained in:
@@ -325,9 +325,7 @@ class TestWechatSyncSession:
|
||||
class TestWechatSyncNicknameRules:
|
||||
"""昵称规则:默认昵称、登录不覆盖存量昵称、中文昵称全链路无损。"""
|
||||
|
||||
def test_existing_user_display_name_never_overwritten_on_login(
|
||||
self, mock_user_repo, mock_session_store
|
||||
):
|
||||
def test_existing_user_display_name_never_overwritten_on_login(self, mock_user_repo, mock_session_store):
|
||||
"""守护规则:已存在用户登录时,即使请求带了别的 nickname,
|
||||
其 display_name 也绝不能被覆盖(只有建号时写入)。"""
|
||||
user = User(
|
||||
@@ -360,9 +358,7 @@ class TestWechatSyncNicknameRules:
|
||||
for call in mock_user_repo.save.call_args_list:
|
||||
assert call.args[0].display_name == "我的专属昵称"
|
||||
|
||||
def test_new_user_gets_default_nickname_when_nickname_empty(
|
||||
self, mock_user_repo, mock_session_store
|
||||
):
|
||||
def test_new_user_gets_default_nickname_when_nickname_empty(self, mock_user_repo, mock_session_store):
|
||||
"""新用户且请求未带昵称(微信新规场景)→ 默认昵称小虾同学。"""
|
||||
saved = {}
|
||||
mock_user_repo.save.side_effect = lambda u: saved.update({u.id: u})
|
||||
@@ -375,9 +371,7 @@ class TestWechatSyncNicknameRules:
|
||||
assert u.display_name == "小虾同学"
|
||||
assert resp.nickname == "小虾同学"
|
||||
|
||||
def test_chinese_nickname_full_chain_no_mojibake(
|
||||
self, mock_user_repo, mock_session_store
|
||||
):
|
||||
def test_chinese_nickname_full_chain_no_mojibake(self, mock_user_repo, mock_session_store):
|
||||
"""中文昵称全链路无损:建号写入 → 仓储对象 → 响应返回,
|
||||
不允许出现 latin-1/utf-8 双重编码乱码(如 \u00e8\u0080\u0081 一类)。"""
|
||||
chinese_name = "老字号🏮肩腰腿🏮御众堂永康店"
|
||||
|
||||
Reference in New Issue
Block a user