diff options
author | Chayim <chayim@users.noreply.github.com> | 2021-10-25 17:06:04 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-25 17:06:04 +0300 |
commit | 3946da29d7e451a20289fb6e282516fa24e402af (patch) | |
tree | 25cf4b73b4e00d66c75288790616ea882823e2b7 /tests/conftest.py | |
parent | 0ef4c0711693b4b313ce97261214bd151d8261d5 (diff) | |
download | redis-py-3946da29d7e451a20289fb6e282516fa24e402af.tar.gz |
redisjson support (#1636)
Diffstat (limited to 'tests/conftest.py')
-rw-r--r-- | tests/conftest.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/conftest.py b/tests/conftest.py index c099463..9ca429d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -11,6 +11,7 @@ from urllib.parse import urlparse REDIS_INFO = {} default_redis_url = "redis://localhost:6379/9" +default_redismod_url = "redis://localhost:36379/9" def pytest_addoption(parser): @@ -19,6 +20,12 @@ def pytest_addoption(parser): help="Redis connection string," " defaults to `%(default)s`") + parser.addoption('--redismod-url', default=default_redismod_url, + action="store", + help="Connection string to redis server" + " with loaded modules," + " defaults to `%(default)s`") + def _get_info(redis_url): client = redis.Redis.from_url(redis_url) @@ -35,6 +42,11 @@ def pytest_sessionstart(session): REDIS_INFO["version"] = version REDIS_INFO["arch_bits"] = arch_bits + # module info + redismod_url = session.config.getoption("--redismod-url") + info = _get_info(redismod_url) + REDIS_INFO["modules"] = info["modules"] + def skip_if_server_version_lt(min_version): redis_version = REDIS_INFO["version"] @@ -57,6 +69,21 @@ def skip_unless_arch_bits(arch_bits): reason="server is not {}-bit".format(arch_bits)) +def skip_ifmodversion_lt(min_version: str, module_name: str): + modules = REDIS_INFO["modules"] + if modules == []: + return pytest.mark.skipif(True, reason="No redis modules found") + + for j in modules: + if module_name == j.get('name'): + version = j.get('ver') + mv = int(min_version.replace(".", "")) + check = version < mv + return pytest.mark.skipif(check, reason="Redis module version") + + raise AttributeError("No redis module named {}".format(module_name)) + + def _get_client(cls, request, single_connection_client=True, flushdb=True, **kwargs): """ @@ -89,6 +116,12 @@ def _get_client(cls, request, single_connection_client=True, flushdb=True, @pytest.fixture() +def modclient(request, port=36379, **kwargs): + with _get_client(redis.Redis, request, port=port, **kwargs) as client: + yield client + + +@pytest.fixture() def r(request): with _get_client(redis.Redis, request) as client: yield client |