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()
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']assert 'user %s off -@all' % username in users
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):
E redis.exceptions.ResponseError: CONFIG SET failed (possibly related to argument 'dbfilename') - can't set protected configraise response
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):
E redis.exceptions.ResponseError: CONFIG SET failed (possibly related to argument 'dbfilename') - can't set protected configraise response
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):
E redis.exceptions.ResponseError: This instance has cluster support disabledraise response
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' }]
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'}assert r.xinfo_groups(stream) == expected
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' }]
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'}assert r.xinfo_groups(stream) == expected
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 }]
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'}assert r.xinfo_groups(stream) == expected
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):
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.raise response
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):
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.raise response
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 cmdsif 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):
E redis.exceptions.ExecAbortError: Transaction discarded because of previous errors.raise response
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):
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.raise response
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):
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.raise response
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):
'ERR Client sent AUTH, but no password is set')r.execute_command('DEBUG', 'ERROR',
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):
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.raise response
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):
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.raise response
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