test_v4_m6_real_acceptance.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import os
  2. import pytest
  3. from scripts.run_v4_m6_real_acceptance import ALLOWED_DATA_ORIGINS, main
  4. def test_v4_m6_real_acceptance_requires_explicit_opt_in(monkeypatch):
  5. monkeypatch.delenv("CONTENT_AGENT_M6_REAL_ACCEPTANCE", raising=False)
  6. if os.environ.get("CONTENT_AGENT_M6_REAL_ACCEPTANCE") != "1":
  7. pytest.skip("M6 real acceptance requires CONTENT_AGENT_M6_REAL_ACCEPTANCE=1")
  8. @pytest.mark.skipif(
  9. os.environ.get("CONTENT_AGENT_M6_REAL_ACCEPTANCE") != "1",
  10. reason="M6 real acceptance must be explicitly enabled",
  11. )
  12. def test_v4_m6_real_acceptance_runs_three_real_platforms(capsys):
  13. exit_code = main()
  14. captured = capsys.readouterr()
  15. assert exit_code == 0, captured.out
  16. import json
  17. payload = json.loads(captured.out)
  18. assert payload["status"] == "pass"
  19. assert [row["platform"] for row in payload["results"]] == [
  20. "douyin",
  21. "kuaishou",
  22. "shipinhao",
  23. ]
  24. for row in payload["results"]:
  25. assert row["run_id"].startswith("v1_run_")
  26. assert row["db_run_record_present"] is True
  27. assert row["data_origin"] in ALLOWED_DATA_ORIGINS
  28. assert row["m6_report"]["schema_version"] == "v4_m6_acceptance_report.v1"
  29. if row["status"] == "failed":
  30. assert row["failure_classification"]