test_validator_agent.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. """ValidatorAgent 包装验证结论的单元测试"""
  2. from src.agents.validator_agent import ValidatorAgent
  3. def _result(status_code):
  4. return {
  5. "success": True,
  6. "status_code": status_code,
  7. "body": None,
  8. "elapsed": 0.1,
  9. "error": None,
  10. }
  11. def test_validate_one_pass():
  12. item = {"case": {"expected_status": 200}, "result": _result(200)}
  13. out = ValidatorAgent().validate_one(item)
  14. assert out["passed"] is True
  15. assert out["errors"] == []
  16. def test_validate_one_fail():
  17. item = {"case": {"expected_status": 200}, "result": _result(404)}
  18. out = ValidatorAgent().validate_one(item)
  19. assert out["passed"] is False
  20. assert len(out["errors"]) == 1
  21. assert "404" in out["errors"][0]
  22. def test_validate_one_missing_expected_status():
  23. # 用例没给 expected_status 时,应只做请求成功判断,不应崩溃
  24. item = {"case": {}, "result": _result(200)}
  25. out = ValidatorAgent().validate_one(item)
  26. assert out["passed"] is True
  27. def test_validate_batch():
  28. items = [
  29. {"case": {"expected_status": 200}, "result": _result(200)},
  30. {"case": {"expected_status": 200}, "result": _result(500)},
  31. ]
  32. out = ValidatorAgent().validate(items)
  33. assert len(out) == 2
  34. assert out[0]["passed"] is True
  35. assert out[1]["passed"] is False