pytest-redislite -- Is a simple pytest plugin to help you test your projects using Redis.
- Automatically starts/ends Redis for your tests using Redislite
- Flash Redis Database between tests automatically
- python >= 3.7
pytest-redislite should be installed using pip:
pip install pytest-redislite
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.
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
The plugin provides the fixtures:
redis_server(session scope) provides an instance ofredislite.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.
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 FalseYou may define it for a module or whole tests session.
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/pytest-redislite/issues
Development of the project happens at: https://github.com/klen/pytest-redislite
Licensed under a MIT License