data_factory/test_data/field_rules/unique_rules.py

24 lines
883 B
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/3/15 21:24
# @Author : AngesZhu
# @File : unique_rules.py
# @Desc : 校验字段在列表中是否为唯一
from typing import Any, List
from utils.validation_error_utils import handle_validation_errors, UniqueFieldError
def validate_unique(value: Any, field: str, existing_values: List[Any]) -> bool:
"""
校验字段在列表中是否为唯一
:param value: 字段值
:param field: 字段名称
:param existing_values: 已存在的值列表
:return: 是否通过校验
:raises UniqueFieldError: 如果字段值已存在
"""
with handle_validation_errors(field, {"value": value, "existing_values": existing_values}):
if value in existing_values:
raise UniqueFieldError(f"字段 '{field}' 的值 '{value}' 必须是唯一的", field)
return True