| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- """Unit tests for module B landing-video risk evaluation.
- The production module imports `config` from auto_put_ad_mini, which pulls the
- full agent runtime. These tests inject a minimal config module so the pure risk
- mapping logic can be tested without external services or optional dependencies.
- """
- import importlib
- import sys
- import types
- import unittest
- def _load_video_risk_with_fake_config(max_allowed_level: int = 1):
- fake_config = types.ModuleType("config")
- fake_config.VIDEO_RISK_API_TIMEOUT_SECONDS = 10
- fake_config.VIDEO_RISK_API_URL = "https://example.invalid/video-risk"
- fake_config.VIDEO_RISK_CHECK_ENABLED = True
- fake_config.VIDEO_RISK_MAX_ALLOWED_LEVEL = max_allowed_level
- fake_config.VIDEO_RISK_TAG_LEVELS = {
- "85856": 1,
- "85862": 2,
- "85863": 3,
- "85864": 4,
- "85865": 5,
- "85866": 6,
- "85867": 7,
- "85868": 8,
- "85869": 9,
- "85870": 10,
- }
- old_config = sys.modules.get("config")
- sys.modules["config"] = fake_config
- sys.modules.pop("examples.auto_put_ad_mini.tools.video_risk", None)
- try:
- return importlib.import_module("examples.auto_put_ad_mini.tools.video_risk")
- finally:
- if old_config is None:
- sys.modules.pop("config", None)
- else:
- sys.modules["config"] = old_config
- class VideoRiskEvaluationTest(unittest.TestCase):
- def test_level_one_passes_when_threshold_is_one(self):
- video_risk = _load_video_risk_with_fake_config(max_allowed_level=1)
- result = video_risk.evaluate_video_risk(123, ["85856"])
- self.assertTrue(result.passed)
- self.assertEqual(result.max_level, 1)
- def test_level_two_is_blocked_when_threshold_is_one(self):
- video_risk = _load_video_risk_with_fake_config(max_allowed_level=1)
- result = video_risk.evaluate_video_risk(123, ["85862"])
- self.assertFalse(result.passed)
- self.assertEqual(result.max_level, 2)
- def test_sample_level_seven_is_blocked(self):
- video_risk = _load_video_risk_with_fake_config(max_allowed_level=1)
- result = video_risk.evaluate_video_risk(71187017, ["85867", "85967", "88404"])
- self.assertFalse(result.passed)
- self.assertEqual(result.max_level, 7)
- self.assertEqual(result.risk_tag_ids, ["85867"])
- self.assertEqual(result.unknown_tag_ids, ["85967", "88404"])
- def test_unknown_tags_do_not_block_by_default(self):
- video_risk = _load_video_risk_with_fake_config(max_allowed_level=1)
- result = video_risk.evaluate_video_risk(123, ["99999"])
- self.assertTrue(result.passed)
- self.assertEqual(result.max_level, 0)
- self.assertEqual(result.unknown_tag_ids, ["99999"])
- if __name__ == "__main__":
- unittest.main()
|