小编Gon*_*ssa的帖子

使用 Motor AsyncIO 和 Pytest 测试 MongoDB 功能

所以我正在尝试编写几个测试来测试我使用异步 MongoDB 连接的函数。为了连接到 MongoDB,我使用 Motor 和 asyncio。我需要帮助模拟电机连接。

我的代码:

公地.py

mongo = None
Run Code Online (Sandbox Code Playgroud)

黑名单.py

import commons

class Blacklist(object):
    async def check_if_blacklisted(self, word: str):
        blacklisted = False
        if await commons.mongo.dbtest.blacklist.find_one({'word': word}):
            blacklisted = True
        return blacklisted
Run Code Online (Sandbox Code Playgroud)

主文件

import asyncio
from blacklist import Blacklist
from motor.motor_asyncio import AsyncIOMotorClient
import commons

async def run():
    commons.mongo = AsyncIOMotorClient("mongodb://localhost", io_loop=asyncio.get_event_loop())
    blacklist_checker = Blacklist()
    result = await blacklist_checker.check_if_blacklisted(word="should_be_false")
    print(result)
    # > False

    result = await blacklist_checker.check_if_blacklisted(word="should_be_true")
    print(result)
    # > True

loop = asyncio.get_event_loop()
loop.run_until_complete(run())
loop.close()
Run Code Online (Sandbox Code Playgroud)

我现在想通过模拟电机连接来测试 blacklist.py,但我似乎无法正常运行测试。以下是我尝试过的代码: …

python mocking mongodb pytest python-asyncio

13
推荐指数
1
解决办法
1136
查看次数

标签 统计

mocking ×1

mongodb ×1

pytest ×1

python ×1

python-asyncio ×1