lib-not-dr/test/logger/config.py

51 lines
1.7 KiB
Python
Raw Normal View History

# -------------------------------
# Difficult Rocket
# Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com
# All rights reserved
# -------------------------------
import unittest
from lib_not_dr.logger.config import ConfigStorage
class TestConfigStorage(unittest.TestCase):
def test_detect_circle_require(self):
test_dict = {
2023-12-03 16:36:01 +08:00
"a": ["b", "c"],
"b": ["c"],
"c": ["a"],
"d": ["e"],
"e": ["f"],
"f": ["d"],
}
2023-12-03 16:36:01 +08:00
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
2023-12-03 16:36:01 +08:00
test_dict = {"a": [], "b": ["a"], "c": ["b"], "d": ["c"]}
2023-11-26 22:55:20 +08:00
self.assertEqual([], ConfigStorage.find_cycles(test_dict))
def test_parse_formatter_config(self):
test_config = {
2023-12-03 16:36:01 +08:00
"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)
2023-12-03 16:36:01 +08:00
self.assertTrue(test_storage.have_formatter("main"))
self.assertFalse(test_storage.have_formatter("cycle_a"))
self.assertFalse(test_storage.have_formatter("cycle_b"))