51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
# -------------------------------
|
|
# 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"))
|