Skip to main content

Mock server for testing MongoDB clients and creating MongoDB Wire Protocol servers.

Changelog

1.8.1 (2021-10-14)

Fix a bug where MockupDB did not recognize the OP_MSG exhaustAllowed flag.

1.8.0 (2020-09-26)

MockupDB supports Python 3.4 through 3.8; it no longer supports Python 2.6 or Python 3.3.

New method MockupDB.append_responder to add an autoresponder of last resort.

Fix a bug in interactive_server with all_ok=True. It had returned an empty isMaster response, causing drivers to throw errors like “Server at localhost:27017 reports wire version 0, but this version of PyMongo requires at least 2 (MongoDB 2.6).”

Stop logging “OSError: [WinError 10038] An operation was attempted on something that is not a socket” on Windows after a client disconnects.

Parse OP_MSGs with any number of sections in any order. This allows write commands from the mongo shell, which sends sections in the opposite order from drivers. Handle OP_MSGs with checksums, such as those sent by the mongo shell beginning in 4.2.

1.7.0 (2018-12-02)

Improve datetime support in match expressions. Python datetimes have microsecond precision but BSON only has milliseconds, so expressions like this always failed:

server.receives(Command('foo', when=datetime(2018, 12, 1, 6, 6, 6, 12345)))

Now, the matching logic has been rewritten to recurse through arrays and subdocuments, comparing them value by value. It compares datetime values with only millisecond precision.

1.6.0 (2018-11-16)

Remove vendored BSON library. Instead, require PyMongo and use its BSON library. This avoids surprising problems where a BSON type created with PyMongo does not appear equal to one created with MockupDB, and it avoids the occasional need to update the vendored code to support new BSON features.

1.5.0 (2018-11-02)

Support for Unix domain paths with uds_path parameter.

The interactive_server() function now prepares the server to autorespond to the getFreeMonitoringStatus command from the mongo shell.

1.4.1 (2018-06-30)

Fix an inadvertent dependency on PyMongo, which broke the docs build.

1.4.0 (2018-06-29)

Support, and expect, OP_MSG requests from clients. Thanks to Shane Harvey for the contribution.

Update vendored bson library from PyMongo. Support the Decimal128 BSON type. Fix Matcher so it equates BSON objects from PyMongo like ObjectId(...) with equivalent objects created from MockupDB’s vendored bson library.

1.3.0 (2018-02-19)

Support Windows. Log a traceback if a bad client request causes an assert. Fix SSL. Make errors less likely on shutdown. Enable testing on Travis and Appveyor. Fix doctests and interactive server for modern MongoDB protocol.

1.2.1 (2017-12-06)

Set minWireVersion to 0, not to 2. I had been wrong about MongoDB 3.6’s wire version range: it’s actually 0 to 6. MockupDB now reports the same wire version range as MongoDB 3.6 by default.

1.2.0 (2017-09-22)

Update for MongoDB 3.6: report minWireVersion 2 and maxWireVersion 6 by default.

1.1.3 (2017-04-23)

Avoid rare RuntimeError in close(), if a client thread shuts down a socket as MockupDB iterates its list of sockets.

1.1.2 (2016-08-23)

Properly detect closed sockets so MockupDB.stop() doesn’t take 10 seconds per connection. Thanks to Sean Purcell.

1.1.1 (2016-08-01)

Don’t use “client” as a keyword arg for Request, it conflicts with the actual “client” field in drivers’ new handshake protocol.

1.1.0 (2016-02-11)

Add cursor_id property to OpGetMore, and ssl parameter to interactive_server.

1.0.3 (2015-09-12)

MockupDB(auto_ismaster=True) had just responded {"ok": 1}, but this isn’t enough to convince PyMongo 3 it’s talking to a valid standalone, so auto-respond {"ok": 1, "ismaster": True}.

1.0.2 (2015-09-11)

Restore Request.assert_matches method, used in pymongo-mockup-tests.

1.0.1 (2015-09-11)

Allow co-installation with PyMongo.

1.0.0 (2015-09-10)

First release.

0.1.0 (2015-02-25)

Development begun.

Release files for mockupdb 1.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mockupdb 1.8.1
File Size Uploaded
mockupdb-1.8.1.tar.gz 47.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mockupdb 1.8.1
File Interpreter ABI Platform
mockupdb-1.8.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 75.2 kB

Release files / mockupdb-1.8.1.tar.gz

Download URL mockupdb-1.8.1.tar.gz
Size 47.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d36d0e5b6445ff9141e34d012fa2b5dfe589847aa1e3ecb8d774074962af944e
BLAKE2b-256 checksum
How to use checksums
65610c862932aa8271d04be36c21ff5baa9a566b42e3bdb6414288f7a25efaf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/53.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.8

Release files / mockupdb-1.8.1-py2.py3-none-any.whl

Download URL mockupdb-1.8.1-py2.py3-none-any.whl
Size 27.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
8eb76212963bad5df7f3ea8f26af916087c2dcc69a0457c75328abad44956dbb
BLAKE2b-256 checksum
How to use checksums
2fc0bc0c3e82bf91993bf2337b125c4d49c3cadae39f5a4c642baada958f976e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/53.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.8

Release history Release notifications | RSS feed

This release

1.8.1 This release

2 release files

1.8.0

1 release file

1.7.0

1 release file

1.6.0

1 release file

1.5.0

1 release file

1.4.1

1 release file

1.4.0

1 release file

1.3.0

1 release file

1.2.1

1 release file

1.2

1 release file

1.1.3

1 release file

1.1.1

1 release file

1.1

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page