簡體   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