diff options
Diffstat (limited to 'tests/conftest.py')
-rw-r--r-- | tests/conftest.py | 15 |
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 |