summaryrefslogtreecommitdiff
path: root/tests/conftest.py
diff options
context:
space:
mode:
authorChayim <chayim@users.noreply.github.com>2021-10-25 17:06:04 +0300
committerGitHub <noreply@github.com>2021-10-25 17:06:04 +0300
commit3946da29d7e451a20289fb6e282516fa24e402af (patch)
tree25cf4b73b4e00d66c75288790616ea882823e2b7 /tests/conftest.py
parent0ef4c0711693b4b313ce97261214bd151d8261d5 (diff)
downloadredis-py-3946da29d7e451a20289fb6e282516fa24e402af.tar.gz
redisjson support (#1636)
Diffstat (limited to 'tests/conftest.py')
-rw-r--r--tests/conftest.py33
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