data_factory/test_data/field_rules/equal_field_rules.py

30 lines
1.1 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/3/15 21:22
# @Author : AngesZhu
# @File : equal_field_rules.py
# @Desc : 字段对比
from typing import Any
from utils.validation_error_utils import handle_validation_errors, FieldMatchError
# 5. 校验字段是否有对比字段,与规则中的是否相同匹配
def validate_match(value: Any, field: str, compare_value: Any, compare_field: str) -> bool:
"""
校验字段是否与对比字段匹配
:param value: 字段值
:param field: 字段名称
:param compare_value: 对比字段的值
:param compare_field: 对比字段名称
:return: 是否通过校验
:raises FieldMatchError: 如果字段值与对比字段值不匹配
"""
with handle_validation_errors(field,
{"value": value, "compare_value": compare_value, "compare_field": compare_field}):
if value != compare_value:
raise FieldMatchError(
f"字段 '{field}' 的值 '{value}' 必须与字段 '{compare_field}' 的值 '{compare_value}' 匹配",
field
)
return True