summaryrefslogtreecommitdiff
path: root/tests/conftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/conftest.py')
-rw-r--r--tests/conftest.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/tests/conftest.py b/tests/conftest.py
index 9ca429d..47188df 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -13,6 +13,8 @@ REDIS_INFO = {}
default_redis_url = "redis://localhost:6379/9"
default_redismod_url = "redis://localhost:36379/9"
+default_redismod_url = "redis://localhost:36379"
+
def pytest_addoption(parser):
parser.addoption('--redis-url', default=default_redis_url,
@@ -85,6 +87,7 @@ def skip_ifmodversion_lt(min_version: str, module_name: str):
def _get_client(cls, request, single_connection_client=True, flushdb=True,
+ from_url=None,
**kwargs):
"""
Helper for fixtures or tests that need a Redis client
@@ -93,7 +96,10 @@ def _get_client(cls, request, single_connection_client=True, flushdb=True,
ConnectionPool.from_url, keyword arguments to this function override
values specified in the URL.
"""
- redis_url = request.config.getoption("--redis-url")
+ if from_url is None:
+ redis_url = request.config.getoption("--redis-url")
+ else:
+ redis_url = from_url
url_options = parse_url(redis_url)
url_options.update(kwargs)
pool = redis.ConnectionPool(**url_options)
@@ -115,9 +121,12 @@ def _get_client(cls, request, single_connection_client=True, flushdb=True,
return client
+# specifically set to the zero database, because creating
+# an index on db != 0 raises a ResponseError in redis
@pytest.fixture()
-def modclient(request, port=36379, **kwargs):
- with _get_client(redis.Redis, request, port=port, **kwargs) as client:
+def modclient(request, **kwargs):
+ rmurl = request.config.getoption('--redismod-url')
+ with _get_client(redis.Redis, request, from_url=rmurl, **kwargs) as client:
yield client