defl/tests.old/test_logging.py
2025-04-28 14:44:03 -04:00

137 lines
3.2 KiB
Python
Executable File

#!/usr/bin/env python
import enum
import itertools
import json
import os
import re
import sys
from dataclasses import KW_ONLY, dataclass, field
from functools import partial, partialmethod
from operator import itemgetter
from time import sleep
import defl
from defl import CLIError, DotDict, Null, Path, Undefined, cl, log
from defl._run_ import *
from defl._assert_ import Assert
from defl._typing_ import *
from defl.testing_ import Tester
defl.log.setLevel('i')
tester = Tester(name=__file__)
# assert (u := log.toDict()) == {
# 'e': {
# 'name': 'error',
# 'color': '\x1b[1m\x1b[38;2;255;65;65m',
# 'lineInfo': False,
# 'enabled': True,
# 'tgt': '<stderr>'
# },
# 'w': {
# 'name': 'warning',
# 'color': '\x1b[1m\x1b[38;2;255;255;65m',
# 'lineInfo': False,
# 'enabled': True,
# 'tgt': '<stderr>'
# },
# 'i': {
# 'name': 'info',
# 'color': '\x1b[1m\x1b[38;2;255;65;255m',
# 'lineInfo': False,
# 'enabled': True,
# 'tgt': '<stderr>'
# },
# 'd': {
# 'name': 'debug',
# 'color': '\x1b[1m\x1b[38;2;0;255;255m',
# 'lineInfo': True,
# 'enabled': True,
# 'tgt': '<stderr>'
# }
# }, u
@tester.add()
def run():
tm = {
'info': io.StringIO(),
'debug': io.StringIO(),
'error': io.StringIO(),
'warning': io.StringIO(),
}
l = defl.Logger()
l.setLevel(None, colorMap='', lineInfoMap=False, tgtMap=tm)
l.info('info')
l.debug('debug')
l.error('error')
l.warning('warning')
Assert(tm['info'].getvalue()) == 'info\n'
Assert(tm['debug'].getvalue()) == 'debug\n'
Assert(tm['error'].getvalue()) == 'error\n'
Assert(tm['warning'].getvalue()) == 'warning\n'
@tester.add()
def run():
tm = {
'info': io.StringIO(),
'debug': io.StringIO(),
'error': io.StringIO(),
'warning': io.StringIO(),
}
l = defl.Logger()
l.setLevel('d', tgtMap=tm, colorMap='')
l.info('info')
l.debug('debug')
l.error('error')
l.warning('warning')
li = tm['info'].getvalue()
ld = tm['debug'].getvalue()
le = tm['error'].getvalue()
lw = tm['warning'].getvalue()
Assert(li).reSearch(r'^\[.*:.*:.*\] info\n$')
Assert(ld).reSearch(r'^\[.*:.*:.*\] debug\n$')
Assert(le).reSearch(r'^\[.*:.*:.*\] error\n$')
Assert(lw).reSearch(r'^\[.*:.*:.*\] warning\n$')
@tester.add()
def run():
tm = {
'info': io.StringIO(),
'debug': io.StringIO(),
'error': io.StringIO(),
'warning': io.StringIO(),
}
l = defl.Logger()
l.setLevel('i', tgtMap=tm, colorMap='')
Assert({k: v.enabled for k, v in l._meta.items()}) == {'i': T, 'e': T, 'w': T, 'd': F}
l.info('info')
l.debug('debug')
l.error('error')
l.warning('warning')
li = tm['info'].getvalue()
ld = tm['debug'].getvalue()
le = tm['error'].getvalue()
lw = tm['warning'].getvalue()
Assert(li).reSearch(r'^info\n$')
Assert(ld).reSearch('^$')
Assert(le).reSearch(r'^error\n$')
Assert(lw).reSearch(r'^warning\n$')
log.info(tester.run())
tester.exitWithStatus()
# for i in ch:
# print(defl.printTable([[y for y in x] for x in ch], squareFill=T))