Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Run sandboxed Mongo DB instance from a python application.

Project Description

Mongo Box

Mongo Box helps starting and stopping sandboxed MongoDB instance
from within a Python process. MongoDB instance is created with a
temporary directory to store database file and is configured to
be as lightweight as possible. It will choose a free port on localhost,
so it will not interfere with default MongoDB processes.
It is primarily expected to be used in unit tests and for prototyping concepts.

A typical use of a Mongo Box:

from mongobox import MongoBox

box = MongoBox()

client = box.client() # pymongo client
assert client.alive()

# do stuff with Mongo

assert not client.alive()

Nose 1

Mongo Box comes with a Nose plugin which is automatically installed.
If used as a plugin, port of the running instance will be exported
in environment variable `MONGOBOX_PORT`. This name can be overridden
in settings.

The plugin exposes several configuration options. To see them, run:

nosetests --help

The options you are interested in start with `--mongobox-`.

Nose 2

`nose2.cfg` should look similar to this:

plugins = mongobox.nose2_plugin

# Optionally specify the path to the mongod executable
# bin =
# Optionally specify the port to run mongodb on
# port =
# Optionally enable mongodb script engine
# scripting = True
# Path to database files directory. Creates temporary directory by default
# dbpath =
# Optionally store the mongodb log here (default is /dev/null)
# logpath =
# Optionally preallocate db files
# prealloc = True
# Which environment variable port number will be exported to
port_envvar = MONGOBOX_PORT

Unit tests

For an easy unit tests integration there is a `MongoTestCase` class
inherited from `unittest.TestCase`. It assumes tests are run from `nosetests`
with `--with-mongobox` flag. `MongoTestCases` provides a `pymongo` client
connected to the sandboxed mongo instance and a `purge_database` helper
to clean up the database after every test:

from mongobox.unittest import MongoTestCase

class MyTest(MongoTestCase):
def setUp(self):

def tearDown(self):


Get it from PyPi:

pip install mongobox

Get it from GitHub:

pip install


Roman Kalyakin


MongoBox is based on `mongonose` nose plugin by Kapil Thangavelu.

For a list of contributors see ``.

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(6.9 kB) Copy SHA256 Hash SHA256
Source None Jan 30, 2015

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers