test_creative_review_scan.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import unittest
  2. class CreativeReviewScanTests(unittest.TestCase):
  3. def test_parse_rejected_result_collects_reasons_and_locations(self):
  4. from tools.creative_review import parse_review_result
  5. parsed = parse_review_result({
  6. "dynamic_creative_id": 123,
  7. "reject_message_list": ["整体拒绝"],
  8. "site_set_result_list": [
  9. {
  10. "site_set": "SITE_SET_MOMENTS",
  11. "system_status": "DYNAMIC_CREATIVE_STATUS_DENIED",
  12. "reject_message": "朋友圈拒绝",
  13. }
  14. ],
  15. "element_result_list": [
  16. {
  17. "element_name": "image",
  18. "element_type": "ELEMENT_TYPE_IMAGE",
  19. "review_status": "REVIEW_STATUS_REJECTED",
  20. "element_reject_detail_info": [
  21. {
  22. "reason": "图片含违规信息",
  23. "reject_info_location": [
  24. {"x": 1, "y": 2, "width": 3, "height": 4}
  25. ],
  26. }
  27. ],
  28. }
  29. ],
  30. })
  31. self.assertEqual(parsed.review_status, "rejected")
  32. self.assertIn("整体拒绝", parsed.reject_messages)
  33. self.assertIn("朋友圈拒绝", parsed.reject_messages)
  34. self.assertIn("图片含违规信息", parsed.reject_messages)
  35. self.assertEqual(len(parsed.rejection_facts), 2)
  36. def test_parse_pending_result(self):
  37. from tools.creative_review import parse_review_result
  38. parsed = parse_review_result({
  39. "dynamic_creative_id": 456,
  40. "is_all_component_compose_pending": True,
  41. "delay_message_list": ["审核延迟"],
  42. })
  43. self.assertEqual(parsed.review_status, "pending")
  44. self.assertIn("审核延迟", parsed.delay_messages)
  45. def test_chunk_ids_by_account_limits_to_100(self):
  46. from tools.creative_review import group_review_tasks
  47. tasks = [
  48. {"account_id": 1, "dynamic_creative_id": i}
  49. for i in range(250)
  50. ] + [{"account_id": 2, "dynamic_creative_id": 999}]
  51. groups = list(group_review_tasks(tasks, batch_size=100))
  52. self.assertEqual(len(groups), 4)
  53. self.assertEqual(groups[0][0], 1)
  54. self.assertEqual(len(groups[0][1]), 100)
  55. self.assertEqual(len(groups[1][1]), 100)
  56. self.assertEqual(len(groups[2][1]), 50)
  57. self.assertEqual(groups[3], (2, [999]))
  58. if __name__ == "__main__":
  59. unittest.main()