2# +==== BEGIN rotary_logger =================+
4# ..........####...####..........
5# ......###.....#.#########......
6# ....##........#.###########....
7# ...#..........#.############...
8# ...#..........#.#####.######...
9# ..#.....##....#.###..#...####..
10# .#.....#.##...#.##..##########.
11# #.....##########....##...######
12# #.....#...##..#.##..####.######
13# .#...##....##.#.##..###..#####.
14# ..#.##......#.#.####...######..
15# ..#...........#.#############..
16# ..#...........#.#############..
17# ...##.........#.############...
18# ......#.......#.#########......
19# .......#......#.########.......
20# .........#####...#####.........
22# PROJECT: rotary_logger
23# FILE: test_constants.py
24# CREATION DATE: 01-11-2025
25# LAST Modified: 3:42:4 04-03-2026
27# A module that provides a universal python light on iops way of logging to files your program execution.
29# COPYRIGHT: (c) Asperguide
30# PURPOSE: This is the file in charge of testing the critical variables of the constants file to make sure that they are still accurate.
32# +==== END rotary_logger =================+
34from rotary_logger
import constants
as CONST
39 assert CONST.KB1 == 1024
40 assert CONST.MB1 == 1024 * 1024
41 assert CONST.GB1 == CONST.MB1 * CONST.KB1
45 assert isinstance(CONST.DEFAULT_ENCODING, str)
46 assert CONST.DEFAULT_ENCODING.lower() ==
'utf-8'
47 assert CONST.LOG_FOLDER_BASE_NAME ==
'logs'
52 for mode
in CONST.StdMode:
53 assert mode
in CONST.CORRECT_PREFIX
55 assert CONST.CORRECT_PREFIX[CONST.StdMode.STDOUT] == CONST.PREFIX_STDOUT
59 """CORRECT_FOLDER should have an entry for every StdMode value."""
60 for mode
in CONST.StdMode:
61 assert mode
in CONST.CORRECT_FOLDER, f
"Missing CORRECT_FOLDER entry for {mode!r}"
62 assert CONST.CORRECT_FOLDER[CONST.StdMode.STDOUT] == CONST.FOLDER_STDOUT
63 assert CONST.CORRECT_FOLDER[CONST.StdMode.STDERR] == CONST.FOLDER_STDERR
64 assert CONST.CORRECT_FOLDER[CONST.StdMode.STDIN] == CONST.FOLDER_STDIN
68 """ErrorMode should expose all four policy variants."""
69 members = {m.name
for m
in CONST.ErrorMode}
70 assert 'WARN' in members
71 assert 'WARN_NO_PIPE' in members
72 assert 'EXIT' in members
73 assert 'EXIT_NO_PIPE' in members
77 """PrefixFunctionCall should include EMPTY and all I/O method tags."""
78 names = {m.name
for m
in CONST.PrefixFunctionCall}
79 for expected
in (
'EMPTY',
'WRITE',
'WRITELINES',
'FLUSH',
'READ',
'READLINE',
'READLINES'):
80 assert expected
in names, f
"Missing PrefixFunctionCall member: {expected}"
84 """A freshly created FileStreamInstances should report all streams unmerged."""
85 fsi = CONST.FileStreamInstances()
86 for mode
in CONST.StdMode:
87 assert fsi.merged_streams.get(mode,
None)
is False, (
88 f
"Expected merged_streams[{mode!r}] to be False by default"
93 """Two FileStreamInstances must not share the same merged_streams dict."""
94 fsi_a = CONST.FileStreamInstances()
95 fsi_b = CONST.FileStreamInstances()
96 fsi_a.merged_streams[CONST.StdMode.STDOUT] =
True
97 assert fsi_b.merged_streams[CONST.StdMode.STDOUT]
is False, (
98 "Mutating fsi_a.merged_streams should not affect fsi_b (shared mutable default)"
None test_prefix_and_enum_mappings()
None test_file_stream_instances_default_all_false()
None test_prefix_function_call_members()
None test_correct_folder_all_modes()
None test_error_mode_members()
None test_size_constants()
None test_file_stream_instances_dict_isolation()
None test_default_values()