from __future__ import annotations import unittest from src.config_governance import analyze_content, optimize_content class ConfigGovernanceTests(unittest.TestCase): def test_url_config_detects_duplicates(self) -> None: sample = "\n".join( [ "https://live.douyin.com/123456,主播A", "https://live.douyin.com/123456,主播A重复", "# https://live.douyin.com/999999", "https://www.tiktok.com/@demo/live", ] ) result = analyze_content("app-config", "URL_config.ini", sample, source="draft") codes = {item["code"] for item in result["issues"]} self.assertIn("duplicate_urls", codes) self.assertTrue(any(item["id"] == "dedupe_urls" for item in result["actions"])) def test_dedupe_urls_keeps_single_active_copy(self) -> None: sample = "\n".join( [ "# keep comment", "https://live.douyin.com/123456", "https://live.douyin.com/123456", "https://live.douyin.com/654321", ] ) result = optimize_content("app-config", "URL_config.ini", "dedupe_urls", sample) content = result["content"] self.assertEqual(content.count("https://live.douyin.com/123456"), 1) self.assertIn("# keep comment", content) self.assertIn("https://live.douyin.com/654321", content) def test_youtube_preset_preserves_key_and_enables_balanced_defaults(self) -> None: sample = "[youtube]\nkey = demo-key\nrtmps = 否\nfast_audio = 0\n" result = optimize_content("app-config", "youtube.ini", "youtube_balanced_preset", sample) content = result["content"] self.assertIn("key = demo-key", content) self.assertIn("rtmps = 是", content) self.assertIn("bitrate = 4500", content) self.assertIn("fast_audio = 1", content) if __name__ == "__main__": unittest.main()