test_user_list_relations.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. """用户列表须返回职位/角色关联字段,供前端列表列展示。"""
  2. import inspect
  3. from app.api import admin as admin_api
  4. from app.crud import user as user_crud
  5. def test_admin_list_users_enriches_role_and_post_relations():
  6. """回归:列表不得仅用 _row_to_dict,须补全职位/有效角色。"""
  7. source = inspect.getsource(admin_api.list_users)
  8. assert "enrich_user_dicts_with_relations" in source
  9. def test_enrich_user_dicts_with_relations_empty_list():
  10. class _DummySession:
  11. def query(self, *args, **kwargs): # pragma: no cover
  12. raise AssertionError("空列表不应访问数据库")
  13. assert user_crud.enrich_user_dicts_with_relations(_DummySession(), []) == []
  14. def test_enrich_user_dicts_with_relations_fills_empty_fields_without_id():
  15. class _DummySession:
  16. def query(self, *args, **kwargs): # pragma: no cover
  17. raise AssertionError("无 id 条目不应访问数据库")
  18. items = [{"userNo": "u1"}]
  19. out = user_crud.enrich_user_dicts_with_relations(_DummySession(), items)
  20. assert out is items
  21. assert items[0]["roleIds"] == []
  22. assert items[0]["postIds"] == []
  23. assert items[0]["postInheritedRoleIds"] == []
  24. assert items[0]["effectiveRoleIds"] == []
  25. assert items[0]["effectiveRoleNames"] == []