--- Begin Message ---
Source: redis, python-redis
Control: found -1 redis/5:7.0.2-2
Control: found -1 python-redis/3.5.3-2
Severity: serious
Tags: sid bookworm
User: debian...@lists.debian.org
Usertags: breaks needs-update
Dear maintainer(s),
With a recent upload of redis the autopkgtest of python-redis fails in
testing when that autopkgtest is run with the binary packages of redis
from unstable. It passes when run with only packages from testing. In
tabular form:
pass fail
redis from testing 5:7.0.2-2
python-redis from testing 3.5.3-2
all others from testing from testing
I copied some of the output at the bottom of this report.
Currently this regression is blocking the migration of redis to testing
[1]. Due to the nature of this issue, I filed this bug report against
both packages. Can you please investigate the situation and reassign the
bug to the right package?
More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation
Paul
[1] https://qa.debian.org/excuses.php?package=redis
https://ci.debian.net/data/autopkgtest/testing/amd64/p/python-redis/23173373/log.gz
=================================== FAILURES
===================================
__________________ TestRedisCommands.test_acl_getuser_setuser
__________________
self = <tests.test_commands.TestRedisCommands object at 0x7fe1f02f2400>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
request = <FixtureRequest for <Function test_acl_getuser_setuser>>
@skip_if_server_version_lt(REDIS_6_VERSION)
def test_acl_getuser_setuser(self, r, request):
username = 'redis-py-user'
def teardown():
r.acl_deluser(username)
request.addfinalizer(teardown)
# test enabled=False
assert r.acl_setuser(username, enabled=False, reset=True)
assert r.acl_getuser(username) == {
'categories': ['-@all'],
'commands': [],
'enabled': False,
'flags': ['off'],
'keys': [],
'passwords': [],
}
E AssertionError: assert {'categories'...': False, ...} ==
{'categories'... ['off'], ...}
E Omitting 4 identical items, use -vv to show
E Differing items:
E {'keys': b''} != {'keys': []}
E {'flags': ['off', 'sanitize-payload']} != {'flags': ['off']}
E Left contains 2 more items:
E {'channels': b'', 'selectors': []}
E Use -v to get the full diff
tests/test_commands.py:108: AssertionError
_______________________ TestRedisCommands.test_acl_list
________________________
self = <tests.test_commands.TestRedisCommands object at 0x7fe1f02eb970>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
request = <FixtureRequest for <Function test_acl_list>>
@skip_if_server_version_lt(REDIS_6_VERSION)
def test_acl_list(self, r, request):
username = 'redis-py-user'
def teardown():
r.acl_deluser(username)
request.addfinalizer(teardown)
assert r.acl_setuser(username, enabled=False, reset=True)
users = r.acl_list()
assert 'user %s off -@all' % username in users
E AssertionError: assert ('user %s off -@all' % 'redis-py-user')
in ['user default on nopass ~* &* +@all', 'user redis-py-user off
sanitize-payload resetchannels -@all']
tests/test_commands.py:196: AssertionError
______________________ TestRedisCommands.test_config_set
_______________________
self = <tests.test_commands.TestRedisCommands object at 0x7fe1f176b220>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
def test_config_set(self, r):
data = r.config_get()
rdbname = data['dbfilename']
try:
assert r.config_set('dbfilename', 'redis_py_test.rdb')
tests/test_commands.py:379: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
name = 'dbfilename', value = 'redis_py_test.rdb'
def config_set(self, name, value):
"Set config item ``name`` with ``value``"
return self.execute_command('CONFIG SET', name, value)
redis/client.py:1243: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
args = ('CONFIG SET', 'dbfilename', 'redis_py_test.rdb'), options = {}
pool = ConnectionPool<Connection<host=localhost,port=6379,db=9>>
command_name = 'CONFIG SET', conn =
Connection<host=localhost,port=6379,db=9>
def execute_command(self, *args, **options):
"Execute a command and return a parsed response"
pool = self.connection_pool
command_name = args[0]
conn = self.connection or pool.get_connection(command_name,
**options)
try:
conn.send_command(*args)
return self.parse_response(conn, command_name, **options)
redis/client.py:901: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
connection = Connection<host=localhost,port=6379,db=9>
command_name = 'CONFIG SET', options = {}
def parse_response(self, connection, command_name, **options):
"Parses a response from the Redis server"
try:
response = connection.read_response()
redis/client.py:915: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ResponseError: CONFIG SET failed (possibly
related to argument 'dbfilename') - can't set protected config
redis/connection.py:756: ResponseError
During handling of the above exception, another exception occurred:
self = <tests.test_commands.TestRedisCommands object at 0x7fe1f176b220>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
def test_config_set(self, r):
data = r.config_get()
rdbname = data['dbfilename']
try:
assert r.config_set('dbfilename', 'redis_py_test.rdb')
assert r.config_get()['dbfilename'] == 'redis_py_test.rdb'
finally:
assert r.config_set('dbfilename', rdbname)
tests/test_commands.py:382: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1243: in config_set
return self.execute_command('CONFIG SET', name, value)
redis/client.py:901: in execute_command
return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ResponseError: CONFIG SET failed (possibly
related to argument 'dbfilename') - can't set protected config
redis/connection.py:756: ResponseError
_______________________ TestRedisCommands.test_readwrite
_______________________
self = <tests.test_commands.TestRedisCommands object at 0x7fe1f02ea550>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
@skip_if_server_version_lt('3.0.0')
def test_readwrite(self, r):
assert r.readwrite()
tests/test_commands.py:1881: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1231: in readwrite
return self.execute_command('READWRITE')
redis/client.py:901: in execute_command
return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ResponseError: This instance has cluster
support disabled
redis/connection.py:756: ResponseError
____________________ TestRedisCommands.test_xclaim_trimmed
_____________________
self = <tests.test_commands.TestRedisCommands object at 0x7fe1f0bbe790>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
@skip_if_server_version_lt('5.0.0')
def test_xclaim_trimmed(self, r):
# xclaim should not raise an exception if the item is not there
stream = 'stream'
group = 'group'
r.xgroup_create(stream, group, id="$", mkstream=True)
# add a couple of new items
sid1 = r.xadd(stream, {"item": 0})
sid2 = r.xadd(stream, {"item": 0})
# read them from consumer1
r.xreadgroup(group, 'consumer1', {stream: ">"})
# add a 3rd and trim the stream down to 2 items
r.xadd(stream, {"item": 3}, maxlen=2, approximate=False)
# xclaim them from consumer2
# the item that is still in the stream should be returned
item = r.xclaim(stream, group, 'consumer2', 0, [sid1, sid2])
assert len(item) == 2
E AssertionError: assert 1 == 2
E + where 1 = len([(b'1656465151154-1', {b'item': b'0'})])
tests/test_commands.py:2165: AssertionError
_____________________ TestRedisCommands.test_xgroup_create
_____________________
self = <tests.test_commands.TestRedisCommands object at 0x7fe1f1676cd0>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
@skip_if_server_version_lt('5.0.0')
def test_xgroup_create(self, r):
# tests xgroup_create and xinfo_groups
stream = 'stream'
group = 'group'
r.xadd(stream, {'foo': 'bar'})
# no group is setup yet, no info to obtain
assert r.xinfo_groups(stream) == []
assert r.xgroup_create(stream, group, 0)
expected = [{
'name': group.encode(),
'consumers': 0,
'pending': 0,
'last-delivered-id': b'0-0'
}]
assert r.xinfo_groups(stream) == expected
E AssertionError: assert [{'consumers'... b'0-0', ...}] ==
[{'consumers'...'pending': 0}]
E At index 0 diff: {'name': b'group', 'consumers': 0, 'pending':
0, 'last-delivered-id': b'0-0', 'entries-read': None, 'lag': 1} !=
{'name': b'group', 'consumers': 0, 'pending': 0, 'last-delivered-id':
b'0-0'}
E Use -v to get the full diff
tests/test_commands.py:2201: AssertionError
________________ TestRedisCommands.test_xgroup_create_mkstream
_________________
self = <tests.test_commands.TestRedisCommands object at 0x7fe1f17e5d90>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
@skip_if_server_version_lt('5.0.0')
def test_xgroup_create_mkstream(self, r):
# tests xgroup_create and xinfo_groups
stream = 'stream'
group = 'group'
# an error is raised if a group is created on a stream that
# doesn't already exist
with pytest.raises(exceptions.ResponseError):
r.xgroup_create(stream, group, 0)
# however, with mkstream=True, the underlying stream is created
# automatically
assert r.xgroup_create(stream, group, 0, mkstream=True)
expected = [{
'name': group.encode(),
'consumers': 0,
'pending': 0,
'last-delivered-id': b'0-0'
}]
assert r.xinfo_groups(stream) == expected
E AssertionError: assert [{'consumers'... b'0-0', ...}] ==
[{'consumers'...'pending': 0}]
E At index 0 diff: {'name': b'group', 'consumers': 0, 'pending':
0, 'last-delivered-id': b'0-0', 'entries-read': None, 'lag': 0} !=
{'name': b'group', 'consumers': 0, 'pending': 0, 'last-delivered-id':
b'0-0'}
E Use -v to get the full diff
tests/test_commands.py:2223: AssertionError
_____________________ TestRedisCommands.test_xgroup_setid
______________________
self = <tests.test_commands.TestRedisCommands object at 0x7fe1f02eae80>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
@skip_if_server_version_lt('5.0.0')
def test_xgroup_setid(self, r):
stream = 'stream'
group = 'group'
message_id = r.xadd(stream, {'foo': 'bar'})
r.xgroup_create(stream, group, 0)
# advance the last_delivered_id to the message_id
r.xgroup_setid(stream, group, message_id)
expected = [{
'name': group.encode(),
'consumers': 0,
'pending': 0,
'last-delivered-id': message_id
}]
assert r.xinfo_groups(stream) == expected
E AssertionError: assert [{'consumers'...1316-0', ...}] ==
[{'consumers'...'pending': 0}]
E At index 0 diff: {'name': b'group', 'consumers': 0, 'pending':
0, 'last-delivered-id': b'1656465151316-0', 'entries-read': None, 'lag':
0} != {'name': b'group', 'consumers': 0, 'pending': 0,
'last-delivered-id': b'1656465151316-0'}
E Use -v to get the full diff
tests/test_commands.py:2270: AssertionError
_____________ TestConnection.test_busy_loading_disconnects_socket
______________
self = <tests.test_connection_pool.TestConnection object at 0x7fe1f11dc250>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
@skip_if_server_version_lt('2.8.8')
def test_busy_loading_disconnects_socket(self, r):
"""
If Redis raises a LOADING error, the connection should be
disconnected and a BusyLoadingError raised
"""
with pytest.raises(redis.BusyLoadingError):
r.execute_command('DEBUG', 'ERROR', 'LOADING fake message')
tests/test_connection_pool.py:577: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:901: in
execute_command
return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ResponseError: DEBUG command not allowed.
If the enable-debug-command option is set to "local", you can run it
from a local connection, otherwise you need to set this option in the
configuration file, and then restart the server.
redis/connection.py:756: ResponseError
_______ TestConnection.test_busy_loading_from_pipeline_immediate_command
_______
self = <tests.test_connection_pool.TestConnection object at 0x7fe1f0160a00>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
@skip_if_server_version_lt('2.8.8')
def test_busy_loading_from_pipeline_immediate_command(self, r):
"""
BusyLoadingErrors should raise from Pipelines that execute a
command immediately, like WATCH does.
"""
pipe = r.pipeline()
with pytest.raises(redis.BusyLoadingError):
pipe.immediate_execute_command('DEBUG', 'ERROR',
'LOADING fake message')
tests/test_connection_pool.py:588: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:3841: in
immediate_execute_command
return self.parse_response(conn, command_name, **options)
redis/client.py:3977: in parse_response
result = Redis.parse_response(
redis/client.py:915: in parse_response
response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ResponseError: DEBUG command not allowed.
If the enable-debug-command option is set to "local", you can run it
from a local connection, otherwise you need to set this option in the
configuration file, and then restart the server.
redis/connection.py:756: ResponseError
________________ TestConnection.test_busy_loading_from_pipeline
________________
self = Pipeline<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
connection = Connection<host=localhost,port=6379,db=9>
commands = [(('DEBUG', 'ERROR', 'LOADING fake message'), {})]
raise_on_error = True
def _execute_transaction(self, connection, commands, raise_on_error):
cmds = chain([(('MULTI', ), {})], commands, [(('EXEC', ), {})])
all_cmds = connection.pack_commands([args for args, options in cmds
if EMPTY_RESPONSE not in
options])
connection.send_packed_command(all_cmds)
errors = []
# parse off the response for MULTI
# NOTE: we need to handle ResponseErrors here and continue
# so that we read all the additional command messages from
# the socket
try:
self.parse_response(connection, '_')
except ResponseError as e:
errors.append((0, e))
# and all the other commands
for i, command in enumerate(commands):
if EMPTY_RESPONSE in command[1]:
errors.append((i, command[1][EMPTY_RESPONSE]))
else:
try:
self.parse_response(connection, '_')
except ResponseError as e:
self.annotate_exception(e, i + 1, command[0])
errors.append((i, e))
# parse the EXEC.
try:
response = self.parse_response(connection, '_')
redis/client.py:3911: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Pipeline<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
connection = Connection<host=localhost,port=6379,db=9>, command_name = '_'
options = {}
def parse_response(self, connection, command_name, **options):
result = Redis.parse_response(
self, connection, command_name, **options)
redis/client.py:3977: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Pipeline<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
connection = Connection<host=localhost,port=6379,db=9>, command_name = '_'
options = {}
def parse_response(self, connection, command_name, **options):
"Parses a response from the Redis server"
try:
response = connection.read_response()
redis/client.py:915: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ExecAbortError: Transaction discarded
because of previous errors.
redis/connection.py:756: ExecAbortError
During handling of the above exception, another exception occurred:
self = <tests.test_connection_pool.TestConnection object at 0x7fe1f02f2ca0>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
@skip_if_server_version_lt('2.8.8')
def test_busy_loading_from_pipeline(self, r):
"""
BusyLoadingErrors should be raised from a pipeline execution
regardless of the raise_on_error flag.
"""
pipe = r.pipeline()
pipe.execute_command('DEBUG', 'ERROR', 'LOADING fake message')
with pytest.raises(redis.BusyLoadingError):
pipe.execute()
tests/test_connection_pool.py:604: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:4019: in execute
return execute(conn, stack, raise_on_error)
redis/client.py:3914: in _execute_transaction
raise errors[0][1]
redis/client.py:3904: in _execute_transaction
self.parse_response(connection, '_')
redis/client.py:3977: in parse_response
result = Redis.parse_response(
redis/client.py:915: in parse_response
response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ResponseError: Command # 1 (DEBUG ERROR
LOADING fake message) of pipeline caused error: DEBUG command not
allowed. If the enable-debug-command option is set to "local", you can
run it from a local connection, otherwise you need to set this option in
the configuration file, and then restart the server.
redis/connection.py:756: ResponseError
_____________________ TestConnection.test_read_only_error
______________________
self = <tests.test_connection_pool.TestConnection object at 0x7fe1f03a4700>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
@skip_if_server_version_lt('2.8.8')
def test_read_only_error(self, r):
"READONLY errors get turned in ReadOnlyError exceptions"
with pytest.raises(redis.ReadOnlyError):
r.execute_command('DEBUG', 'ERROR', 'READONLY blah blah')
tests/test_connection_pool.py:614: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:901: in
execute_command
return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ResponseError: DEBUG command not allowed.
If the enable-debug-command option is set to "local", you can run it
from a local connection, otherwise you need to set this option in the
configuration file, and then restart the server.
redis/connection.py:756: ResponseError
__________ TestConnection.test_connect_no_auth_supplied_when_required
__________
self = <tests.test_connection_pool.TestConnection object at 0x7fe1f0c0cb20>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
def test_connect_no_auth_supplied_when_required(self, r):
"""
AuthenticationError should be raised when the server requires a
password but one isn't supplied.
"""
with pytest.raises(redis.AuthenticationError):
r.execute_command('DEBUG', 'ERROR',
'ERR Client sent AUTH, but no password is
set')
tests/test_connection_pool.py:642: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:901: in
execute_command
return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ResponseError: DEBUG command not allowed.
If the enable-debug-command option is set to "local", you can run it
from a local connection, otherwise you need to set this option in the
configuration file, and then restart the server.
redis/connection.py:756: ResponseError
____________ TestConnection.test_connect_invalid_password_supplied
_____________
self = <tests.test_connection_pool.TestConnection object at 0x7fe1f1676d90>
r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
def test_connect_invalid_password_supplied(self, r):
"AuthenticationError should be raised when sending the wrong
password"
with pytest.raises(redis.AuthenticationError):
r.execute_command('DEBUG', 'ERROR', 'ERR invalid password')
tests/test_connection_pool.py:648: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:901: in
execute_command
return self.parse_response(conn, command_name, **options)
redis/client.py:915: in parse_response
response = connection.read_response()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = Connection<host=localhost,port=6379,db=9>
def read_response(self):
"Read the response from a previously sent command"
try:
response = self._parser.read_response()
except socket.timeout:
self.disconnect()
raise TimeoutError("Timeout reading from %s:%s" %
(self.host, self.port))
except socket.error as e:
self.disconnect()
raise ConnectionError("Error while reading from %s:%s : %s" %
(self.host, self.port, e.args))
except BaseException:
self.disconnect()
raise
if self.health_check_interval:
self.next_health_check = time() + self.health_check_interval
if isinstance(response, ResponseError):
raise response
E redis.exceptions.ResponseError: DEBUG command not allowed.
If the enable-debug-command option is set to "local", you can run it
from a local connection, otherwise you need to set this option in the
configuration file, and then restart the server.
redis/connection.py:756: ResponseError
=========================== short test summary info
============================
FAILED
tests/test_commands.py::TestRedisCommands::test_acl_getuser_setuser - ...
FAILED tests/test_commands.py::TestRedisCommands::test_acl_list -
AssertionEr...
FAILED tests/test_commands.py::TestRedisCommands::test_config_set -
redis.exc...
FAILED tests/test_commands.py::TestRedisCommands::test_readwrite -
redis.exce...
FAILED tests/test_commands.py::TestRedisCommands::test_xclaim_trimmed -
Asser...
FAILED tests/test_commands.py::TestRedisCommands::test_xgroup_create -
Assert...
FAILED
tests/test_commands.py::TestRedisCommands::test_xgroup_create_mkstream
FAILED tests/test_commands.py::TestRedisCommands::test_xgroup_setid -
Asserti...
FAILED
tests/test_connection_pool.py::TestConnection::test_busy_loading_disconnects_socket
FAILED
tests/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline_immediate_command
FAILED
tests/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline
FAILED
tests/test_connection_pool.py::TestConnection::test_read_only_error - ...
FAILED
tests/test_connection_pool.py::TestConnection::test_connect_no_auth_supplied_when_required
FAILED
tests/test_connection_pool.py::TestConnection::test_connect_invalid_password_supplied
================== 14 failed, 460 passed, 1 skipped in 11.89s
==================
autopkgtest [01:12:35]: test 0002-python3
OpenPGP_signature
Description: OpenPGP digital signature
--- End Message ---