data_factory/test_data/field_sqls/get_random.py

61 lines
1.8 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/3/19 14:06
# @Author : AngesZhu
# @File : get_random.py
# @Desc : 随机一个字符串或者数字
from typing import Any
from pandas.core.computation.common import result_type_many
from utils.logger_utils import logger
from utils.random_utils import RandomGenerator
def exe_random(random_type: list, rule: dict[str, Any]) -> tuple[Any, str]:
try:
rg = RandomGenerator()
str_temp = rg.generate(types=random_type, **rule)
return True, ''.join(str_temp)
except Exception as e:
logger.error("随机一个字符串或者数字 Error: {}".format(e))
return False, str(e)
def get_random(random_type: list, limit: int = 10, *args, **kwargs) -> Any:
"""
random_type 生成类型列表,可选:'number', 'letter', 'special'
length: 生成结果的长度
随机一个字符串或者数字
"""
logger.info(f"随机一个字符串或者数字")
print(kwargs)
try:
# 拼接请求参数 **kwargs.get(chosen_type, {})
data_list = []
for i in range(limit):
result, random_data = exe_random(random_type, kwargs)
if result:
data_list.append(random_data)
else:
logger.error("随机字符串异常 Error")
return False, "随机字符串异常"
return True, data_list
except Exception as e:
logger.error("随机一个字符串或者数字 Error: {}".format(e))
return False, e
if __name__ == '__main__':
random_type = ['number', 'letter']
letter = {
"uppercase": True
}
number = {
"min_val": 0,
"max_val": 9
}
length = 5
str_temp = get_random(random_type, limit=10,length=length, letter=letter, number=number)
print(str_temp)