繁体   English   中英

龙卷风:AsyncTestCase失败,出现asyncmongo

[英]Tornado: AsyncTestCase failing with asyncmongo

尝试对asyncmongo查询进行单元测试。 在调用wait()时获取以下错误。 这是因为asyncmongo使用2个参数调用回调吗?

停止时断言文件“〜/ envs / test / local / lib / python2.7 / site-packages / tornado / testing.py”,行223断言_arg为None或not kwargs

class MyTestCase2(AsyncTestCase):
    def test_async_mongo(self):
        self.db = asyncmongo.Client(pool_id='mydb', host='127.0.0.1', port=27017, maxcached=10, maxconnections=50, dbname='bench')
        self.db["ss"].insert({"a": "1"}, callback=self.stop)
        self.wait()

是的,这是因为AsyncTestCase期望函数使用一个参数,而asyncmongo使用两个参数。 此类问题的一般解决方案是适配器功能:

self.db["ss"].insert({"a": "1"},
    callback=lambda response, error: self.stop((response, error)))
response, error = self.wait()

顺便说一句,考虑使用马达代替asyncmongo-马达在像协程这样的现代龙卷风习语中效果更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM