def test_error(self): # 设成默认异步请求 http_util.init(repeat_time=3) url = 'http://127.0.0.1:%d/test_error' % self.port global error_times error_times = 0 # 自定义一个出错页面 class _ExceptionHandler(tornado_util.RequestHandler): def get(self): global error_times error_times += 1 raise Exception('出错测试') post = get # 添加到请求地址列表 tornado_util.add_apps(r"/test_error/?", _ExceptionHandler) # GET 请求,返回 None res = http_util.get(url) assert res == '<html><title>500: Internal Server Error</title><body>500: Internal Server Error</body></html>' assert error_times == 3 # 请求次数 # POST 请求,返回 None error_times = 0 res = http_util.post(url) assert res == '<html><title>500: Internal Server Error</title><body>500: Internal Server Error</body></html>' assert error_times == 3 # 请求次数 # 改回默认值,避免影响其它测试 http_util.init(repeat_time=1)
def test_threads(self): # 设成默认异步请求 http_util.init(threads=True) url = 'http://127.0.0.1:%d/test_threads' % self.port result = '{"use_time": "0.0003", "reason": "\u8bbf\u95ee\u6210\u529f", "version": "2.0.0", "result": 0}' @tornado_util.fn(url=r"/test_threads/?") def get_test_threads(self, **kwargs): return result # 异步 GET 请求,返回线程 global NOW_LOG_RECORD NOW_LOG_RECORD = [] th1 = http_util.get(url) assert len(NOW_LOG_RECORD) == 0 # 通过日志查看有没有发启线程,因为发启线程肯定没有这么快打印日志 assert isinstance(th1, threading.Thread) th1.join() # 等待线程返回,以便检查日志 assert len(NOW_LOG_RECORD) >= 1 record = NOW_LOG_RECORD[0] assert record is not None assert record.levelno == logging.INFO assert record.method == 'GET' log_msg = record.getMessage() assert url in log_msg assert result in log_msg # 异步 POST 请求,返回线程 NOW_LOG_RECORD = [] th2 = http_util.post(url) assert len(NOW_LOG_RECORD) == 0 # 通过日志查看有没有发启线程,因为发启线程肯定没有这么快打印日志 assert isinstance(th2, threading.Thread) th2.join() # 等待线程返回,以便检查日志 assert len(NOW_LOG_RECORD) >= 1 record = NOW_LOG_RECORD[0] assert record is not None assert record.levelno == logging.INFO assert record.method == 'POST' log_msg = record.getMessage() assert url in log_msg assert result in log_msg # 改回默认值,避免影响其它测试 http_util.init(threads=False)