用fixture模拟mongo数据库

humongous的Python项目详细描述


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

这是什么?

这是一个pytest插件,它使您能够测试依赖于 与MongoDB的数据库连接,并希望存在某些数据。 它允许您为json/bson或yaml中的数据库集合指定fixture 格式。在引擎盖下,我们使用mongomock库,您应该 有关如何使用MongoDB模拟对象的文档,请参阅。如果合适的话 也可以使用真正的MongoDB服务器。

配置

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

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

[pytest]humongous_basedir=
  tests/unit/fixtures

humongus然后查找以.yaml.json结尾的文件 目录。

您还可以选择使用真正的mongodb服务器进行测试。那样的话 如果您 不想使用默认值(localhost和no credentials)。使用 按照pytest.ini中的配置值调整设置 您的需要:

[pytest]humongous_engine=pymongohumongous_host=mongodb://user:passwd@server.tldhumongous_dbname=mydbname

基本用法

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

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

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

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

deftest_players(humongous):assert"players"inhumongous.collection_names()manuel=humongous.players.find_one({"name":"Manuel"})assertmanuel["surname"]=="Neuer"

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

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

推荐PyPI第三方库


热门话题
java为扫描器的输入生成字符序列   hibernate中的java实体合并   如何使变量在Java文件中成为全局变量   java JVM崩溃“异常访问冲突”   向MediaMetadataRetriever中的setDataSource()发送Uri时发生java IllegalArgumentException   java没有节约协议?   用户界面java gui帮助actionlistener   java索引越界异常,即使大小小于索引?   在C++中使用java的困惑   在普通java编码中插入图像   JDBC上的java缓存数据   在Java中,在字符串的特定位置替换子字符串   java在运行elasticsearch集群时遇到Perm Gen空间问题   java Soap故障跟踪   java拆分器。固定长度(int)。拆分(字符串)   java获取jar内部包的路径