# ------------------------------- # Difficult Rocket # Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com # All rights reserved # ------------------------------- import unittest from lib_not_dr.loggers.config import ConfigStorage class TestConfigStorage(unittest.TestCase): def test_detect_circle_require(self): test_dict = { "a": ["b", "c"], "b": ["c"], "c": ["a"], "d": ["e"], "e": ["f"], "f": ["d"], } self.assertEqual( ["a", "b", "c", "d", "e", "f"], ConfigStorage.find_cycles(test_dict) ) def test_detect_circle_require_2(self): # large circle cycles = sorted(map(str, range(100))) for i in range(100): test_dict = {} for j in range(100): test_dict[str(j)] = [str((j + 1) % 100)] self.assertEqual(cycles, ConfigStorage.find_cycles(test_dict)) def test_detect_circle_require_3(self): # normal test_dict = {"a": [], "b": ["a"], "c": ["b"], "d": ["c"]} self.assertEqual([], ConfigStorage.find_cycles(test_dict)) def test_parse_formatter_config(self): test_config = { "main": {"class": "MainFormatter", "sub_formatter": []}, "cycle_a": {"class": "MainFormatter", "sub_formatter": ["cycle_b"]}, "cycle_b": {"class": "MainFormatter", "sub_formatter": ["cycle_a"]}, } test_storage = ConfigStorage() test_storage.parse_formatter(test_config) self.assertTrue(test_storage.have_formatter("main")) self.assertFalse(test_storage.have_formatter("cycle_a")) self.assertFalse(test_storage.have_formatter("cycle_b"))