【发布时间】:2016-12-29 10:44:11
【问题描述】:
我在单元测试龙卷风应用程序方面遇到问题,请帮助我。错误堆栈跟踪:
错误回溯(最近一次调用最后一次):文件 "/Users/doc/python/lib/python3.5/site-packages/tornado/testing.py", 第 432 行,在拆解中 timeout=get_async_test_timeout()) 文件“/Users/doc/python-virt1/lib/python3.5/site-packages/tornado/ioloop.py”, 第 456 行,在 run_sync raise TimeoutError('Operation timed out after %s seconds' % timeout) tornado.ioloop.TimeoutError: Operation timed out after 5 秒
ERROR:tornado.application:Future 异常从未被检索到:Traceback(最近 最后调用):文件 "/Users/doc/python/lib/python3.5/site-packages/tornado/gen.py", 第 1021 行,运行中 yielded = self.gen.throw(*exc_info) 文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/types.py”, 第 179 行,投掷 返回 self.__wrapped.throw(tp, *rest) 文件 "/Users/doc/python-virt1/lib/python3.5/site-packages/tornado/gen.py", 第 1015 行,运行中 value = future.result() 文件“/Users/doc/python-virt1/lib/python3.5/site-packages/tornado/concurrent.py”, 第 237 行,结果 raise_exc_info(self._exc_info) File "", line 3, in raise_exc_info tornado.curl_httpclient.CurlError: HTTP 599: Empty 来自服务器 Traceback 的回复(最近一次调用最后一次):
test.py 文件:
from tornado.testing import gen_test
from tests.api_tests.base import AbstractApplicationTestBase
class ApiRestTest(AbstractApplicationTestBase):
def setUp(self):
super(ApiRestTest, self).setUp()
self.prepareDatabase(self.config)
self.insert_user(config=self.config)
api_test/base.py
import logging
from api import server
from commons.constants import config
from tests.base import BaseTestClass
class AbstractApplicationTestBase(BaseTestClass):
def get_app(self):
application = server.get_application(self.config)
application.settings[config.APPLICATION_DB] = self.db
application.settings[config.APPLICATION_CONFIG] = self.config
application.settings[config.APPLICATION_AES] = self.aes
application.settings[config.APPLICATION_FS] = self.fs
logging.info(self.config.DEPLOY_API)
return application
test/base.py
import logging
from datetime import datetime
import motor.motor_tornado
from motor import MotorGridFSBucket
from pymongo import MongoClient
from tornado import escape
from tornado import gen
from tornado.testing import AsyncHTTPTestCase
class BaseTestClass(AsyncHTTPTestCase):
@classmethod
def setUpClass(self):
super(BaseTestClass, self).setUpClass()
self.config = Config(Environment.TESTS.value)
self.client = utils.http_client(self.config.PROXY_HOST, self.config.PROXY_PORT)
self.db = motor.motor_tornado.MotorClient(self.config.MONGODB_URI)[self.config.MONGODB_NAME]
self.fs = MotorGridFSBucket(self.db)
【问题讨论】:
标签: python unit-testing tornado tornado-motor