跳转到主要内容

Mongo数据库mocking使用固定值

项目描述

https://img.shields.io/pypi/v/humongous.svg https://travis-ci.org/mdomke/humongous.svg?branch=master https://img.shields.io/pypi/l/humongous.svg

这是什么?

这是一个pytest插件,它允许您测试依赖于与MongoDB数据库连接的代码,并期望存在某些数据。它允许您指定JSON/BSON或YAML格式的数据库集合的固定值。在底层,我们使用mongomock库,您应该查阅该库的文档以了解如何使用MongoDB mock对象。如果适用,您也可以使用真实的MongoDb服务器。

配置

如果您不想将您的固定值放在包的顶级目录中,您必须指定一个目录,其中humongous将查找您的数据定义。

为此,在您的pytest.ini文件的pytest部分下添加一行,如下所示:

[pytest]
humongous_basedir =
  tests/unit/fixtures

humongous将在这个目录中查找以.yaml或.json结尾的文件。

您还可以选择为测试使用真实的MongoDB服务器。在这种情况下,您可能还需要配置主机名和/或凭据(如果您不想坚持默认值(localhost且没有凭据))。使用以下配置值在您的pytest.ini中调整设置以符合您的需求

[pytest]
humongous_engine = pymongo
humongous_host = mongodb://user:passwd@server.tld
humongous_dbname = mydbname

基本用法

在您配置了 humongous 使其能够找到您的设备后,您就可以指定一些数据了。无论您选择哪种标记语言,数据都作为文档列表(字典)提供。这些文档将被插入到集合中,该集合由您的设备文件的文件名给出。例如:如果您有一个名为 players.yaml 的文件,其内容如下

-
  name: Mario
  surname: Götze
  position: striker

-
  name: Manuel
  surname: Neuer
  position: keeper

您将得到一个名为 players 的集合,其中包含上述玩家定义。如果您的设备文件是 JSON/BSON 格式,您还可以使用 BSON 特定类型,如 $oid$date 等。

您可以通过以下方式在测试函数中使用 humongous 设备来获取数据库

def test_players(humongous):
    assert "players" in humongous.collection_names()
    manuel = humongous.players.find_one({"name": "Manuel"})
    assert manuel["surname"] == "Neuer"

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

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

此版本没有提供源代码分发文件。请参阅有关 生成分发存档 的教程。

构建分发

humongous-1.3.0-py2.py3-none-any.whl (6.6 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持