pytest-redislite
pytest-redislite -- Is a simple pytest plugin to
help you test your projects using Redis.
Features
- Automatically starts/ends Redis for your tests using
Redislite
- Flash Redis Database between tests automatically
Requirements
Installation
pytest-redislite should be installed using pip:
pip install pytest-redislite
Usage
When installed the plugin provides the fixture: redis_url
def test_code_with_redis(redis_url):
from redis import Redis
redis_client = Redis.from_url(redis_url)
redis_client.set('key', 'value')
assert redis_client.get('key', 'value')
When you are using the fixture Redis server will be started and finished after
your tests.
Configuration
The plugins support pytest command line options:
--redis-path
: Specify a path to Redis Database file--redis-socket-path
: Specify a path to Redis Socket
as well as pytest ini
options:
redis_path
: Specify a path to Redis Database fileredis_socket_path
: Specify a path to Redis Socket
Fixtures
The plugin provides the fixtures:
redis_server
(session scope) provides an instance of redislite.Redis
. The
fixture manages the server's lifetime (start, shutdown).redis_url
(session scope) Starts redislite server and provides the server's
socket address.redis_factory
(session scope) a context manager to start/shutdown redislite
server.
Auto flush data between tests
By default the plugin erases all data in Redis between tests. If you would like
to change the behaviour define the fixture:
@pytest.fixture
def redis_autoflash():
return False
You may define it for a module or whole tests session.
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to
the issue tracker at https://github.com/klen/pytest-redislite/issues
Contributing
Development of the project happens at: https://github.com/klen/pytest-redislite
License
Licensed under a MIT License