At July 22 A.

This commit is contained in:
zhaoyafan 2022-07-22 16:31:27 +08:00
parent 85e265e5c1
commit 62e91c8647
5 changed files with 472 additions and 449 deletions

59
Base/Class/Logger.py Normal file
View File

@ -0,0 +1,59 @@
import logging
class Logger:
logger = None
levels = {
"CRITICAL": logging.CRITICAL, "FATAL": logging.FATAL, "ERROR": logging.ERROR, "WARNING": logging.WARNING,
"WARN": logging.WARN, "INFO": logging.INFO, "DEBUG": logging.DEBUG, "NOTSET": logging.NOTSET,
"D": logging.DEBUG, "I": logging.INFO, "W": logging.WARNING, "E": logging.ERROR,
"F": logging.FATAL
}
def __init__(self, name: str = '', level='DEBUG', fh: dict = None, ch: dict = None):
if fh and (not "format_style" in fh.keys()) and (not '%' in fh["format"]):
fh["format_style"] = '{'
if ch and (not "format_style" in ch.keys()) and (not '%' in ch["format"]):
ch["format_style"] = '{'
self.logger = logging.getLogger(name)
self.logger.setLevel(self.levels[level])
if fh:
fhandler = logging.FileHandler(filename=fh["filename"], mode=fh["mode"], encoding='utf-8')
fhandler.setLevel(self.levels[fh["level"]])
fhandler.setFormatter(
logging.Formatter(fmt=fh["format"], style=['%', fh["format_style"]]["format_style" in fh.keys()]))
self.logger.addHandler(fhandler)
if ch:
chandler = logging.StreamHandler()
chandler.setLevel(self.levels[ch["level"]])
chandler.setFormatter(
logging.Formatter(fmt=ch["format"], style=['%', ch["format_style"]]["format_style" in ch.keys()]))
self.logger.addHandler(chandler)
self.d = self.logger.debug
self.i = self.logger.info
self.w = self.logger.warning
self.e = self.logger.error
self.f = self.logger.fatal
self.c = self.logger.critical
if __name__ == '__main__':
log = Logger(name='test', level='DEBUG',
fh=None and {
"level": 'DEBUG',
"format": '{asctime} - {name} - {levelname[0]}: {message}',
"filename": './test.log',
"mode": 'a'
},
ch={
"level": 'DEBUG',
"format": '{asctime} - {name} - {levelname[0]}: {message}'
})
log.d("调试")
log.i("信息")
log.w("警告")
log.e("错误")
log.f("致命")
log.c("致命")

View File

@ -1,15 +1,17 @@
import time
def time_format(fmt='%Y-%m-%d %H:%M:%S', ts=None):
return time.strftime(fmt, time.localtime(ts))
def time_strftime(fmt='%Y-%m-%d %H:%M:%S', ts=None, utc=False):
return time.strftime(fmt, [time.localtime, time.gmtime][utc](ts))
def time_make(datetime_format='', dt=''):
def time_strptime(datetime_format='', dt=''):
return time.mktime(time.strptime(dt, datetime_format))
if __name__ == '__main__':
# Example.
print(time_format(fmt='%Y年%m月%d%H:%M:%S'))
print(time_format(fmt='%Y年%m月%d%H:%M:%S', ts=1640012345))
print(time_make('%Y-%m-%d %H:%M:%S', '2021-12-20 22:59:05'))
print(time_strftime(fmt='%Y年%m月%d%H:%M:%S'))
print(time_strftime(fmt='%Y年%m月%d%H:%M:%S', ts=1640012345))
print(time_strftime(fmt='%H:%M:%S', ts=120, utc=True))
print(time_strptime('%Y-%m-%d %H:%M:%S', '2021-12-20 22:59:05'))

File diff suppressed because it is too large Load Diff

52
run.py
View File

@ -4,6 +4,39 @@ from test_case import TestDemo
import unittest
from types import FunctionType
# TestDemo3 = unittest.TestCase
# TestDemo3.test_007 = test_007
# TestDemo3.test_007.__module__= TestDemo3
obj = type("TestCases",(unittest.TestCase,),dict())
obj.__doc__ = 'Doc'
obj.test_demo0123456789ABCDEF_000000 = FunctionType(compile('def foo(self): import time; time.sleep(0)', "", "exec").co_consts[0], globals(), "foo")
obj.test_demo1 = FunctionType(compile('def foo(self): return "bar"', "", "exec").co_consts[0], globals(), "foo")
obj.test_demo2 = FunctionType(compile('def foo(self): assert 1 == 2', "", "exec").co_consts[0], globals(), "foo")
obj.test_demo3 = FunctionType(compile('def foo(): return "bar"', "", "exec").co_consts[0], globals(), "foo")
obj.test_demo1.__qualname__ = "test_demo1"
obj.test_demo1.__doc__ = "这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;"
obj.test_demo2.__qualname__ = "test_demo2"
obj.test_demo2.__doc__ = "这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;这是一条测试用例;"
obj.test_demo3.__qualname__ = "test_demo3"
obj.test_demo3.__doc__ = "这是一条测试用例;这是一条测试用例;这是一条测试用例;"
# print(obj)
# foo_code = compile('def foo(): return "bar"', "", "exec")
# print(foo_code)
# foo_func = FunctionType(foo_code.co_consts[0], globals(), "foo")
# foo_func.__qualname__ = "test_demo"
# print(foo_func)
base_path = os.path.dirname(__file__)
report_path = base_path
report_filename = os.path.join(report_path, 'report.html')
@ -12,11 +45,28 @@ case_suite = unittest.TestSuite()
case_suite.addTest(TestDemo('test_one'))
case_suite.addTest(TestDemo('test_two'))
case_suite.addTest(TestDemo('test_tre'))
case_suite.addTest(TestDemo('test_0123456789ABCDEF_123456_000000'))
# case_suite.addTest(obj('test_demo1'))
# case_suite.addTest(obj('test_demo1'))
# case_suite.addTest(obj('test_demo1'))
# case_suite.addTest(obj('test_demo1'))
# case_suite.addTest(obj('test_demo1'))
# case_suite.addTest(obj('test_demo1'))
# case_suite.addTest(obj('test_demo1'))
# case_suite.addTest(obj('test_demo1'))
# case_suite.addTest(obj('test_demo1'))
# case_suite.addTest(obj('test_demo2'))
# case_suite.addTest(obj('test_demo3'))
def start():
with open(report_filename, 'wb') as f:
runner = HTMLTestRunner(stream=f, title='自动化测试报告', verbosity=2, description='描述', tester='Tester')
runner = HTMLTestRunner(stream=f,
title='自动化测试报告',
verbosity=2,
description='描述',
tester='DESKTOP')
runner.run(case_suite)

View File

@ -1,23 +1,33 @@
import unittest
from Base.Class.Logger import *
from Base.Class.Http import *
log = Logger(name='test', level='DEBUG', ch={
"level": 'DEBUG',
"format": '{asctime} - {name} - {levelname[0]}: {message}'
})
class TestDemo(unittest.TestCase):
def test_one(self):
'''
哈哈
ONE用例
:return:
'''
assert 1 == 1
log.i("Info...")
log.w("Warnning...")
def test_two(self):
'''
呵呵
:return:
'''
assert 'H' in 'Hello!'
log.d("正在断言...")
assert 'A' in 'Hello!', '断言失败'
def test_tre(self):
assert 5 == 10, '断言失败'
assert a == 10
def test_0123456789ABCDEF_123456_000000(self):
Request().http('GET',"http://more-md.fanscloud.net/iplookup", proxy="http://127.0.0.1:8888")
pass
TestDemo.test_tre.__doc__ = "测试吖"
if __name__ == '__main__':
unittest.main()