异步MongoDB的Pytest插件

pytest-async-mongodb的Python项目详细描述


这是一个基于pytest-mongodbmongomock的pytest插件,它使您能够 测试依赖回调或基于未来的api进行非阻塞访问的代码 到MongoDB并希望某些数据存在。 它允许您为json/bson或yaml中的数据库集合指定fixture 格式。在引擎盖下我们使用MongoMock库,你应该 有关如何使用MongoDB模拟对象的文档,请参阅。如果合适的话 也可以使用真正的MongoDB服务器。

配置

如果不想将数据库设备放在包的顶级目录中 必须指定一个目录,pytest-async-mongodb在其中查找数据定义。

为此,请在 pytest.ini-文件放入a

[pytest]async_mongodb_fixture_dir=
  tests/unit/fixturesasync_mongodb_fixtures=
  fixture_1
  fixture_2

pytest-async-mongodb然后查找以.yaml.json结尾的文件 目录。

与pytest mongodb不同,不能指定与pymongo客户端的真正mongodb连接。

基本用法

配置pytest-async-mongodb以便它可以找到您准备好的设备之后 指定一些数据。不管您选择什么标记语言,都会提供数据 作为文档列表(dict)。正在插入这些文档的集合 into由fixture文件的文件名给定。例如:如果你有一个名为 players.yaml包含以下内容:

-name:Mariosurname:Götzeposition:striker-name:Manuelsurname:Neuerposition:keeper

你最终会得到一个集合players,它有上面的播放器定义 插入。如果fixture文件是json/bson格式,也可以使用bson特定的 像$oid$date等类型。

通过使用async_mongodbfixture在测试函数中获取数据库 喜欢这样:

@pytest.mark.asyncioasyncdeftest_players(async_mongodb):manuel=awaitasync_mongodb.players.find_one({'name':'Manuel'})assertmanuel['surname']=='Neuer'

有关更多信息,请参阅mongomock文档。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
连接Java Rest服务   为每个不工作的循环更改数组值   java如何在删除某个元素后重新绘制GUI?   java混淆了共享maven模块?   Java在2d数组中计算重复数   未从TomCat上的Jar文件加载java类   JavaFX SceneBuilder中的java每月概览   java对于参数类型double,Point2D,运算符*未定义。双重的   java错误:类AcceptedFriendAction中的构造函数AcceptedFriendAction无法应用于给定类型;   eclipse java如何限制文本字段?   java无法执行目标组织。阿帕奇。专家插件:mavencompilerplugin:3.8.1:编译   macos Java无法启动jar文件   spring java代理向上游应用程序传递请求   java如何解决:错误:任务“:app:kaptDebugKotlin”的执行失败?   java在构造函数中完成类的主要工作时有什么问题吗?