test_content_discovery_media_diagnostics.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. from __future__ import annotations
  2. from content_agent.business_modules.content_discovery import run
  3. from content_agent.integrations.runtime_files import LocalRuntimeFileStore
  4. def test_media_record_keeps_no_valid_play_url_diagnostics(tmp_path):
  5. runtime = LocalRuntimeFileStore(tmp_path)
  6. runtime.prepare_run("run_001")
  7. result = run(
  8. "run_001",
  9. "policy_001",
  10. [
  11. {
  12. "content_discovery_id": "q_001_content_001",
  13. "search_query_id": "q_001",
  14. "search_query": "歌词",
  15. "search_query_generation_method": "category_leaf_element",
  16. "platform": "shipinhao",
  17. "platform_content_id": "finder_001",
  18. "platform_content_format": "video",
  19. "description": "title",
  20. "platform_author_id": "author_001",
  21. "author_display_name": "author",
  22. "statistics": {},
  23. "tags": [],
  24. "discovery_start_source": "pattern_itemset",
  25. "previous_discovery_step": "search_query_direct",
  26. "content_metadata_source": "shipinhao_keyword_search",
  27. "play_url": None,
  28. "media_failure_reason": "no_valid_play_url",
  29. "video_url_candidates": [
  30. {
  31. "url": "https://findermp.video.qq.com/video.mp4",
  32. "host": "findermp.video.qq.com",
  33. "path": "$.search.video_url_list[0].video_url",
  34. "source": "search",
  35. }
  36. ],
  37. "platform_raw_payload": {
  38. "channel_content_id": "finder_001",
  39. "selected_video_url_path": "$.search.video_url_list[0].video_url",
  40. "selected_video_url_host": "findermp.video.qq.com",
  41. "selected_video_url_probe_status": "failed_fallback",
  42. "selected_video_url_content_type": "video/mp4",
  43. "selected_video_url_content_range": "bytes 0-99/100",
  44. "video_url_candidate_counts": {"video": 1, "image": 1},
  45. "video_url_reject_reasons": {"image_path": 1},
  46. "no_valid_play_url": True,
  47. "shipinhao_research_source": "title",
  48. "shipinhao_research_status": "not_matched",
  49. "shipinhao_research_item_count": 8,
  50. "kuaishou_detail_fallback_attempted": True,
  51. "kuaishou_detail_fallback_status": "no_valid_play_url",
  52. },
  53. }
  54. ],
  55. {"ext_data": {"evidence_pack": {}}},
  56. runtime,
  57. write_runtime=False,
  58. )
  59. [media] = result["content_media_records"]
  60. assert media["failure_reason"] == "no_valid_play_url"
  61. assert media["raw_payload"]["no_valid_play_url"] is True
  62. assert media["raw_payload"]["selected_video_url_host"] == "findermp.video.qq.com"
  63. assert media["raw_payload"]["video_url_candidate_counts"] == {"video": 1, "image": 1}
  64. assert media["raw_payload"]["video_url_candidates"][0]["url"] == "https://findermp.video.qq.com/video.mp4"
  65. assert media["raw_payload"]["shipinhao_research_status"] == "not_matched"
  66. assert media["raw_payload"]["shipinhao_research_item_count"] == 8
  67. assert media["raw_payload"]["kuaishou_detail_fallback_status"] == "no_valid_play_url"