问题标签 [mongomock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1394 浏览

python - Mongoengine + MongoMock 未按预期返回数据

我正在尝试测试控制器做出的响应。当我通过 gunicorn 和 testFramework 运行它时,响应是不同

我的server.py样子如下:

我的IndexController样子:

User对象:

我的IndexControllerTest


输出gunicorn是我想要的!:

我的测试输出:


什么?为什么?在哪里?谁?@£ $@$% &£$(%&£$ (( & 疯狂!

我希望flask_restfullAPI 能够确保在这两种情况下输出是相同的

0 投票
1 回答
1181 浏览

python - 如何使用 mock 在 greenlet 中进行测试?

我在 python (2.7.6) 应用程序中使用了 bottle & gevent。

我想用 mongomock ( https://github.com/vmalloc/mongomock ) 测试它。

我的测试失败了。

如果我在没有 spawn 的情况下使用 self.insert_event 就可以了。我尝试使用patch.object,“with”语句,但没有成功......

0 投票
0 回答
1038 浏览

python - MongoMock 和 mongoengine 不清除数据库

在单元测试期间,我打电话给:

在测试之间,但是数据是持久的。对此有已知的解决方法吗?

0 投票
0 回答
354 浏览

python - python mongoengine:mongomock drop_collection 不能按预期工作

使用 mongomock 模拟 mongoengine 时,该connection.drop_database()方法无法正常工作:我第一次使用它,它按预期工作,但第二次根本不起作用。

下面的测试应该是一个全面的解释。

该脚本可以作为简单的 python3 脚本或 pytest 运行。

0 投票
1 回答
1644 浏览

python - Tornado,带 mongomock 的电机进行测试

我正在为基于龙卷风的 Web 应用程序编写一个测试模块。该应用程序使用电机作为 mongodb 连接器,我希望我的测试在临时数据库上运行。我在连接器客户端的delegate_class上使用了一种模拟技术,如下所示:

当我启动我的测试时,我收到了这个错误:

目前我无法让它工作,我想知道我想要做的事情是否可以使用当前版本的电机(1.2.1),mongomock(3.8.0)和龙卷风(4.5)。 3),或者我错过了什么?

感谢您的所有建议。

0 投票
1 回答
1218 浏览

go - gomock,去,芒果包,MongoMock

我正在尝试使用 gomock 模拟以下方法

我的界面

我收到以下错误。有人可以帮忙吗

--- 失败:TestGetS (0.00s) mongoManager_test.go:20: 缺少对 *mocks.MockMongoManager.GetS 的调用(等于 cacargroup)/Users/charles/workspace/src/bitbucket.org/tekion/tbaas /mongoManager/mongoManager_test.go:16 mongoManager_test.go:20: 由于缺少调用而中止测试失败退出状态 1

0 投票
1 回答
486 浏览

python - 使用 Mongomock 测试 $lookup 聚合

我在其中得到了一个聚合查询$lookup

我想使用mongomock. 这里的问题是,从 3.9.0 版开始,它不支持$lookup聚合。

NotImplementedError: Although '$lookup' is a valid operator for the aggregation pipeline, it is currently not implemented in Mongomock.

有解决方法吗?或者也许是替代解决方案mongomock

0 投票
1 回答
12672 浏览

python - 使用假 mongoDB 进行 pytest 测试

我有连接到 MongoDB 客户端的代码,我正在尝试对其进行测试。为了测试,我不想连接到实际的客户端,所以我试图找出一个假的来进行测试。代码的基本流程是我在某处有一个函数来创建一个pymongo客户端,然后对其进行查询并制作一个在其他地方使用的字典。

我想使用 pytest 编写一些测试,这些测试将测试将调用的不同函数和类get_stuff。我的问题是实际连接到数据库的get_stuff调用。mongo()我试图只使用pytest.fixture(autouse=True)mongomock.MongoClient()替换mongo().

但这并不能取代mongo_stuff.mongo(). 有什么方法可以告诉 pytest 替换一个函数,以便fixture调用我的而不是实际的函数?我认为使fixture我的测试mongo()在命名空间中的优先级高于实际模块中的函数。

这是我的示例的示例文件结构:

mongo_stuff.py

某处_else.py

test_stuff.py

这目前会给我一个连接错误,因为mongo_stuff.py只在生产环境中工作connection params。如果我将test_stuff.py中的语句放入测试函数中,那么它可以正常工作,并且db 将用于测试环境。我也尝试将其更改为也不起作用。importmongomocksetattrmonkeypatch.setattr('project.working_class.mongo_stuff.mongo', fake_mongo)

0 投票
1 回答
566 浏览

mongodb - $sum inside aggregate in mongomock seems not to be working

I have an aggregate Mongo query that projects some fields and calculates two other ones using $sum. The query works as expected, so I created an unit test for it, and to my surprise the test was failing.

I created a minimal, complete, and verifiable example to test my hypothesis that this was a problem with MongoMock, and it seems to be!

Here is the code:

A quick explanation about the code above.

ValuesHistory is a class that contains a String name, a numeric base_value and a list of values (ValuesList class).

The method clear_tables_and_insert_test_data clears the two tables used in this test and inserts some test data.

The query in migrate_data method creates a new collection (through the $out operator) and the base_value of the newly created collection should be the sum of the current value and the last value in the values_list list. In my case it should be 115 (being 100 the current value and 15 the last value on the list).

If I run the code using a connection to my local MongoDB, like this:

I get 115 as a result, which is exactly what is expected.

If I, instead, use a connection to MongoMock:

I get 100 as result, which is odd! Looks like the $sum operator did not do it's job properly, since the sum of 100 and 15 resulted in 100!

EDIT: I also tried using the $add operator, but the problem remains the same, yielding 100 when it should be 115.

TL;DR;

Question: How should I use $sum (or $add) inside an aggregate pipeline on MongoMock so that it yields the correct value?

0 投票
2 回答
2656 浏览

python - 从另一个函数调用mongodb时如何模拟它?

我在嘲笑 mongodb 时需要帮助。我正在使用mongomock来模拟 mongodb。

我的项目结构是:

-- my_mongo.py
-- code.py
-- my_test.py

my_mongo.py有:

code.py

my_test.py

它为两个测试抛出 pymongo.errors.ServerSelectionTimeoutError 。所以,它仍然进入 my_mongo.py 中的 insert_one() 方法。我希望在 test_action_1 my_mongo.insert 返回 1,但事实并非如此。

我错过了什么?