mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2024-12-14 11:58:02 +00:00
c87fcedf1f
* fix:change to py3.10 * doc: tests README
2.2 KiB
2.2 KiB
Running FakeRedis tests on Dragonfly
FakeRedis is a Python library that provides a full implementation of the Redis protocol. It is useful for testing Redis clients and for running Redis commands in Python code without having a running Redis server.
The tests in this directory are running against FakeRedis and against a dragonfly instance. The results are then compared to ensure that the two implementations are consistent.
Prerequisites
- Python 3.10 or above is required to run the tests.
- Poetry is required to install the dependencies.
- A dragonfly instance running on port 6380.
Setup environment
- Install Poetry by following the instructions at https://python-poetry.org/docs/#installation.
- From the root directory of the tests (
dragonfly/tests/fakeredis
) runpoetry env use python3.10
(or higher) to create a virtual environment for Python 3.10. - Run
poetry install
to install the dependencies. - Run
poetry run pytest -v
to run all the tests. - Or alternatively, run
poetry run pytest -v test/{test-name}
to run a specific set of tests.
Tests
test_connection.py
: Tests for the connection parameters to the Dragonfly server.test_zadd.py
: Considering the various options for the ZADD command, it has its own set of tests.test_json/*.py
: Tests for the JSON commands.test_stack/*.py
: Tests for the stack commands, bloom filter, cuckoo filter, CMS, TDigest, time-series, top-k.test_mixins/*.py
: Tests for various generic commands: bitmap, geospacial, hash, list, pubsub, scripting, streams, string, etc.test_hypothesis.py
: Hypothesis tests for the mixins commands. These tests are using hypothesis and generate random tests with edge cases. Note these tests take significantly more time to run.
General info
@pytest.mark.unsupported_server_types("dragonfly")
decorator indicates to pytest that the test should not run on dragonfly.- Some tests are skipped the commands are CURRENTLY not supported (e.g.,
GEORARIUS
). - Others are skipped because they cause an expected behavior, and usually marked with TODO comment as well.
- Some tests are skipped the commands are CURRENTLY not supported (e.g.,