Beispiel #1
0
def test_not_existing_redis(request):
    """Check handling of misconfigured redis executable path."""
    config = get_config(request)
    with pytest.raises(RedisMisconfigured):
        RedisExecutor(
            '/not/redis/here/redis-server',
            databases=4,
            redis_timeout=config['timeout'],
            loglevel=config['loglevel'],
            logsdir=config['logsdir'],
            port=get_port(None),
            host=config['host'],
            timeout=30,
        ).start()
Beispiel #2
0
    def redis_proc_fixture(request):
        """
        Fixture for pytest-redis.

        #. Get configs.
        #. Run redis process.
        #. Stop redis process after tests.

        :param FixtureRequest request: fixture request object
        :rtype: pytest_redis.executors.TCPExecutor
        :returns: tcp executor
        """
        config = get_config(request)
        redis_exec = executable or config['exec']
        rdbcompression = config['compression'] \
            if compression is None else compression
        rdbchecksum = config['rdbchecksum'] if checksum is None else checksum

        redis_executor = RedisExecutor(
            executable=redis_exec,
            databases=db_count or config['db_count'],
            redis_timeout=timeout or config['timeout'],
            loglevel=loglevel or config['loglevel'],
            logsdir=logsdir or config['logsdir'],
            logs_prefix=logs_prefix,
            rdbcompression=rdbcompression,
            rdbchecksum=rdbchecksum,
            syslog_enabled=syslog or config['syslog'],
            save=save or config['save'],
            host=host or config['host'],
            port=get_port(port) or get_port(config['port']),
            timeout=60,
        )
        redis_executor.start()
        request.addfinalizer(redis_executor.stop)

        return redis_executor
Beispiel #3
0
def test_old_redis_version(request, version):
    """Test how fixture behaves in case of old redis version."""
    config = get_config(request)
    with mock.patch(
            'os.popen',
            lambda *args: StringIO(version)
    ):
        with pytest.raises(RedisUnsupported):
            RedisExecutor(
                config['exec'],
                databases=4,
                redis_timeout=config['timeout'],
                loglevel=config['loglevel'],
                logsdir=config['logsdir'],
                port=get_port(None),
                host=config['host'],
                timeout=30,
            ).start()
Beispiel #4
0
def test_redis_exec(request, parameter):
    """
    Check if RedisExecutor properly starts with these configuration options.

    Incorrect options won't even start redis.
    """
    config = get_config(request)
    redis_exec = RedisExecutor(
        executable=config['exec'],
        databases=4,
        redis_timeout=config['timeout'],
        loglevel=config['loglevel'],
        logsdir=config['logsdir'],
        port=get_port(None),
        host=config['host'],
        timeout=30,
        **parameter
    )
    with redis_exec:
        assert redis_exec.running()
Beispiel #5
0
def test_redis_exec_configuration(request, parameter, config_option, value):
    """
    Check if RedisExecutor properly processes configuration options.

    Improperly set options won't be set in redis,
    and we won't be able to read it out of redis.
    """
    config = get_config(request)
    redis_exec = RedisExecutor(
        executable=config['exec'],
        databases=4,
        redis_timeout=config['timeout'],
        loglevel=config['loglevel'],
        logsdir=config['logsdir'],
        port=get_port(None),
        host=config['host'],
        timeout=30,
        **parameter
    )
    with redis_exec:
        redis_client = redis.StrictRedis(
            redis_exec.host, redis_exec.port, 0
        )
        assert redis_client.config_get(config_option) == {config_option: value}