# factory/data_factory.pyfrom generators.user import UserGeneratorfrom generators.order import OrderGeneratorfrom typing import Dict, Anyclass DataFactory: _generators = { "user": UserGenerator(), "order": OrderGenerator(), } @classmethod def create(cls, data_type: str, scenario: str = "normal", **kwargs) -> Dict[str, Any]: """ 智能生成测试数据 示例: user = DataFactory.create("user", scenario="abnormal", level="VIP") order = DataFactory.create("order", user=user, scenario="boundary") """ if data_type not in cls._generators: raise ValueError(f"不支持的数据类型: {data_type}") return cls._generators[data_type].generate(scenario=scenario, **kwargs) @classmethod def create_scenario(cls, scenario_name: str) -> Dict[str, Any]: """ 一键生成完整业务场景(预留 AI 扩展点) """ scenarios = { "high_risk_payment": { "user": {"scenario": "abnormal", "level": "VIP"}, "order": {"scenario": "abnormal"} }, "normal_checkout": { "user": {"scenario": "normal"}, "order": {"scenario": "normal"} } } config = scenarios.get(scenario_name) if not config: raise ValueError(f"未知场景: {scenario_name}") result = {} # 先生成用户 result["user"] = cls.create("user", **config["user"]) # 再生成订单(依赖用户) result["order"] = cls.create("order", user=result["user"], **config["order"]) return result