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()
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
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()
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()
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}