def configure(self, options): '''configure before testing''' self.test_options = options if options.xunit: try: from xmlrunner import XMLTestRunner except ImportError: raise Exception("unittest-xml-reporting not installed") self.runner = XMLTestRunner(stream=sys.stderr, \ verbosity=2, output=options.xunit) else: self.runner = unittest.TextTestRunner(stream=sys.stderr, \ verbosity=2) if options.manifest: fbname, fext = os.path.splitext(os.path.basename(options.manifest)) assert fbname == "manifest" or fext == ".manifest", \ "Please specify file name like xxx.manifest or manifest.xxx" self.tclist = self.__get_tc_from_manifest(options.manifest) if options.tests: tcs = [t[0:-3] if t.endswith(".py") else t[0:-1] \ if t.endswith("/") else t for t in options.tests] self.tclist.extend([tc.replace("/", ".") for tc in tcs]) if options.logdir: logdir = self._get_log_dir(options.logdir) self.log_handler = LogHandler(logdir) try: self.context.def_timeout = int(options.timeout) except ValueError: print "timeout need an integer value" raise
from flask_restful import reqparse from util.log import LogHandler import base64 import re from lxml import etree import smtplib from email.header import Header from email.mime.text import MIMEText from email.utils import formataddr import zlib import json import bson.binary make_md5 = lambda string: md5(string.encode()).hexdigest() log = LogHandler(__name__) class GetDictParam: """ 这是一个解析dict 参数的类 可以用于多参数的指定key 、 指定key集合解析key """ @classmethod def get_value(cls, my_dict: dict, key: str): """ 这是一个递归函数 """ if isinstance(my_dict, dict): if my_dict.get(key) or my_dict.get(key) == 0 or my_dict.get(key) == ''\ and my_dict.get(key) is False or my_dict.get(key) == []: