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 False
You 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