https://github.com/klen/pytest-redislite
Pytest plugin for testing code using Redi
https://github.com/klen/pytest-redislite
pytest redis redislite
Last synced: 6 months ago
JSON representation
Pytest plugin for testing code using Redi
- Host: GitHub
- URL: https://github.com/klen/pytest-redislite
- Owner: klen
- Created: 2021-09-13T13:01:27.000Z (almost 5 years ago)
- Default Branch: develop
- Last Pushed: 2022-04-05T14:20:12.000Z (over 4 years ago)
- Last Synced: 2025-03-14T16:15:41.768Z (over 1 year ago)
- Topics: pytest, redis, redislite
- Language: Python
- Homepage:
- Size: 19.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pytest-redislite
**pytest-redislite** -- Is a simple [pytest](https://docs.pytest.org) plugin to
help you test your projects using [Redis](https://redis.io).
[](https://github.com/klen/pytest-redislite/actions)
[](https://pypi.org/project/pytest-redislite)
[](https://pypi.org/project/pytest-redislite)
## Features
- Automatically starts/ends Redis for your tests using
[Redislite](https://github.com/yahoo/redislite)
- Flash Redis Database between tests automatically
## Requirements
- python >= 3.7
## Installation
**pytest-redislite** should be installed using pip:
pip install pytest-redislite
## Usage
When installed the plugin provides the fixture: `redis_url`
```python
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 file
- `redis_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:
```python
@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](http://opensource.org/licenses/MIT)