Mongo数据库mocking使用固定值
项目描述
这是什么?
这是一个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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7c1b3fc6dbfe7d10a21d9cb1f55f0f1e2d40d30370ac4c024c64cd4bf31fb127 |
|
MD5 | 55fc8a671237a17a2a7bf6d18c2d16c9 |
|
BLAKE2b-256 | ee7c0f5abc7027b3a02a0358baccfb7b0b59cf5602a9c5d15a9be296e11c93a0 |