Skip to main content

Run sandboxed Redis instance from a python application.

Project description

Redis Box
---------

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

A typical use of a Redis Box:

```python
from redisbox import RedisBox

box = RedisBox()
box.start()

client = box.client() # redis client
assert client.ping()

# do stuff with Redis

box.stop()
client.ping() # Raises error
```

Nose
----

Redis 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 `REDISBOX_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 `--redisbox-`.

Unit tests
----------

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

```python
from redisbox.unittest import RedisTestCase

class MyTest(RedisTestCase):
def setUp(self):
deploy_fixtures(self.redis_client)

def tearDown(self):
self.purge_database()
```

Installation
------------

Get it from PyPi:

pip install redisbox

Get it from GitHub:

pip install https://github.com/ziadsawalha/redisbox.git



Authors
=======

Ziad Sawalha


Thanks
------

RedisBox is based on mongobox by Roman Kalyakin.

For a list of contributors see `AUTHORS.md`.

Project details


Release history Release notifications

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
redisbox-0.0.1.tar.gz (5.7 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page