Mock Version: 3.5 Mock Version: 3.5 Mock Version: 3.5 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-an23-build-330892-69493/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=990gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1700697600 Wrote: /builddir/build/SRPMS/python-redis-5.0.1-1.an23.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-an23-build-330892-69493/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=990gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1700697600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.kXKLZK + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf redis-py-5.0.1 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/redis-py-5.0.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd redis-py-5.0.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm tests/test_commands.py + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.bPyawt + umask 022 + cd /builddir/build/BUILD + cd redis-py-5.0.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/redis-py-5.0.1/pyproject-wheeldir --output /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-buildrequires Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 65.5.1) Handling wheel from default build backend Requirement not satisfied: wheel Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-redis-5.0.1-1.an23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-an23-build-330892-69493/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=990gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1700697600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.PnIxQR + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf redis-py-5.0.1 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/redis-py-5.0.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd redis-py-5.0.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm tests/test_commands.py + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.aLhJww + umask 022 + cd /builddir/build/BUILD + cd redis-py-5.0.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/redis-py-5.0.1/pyproject-wheeldir --output /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-buildrequires Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 65.5.1) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.38.4) running egg_info creating redis.egg-info writing redis.egg-info/PKG-INFO writing dependency_links to redis.egg-info/dependency_links.txt writing requirements to redis.egg-info/requires.txt writing top-level names to redis.egg-info/top_level.txt writing manifest file 'redis.egg-info/SOURCES.txt' reading manifest file 'redis.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'redis.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.38.4) running dist_info writing redis.egg-info/PKG-INFO writing dependency_links to redis.egg-info/dependency_links.txt writing requirements to redis.egg-info/requires.txt writing top-level names to redis.egg-info/top_level.txt reading manifest file 'redis.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'redis.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/redis-py-5.0.1/redis-5.0.1.dist-info' Handling async-timeout (>=4.0.2) ; python_full_version <= "3.11.2" from hook generated metadata: Requires-Dist (redis) Requirement not satisfied: async-timeout (>=4.0.2) ; python_full_version <= "3.11.2" Handling importlib-metadata (>=1.0) ; python_version < "3.8" from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: importlib-metadata (>=1.0) ; python_version < "3.8" Handling typing-extensions ; python_version < "3.8" from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: typing-extensions ; python_version < "3.8" Handling hiredis (>=1.0.0) ; extra == 'hiredis' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: hiredis (>=1.0.0) ; extra == 'hiredis' Handling cryptography (>=36.0.1) ; extra == 'ocsp' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: cryptography (>=36.0.1) ; extra == 'ocsp' Handling pyopenssl (==20.0.1) ; extra == 'ocsp' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: pyopenssl (==20.0.1) ; extra == 'ocsp' Handling requests (>=2.26.0) ; extra == 'ocsp' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: requests (>=2.26.0) ; extra == 'ocsp' + cat /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-buildrequires + rm -rfv redis-5.0.1.dist-info/ removed 'redis-5.0.1.dist-info/top_level.txt' removed 'redis-5.0.1.dist-info/METADATA' removed 'redis-5.0.1.dist-info/LICENSE' removed directory 'redis-5.0.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-redis-5.0.1-1.an23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-an23-build-330892-69493/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=990gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1700697600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.qLmDMp + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf redis-py-5.0.1 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/redis-py-5.0.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd redis-py-5.0.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm tests/test_commands.py + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.ks8qdy + umask 022 + cd /builddir/build/BUILD + cd redis-py-5.0.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/redis-py-5.0.1/pyproject-wheeldir --output /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-buildrequires Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 65.5.1) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.38.4) running egg_info creating redis.egg-info writing redis.egg-info/PKG-INFO writing dependency_links to redis.egg-info/dependency_links.txt writing requirements to redis.egg-info/requires.txt writing top-level names to redis.egg-info/top_level.txt writing manifest file 'redis.egg-info/SOURCES.txt' reading manifest file 'redis.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'redis.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.38.4) running dist_info writing redis.egg-info/PKG-INFO writing dependency_links to redis.egg-info/dependency_links.txt writing requirements to redis.egg-info/requires.txt writing top-level names to redis.egg-info/top_level.txt reading manifest file 'redis.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'redis.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/redis-py-5.0.1/redis-5.0.1.dist-info' Handling async-timeout (>=4.0.2) ; python_full_version <= "3.11.2" from hook generated metadata: Requires-Dist (redis) Requirement satisfied: async-timeout (>=4.0.2) ; python_full_version <= "3.11.2" (installed: async-timeout 4.0.2) Handling importlib-metadata (>=1.0) ; python_version < "3.8" from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: importlib-metadata (>=1.0) ; python_version < "3.8" Handling typing-extensions ; python_version < "3.8" from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: typing-extensions ; python_version < "3.8" Handling hiredis (>=1.0.0) ; extra == 'hiredis' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: hiredis (>=1.0.0) ; extra == 'hiredis' Handling cryptography (>=36.0.1) ; extra == 'ocsp' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: cryptography (>=36.0.1) ; extra == 'ocsp' Handling pyopenssl (==20.0.1) ; extra == 'ocsp' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: pyopenssl (==20.0.1) ; extra == 'ocsp' Handling requests (>=2.26.0) ; extra == 'ocsp' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: requests (>=2.26.0) ; extra == 'ocsp' + cat /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-buildrequires + rm -rfv redis-5.0.1.dist-info/ removed 'redis-5.0.1.dist-info/top_level.txt' removed 'redis-5.0.1.dist-info/METADATA' removed 'redis-5.0.1.dist-info/LICENSE' removed directory 'redis-5.0.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-redis-5.0.1-1.an23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-an23-build-330892-69493/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=990gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1700697600 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.ao3Yn6 + umask 022 + cd /builddir/build/BUILD + cd redis-py-5.0.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/redis-py-5.0.1/pyproject-wheeldir --output /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-buildrequires Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 65.5.1) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.38.4) running egg_info writing redis.egg-info/PKG-INFO writing dependency_links to redis.egg-info/dependency_links.txt writing requirements to redis.egg-info/requires.txt writing top-level names to redis.egg-info/top_level.txt reading manifest file 'redis.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'redis.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.38.4) running dist_info writing redis.egg-info/PKG-INFO writing dependency_links to redis.egg-info/dependency_links.txt writing requirements to redis.egg-info/requires.txt writing top-level names to redis.egg-info/top_level.txt reading manifest file 'redis.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'redis.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/redis-py-5.0.1/redis-5.0.1.dist-info' Handling async-timeout (>=4.0.2) ; python_full_version <= "3.11.2" from hook generated metadata: Requires-Dist (redis) Requirement satisfied: async-timeout (>=4.0.2) ; python_full_version <= "3.11.2" (installed: async-timeout 4.0.2) Handling importlib-metadata (>=1.0) ; python_version < "3.8" from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: importlib-metadata (>=1.0) ; python_version < "3.8" Handling typing-extensions ; python_version < "3.8" from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: typing-extensions ; python_version < "3.8" Handling hiredis (>=1.0.0) ; extra == 'hiredis' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: hiredis (>=1.0.0) ; extra == 'hiredis' Handling cryptography (>=36.0.1) ; extra == 'ocsp' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: cryptography (>=36.0.1) ; extra == 'ocsp' Handling pyopenssl (==20.0.1) ; extra == 'ocsp' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: pyopenssl (==20.0.1) ; extra == 'ocsp' Handling requests (>=2.26.0) ; extra == 'ocsp' from hook generated metadata: Requires-Dist (redis) Ignoring alien requirement: requests (>=2.26.0) ; extra == 'ocsp' + cat /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-buildrequires + rm -rfv redis-5.0.1.dist-info/ removed 'redis-5.0.1.dist-info/top_level.txt' removed 'redis-5.0.1.dist-info/METADATA' removed 'redis-5.0.1.dist-info/LICENSE' removed directory 'redis-5.0.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.ZLZGyZ + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd redis-py-5.0.1 + mkdir -p /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/anolis/pyproject_wheel.py /builddir/build/BUILD/redis-py-5.0.1/pyproject-wheeldir Looking in indexes: https://mirrors.aliyun.com/pypi/simple/ Processing /builddir/build/BUILD/redis-py-5.0.1 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) running dist_info creating /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-modern-metadata-k2jzi1z1/redis.egg-info writing /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-modern-metadata-k2jzi1z1/redis.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-modern-metadata-k2jzi1z1/redis.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-modern-metadata-k2jzi1z1/redis.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-modern-metadata-k2jzi1z1/redis.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-modern-metadata-k2jzi1z1/redis.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-modern-metadata-k2jzi1z1/redis.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file '/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-modern-metadata-k2jzi1z1/redis.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-modern-metadata-k2jzi1z1/redis-5.0.1.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: redis Building wheel for redis (pyproject.toml): started Running command Building wheel for redis (pyproject.toml) running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/redis copying redis/__init__.py -> build/lib/redis copying redis/backoff.py -> build/lib/redis copying redis/client.py -> build/lib/redis copying redis/cluster.py -> build/lib/redis copying redis/compat.py -> build/lib/redis copying redis/connection.py -> build/lib/redis copying redis/crc.py -> build/lib/redis copying redis/credentials.py -> build/lib/redis copying redis/exceptions.py -> build/lib/redis copying redis/lock.py -> build/lib/redis copying redis/ocsp.py -> build/lib/redis copying redis/retry.py -> build/lib/redis copying redis/sentinel.py -> build/lib/redis copying redis/typing.py -> build/lib/redis copying redis/utils.py -> build/lib/redis creating build/lib/redis/_parsers copying redis/_parsers/__init__.py -> build/lib/redis/_parsers copying redis/_parsers/base.py -> build/lib/redis/_parsers copying redis/_parsers/commands.py -> build/lib/redis/_parsers copying redis/_parsers/encoders.py -> build/lib/redis/_parsers copying redis/_parsers/helpers.py -> build/lib/redis/_parsers copying redis/_parsers/hiredis.py -> build/lib/redis/_parsers copying redis/_parsers/resp2.py -> build/lib/redis/_parsers copying redis/_parsers/resp3.py -> build/lib/redis/_parsers copying redis/_parsers/socket.py -> build/lib/redis/_parsers creating build/lib/redis/asyncio copying redis/asyncio/__init__.py -> build/lib/redis/asyncio copying redis/asyncio/client.py -> build/lib/redis/asyncio copying redis/asyncio/cluster.py -> build/lib/redis/asyncio copying redis/asyncio/connection.py -> build/lib/redis/asyncio copying redis/asyncio/lock.py -> build/lib/redis/asyncio copying redis/asyncio/retry.py -> build/lib/redis/asyncio copying redis/asyncio/sentinel.py -> build/lib/redis/asyncio copying redis/asyncio/utils.py -> build/lib/redis/asyncio creating build/lib/redis/commands copying redis/commands/__init__.py -> build/lib/redis/commands copying redis/commands/cluster.py -> build/lib/redis/commands copying redis/commands/core.py -> build/lib/redis/commands copying redis/commands/helpers.py -> build/lib/redis/commands copying redis/commands/redismodules.py -> build/lib/redis/commands copying redis/commands/sentinel.py -> build/lib/redis/commands creating build/lib/redis/commands/bf copying redis/commands/bf/__init__.py -> build/lib/redis/commands/bf copying redis/commands/bf/commands.py -> build/lib/redis/commands/bf copying redis/commands/bf/info.py -> build/lib/redis/commands/bf creating build/lib/redis/commands/graph copying redis/commands/graph/__init__.py -> build/lib/redis/commands/graph copying redis/commands/graph/commands.py -> build/lib/redis/commands/graph copying redis/commands/graph/edge.py -> build/lib/redis/commands/graph copying redis/commands/graph/exceptions.py -> build/lib/redis/commands/graph copying redis/commands/graph/execution_plan.py -> build/lib/redis/commands/graph copying redis/commands/graph/node.py -> build/lib/redis/commands/graph copying redis/commands/graph/path.py -> build/lib/redis/commands/graph copying redis/commands/graph/query_result.py -> build/lib/redis/commands/graph creating build/lib/redis/commands/json copying redis/commands/json/__init__.py -> build/lib/redis/commands/json copying redis/commands/json/_util.py -> build/lib/redis/commands/json copying redis/commands/json/commands.py -> build/lib/redis/commands/json copying redis/commands/json/decoders.py -> build/lib/redis/commands/json copying redis/commands/json/path.py -> build/lib/redis/commands/json creating build/lib/redis/commands/search copying redis/commands/search/__init__.py -> build/lib/redis/commands/search copying redis/commands/search/_util.py -> build/lib/redis/commands/search copying redis/commands/search/aggregation.py -> build/lib/redis/commands/search copying redis/commands/search/commands.py -> build/lib/redis/commands/search copying redis/commands/search/document.py -> build/lib/redis/commands/search copying redis/commands/search/field.py -> build/lib/redis/commands/search copying redis/commands/search/indexDefinition.py -> build/lib/redis/commands/search copying redis/commands/search/query.py -> build/lib/redis/commands/search copying redis/commands/search/querystring.py -> build/lib/redis/commands/search copying redis/commands/search/reducers.py -> build/lib/redis/commands/search copying redis/commands/search/result.py -> build/lib/redis/commands/search copying redis/commands/search/suggestion.py -> build/lib/redis/commands/search creating build/lib/redis/commands/timeseries copying redis/commands/timeseries/__init__.py -> build/lib/redis/commands/timeseries copying redis/commands/timeseries/commands.py -> build/lib/redis/commands/timeseries copying redis/commands/timeseries/info.py -> build/lib/redis/commands/timeseries copying redis/commands/timeseries/utils.py -> build/lib/redis/commands/timeseries running egg_info writing redis.egg-info/PKG-INFO writing dependency_links to redis.egg-info/dependency_links.txt writing requirements to redis.egg-info/requires.txt writing top-level names to redis.egg-info/top_level.txt reading manifest file 'redis.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'redis.egg-info/SOURCES.txt' copying redis/py.typed -> build/lib/redis installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64 creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/__init__.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/backoff.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/client.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/cluster.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/compat.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/connection.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/crc.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/credentials.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/exceptions.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/lock.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/ocsp.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/retry.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/sentinel.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/typing.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/utils.py -> build/bdist.linux-x86_64/wheel/redis creating build/bdist.linux-x86_64/wheel/redis/_parsers copying build/lib/redis/_parsers/__init__.py -> build/bdist.linux-x86_64/wheel/redis/_parsers copying build/lib/redis/_parsers/base.py -> build/bdist.linux-x86_64/wheel/redis/_parsers copying build/lib/redis/_parsers/commands.py -> build/bdist.linux-x86_64/wheel/redis/_parsers copying build/lib/redis/_parsers/encoders.py -> build/bdist.linux-x86_64/wheel/redis/_parsers copying build/lib/redis/_parsers/helpers.py -> build/bdist.linux-x86_64/wheel/redis/_parsers copying build/lib/redis/_parsers/hiredis.py -> build/bdist.linux-x86_64/wheel/redis/_parsers copying build/lib/redis/_parsers/resp2.py -> build/bdist.linux-x86_64/wheel/redis/_parsers copying build/lib/redis/_parsers/resp3.py -> build/bdist.linux-x86_64/wheel/redis/_parsers copying build/lib/redis/_parsers/socket.py -> build/bdist.linux-x86_64/wheel/redis/_parsers creating build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/__init__.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/client.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/cluster.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/connection.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/lock.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/retry.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/sentinel.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/utils.py -> build/bdist.linux-x86_64/wheel/redis/asyncio creating build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/cluster.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/core.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/helpers.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/redismodules.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/sentinel.py -> build/bdist.linux-x86_64/wheel/redis/commands creating build/bdist.linux-x86_64/wheel/redis/commands/bf copying build/lib/redis/commands/bf/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/bf copying build/lib/redis/commands/bf/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/bf copying build/lib/redis/commands/bf/info.py -> build/bdist.linux-x86_64/wheel/redis/commands/bf creating build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/edge.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/exceptions.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/execution_plan.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/node.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/path.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/query_result.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph creating build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/_util.py -> build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/decoders.py -> build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/path.py -> build/bdist.linux-x86_64/wheel/redis/commands/json creating build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/_util.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/aggregation.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/document.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/field.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/indexDefinition.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/query.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/querystring.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/reducers.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/result.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/suggestion.py -> build/bdist.linux-x86_64/wheel/redis/commands/search creating build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/commands/timeseries/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/commands/timeseries/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/commands/timeseries/info.py -> build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/commands/timeseries/utils.py -> build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/py.typed -> build/bdist.linux-x86_64/wheel/redis running install_egg_info Copying redis.egg-info to build/bdist.linux-x86_64/wheel/redis-5.0.1-py3.10.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/redis-5.0.1.dist-info/WHEEL creating '/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir/pip-wheel-t94yogdh/tmpa251e35z/redis-5.0.1-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'redis/__init__.py' adding 'redis/backoff.py' adding 'redis/client.py' adding 'redis/cluster.py' adding 'redis/compat.py' adding 'redis/connection.py' adding 'redis/crc.py' adding 'redis/credentials.py' adding 'redis/exceptions.py' adding 'redis/lock.py' adding 'redis/ocsp.py' adding 'redis/py.typed' adding 'redis/retry.py' adding 'redis/sentinel.py' adding 'redis/typing.py' adding 'redis/utils.py' adding 'redis/_parsers/__init__.py' adding 'redis/_parsers/base.py' adding 'redis/_parsers/commands.py' adding 'redis/_parsers/encoders.py' adding 'redis/_parsers/helpers.py' adding 'redis/_parsers/hiredis.py' adding 'redis/_parsers/resp2.py' adding 'redis/_parsers/resp3.py' adding 'redis/_parsers/socket.py' adding 'redis/asyncio/__init__.py' adding 'redis/asyncio/client.py' adding 'redis/asyncio/cluster.py' adding 'redis/asyncio/connection.py' adding 'redis/asyncio/lock.py' adding 'redis/asyncio/retry.py' adding 'redis/asyncio/sentinel.py' adding 'redis/asyncio/utils.py' adding 'redis/commands/__init__.py' adding 'redis/commands/cluster.py' adding 'redis/commands/core.py' adding 'redis/commands/helpers.py' adding 'redis/commands/redismodules.py' adding 'redis/commands/sentinel.py' adding 'redis/commands/bf/__init__.py' adding 'redis/commands/bf/commands.py' adding 'redis/commands/bf/info.py' adding 'redis/commands/graph/__init__.py' adding 'redis/commands/graph/commands.py' adding 'redis/commands/graph/edge.py' adding 'redis/commands/graph/exceptions.py' adding 'redis/commands/graph/execution_plan.py' adding 'redis/commands/graph/node.py' adding 'redis/commands/graph/path.py' adding 'redis/commands/graph/query_result.py' adding 'redis/commands/json/__init__.py' adding 'redis/commands/json/_util.py' adding 'redis/commands/json/commands.py' adding 'redis/commands/json/decoders.py' adding 'redis/commands/json/path.py' adding 'redis/commands/search/__init__.py' adding 'redis/commands/search/_util.py' adding 'redis/commands/search/aggregation.py' adding 'redis/commands/search/commands.py' adding 'redis/commands/search/document.py' adding 'redis/commands/search/field.py' adding 'redis/commands/search/indexDefinition.py' adding 'redis/commands/search/query.py' adding 'redis/commands/search/querystring.py' adding 'redis/commands/search/reducers.py' adding 'redis/commands/search/result.py' adding 'redis/commands/search/suggestion.py' adding 'redis/commands/timeseries/__init__.py' adding 'redis/commands/timeseries/commands.py' adding 'redis/commands/timeseries/info.py' adding 'redis/commands/timeseries/utils.py' adding 'redis-5.0.1.dist-info/LICENSE' adding 'redis-5.0.1.dist-info/METADATA' adding 'redis-5.0.1.dist-info/WHEEL' adding 'redis-5.0.1.dist-info/top_level.txt' adding 'redis-5.0.1.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Building wheel for redis (pyproject.toml): finished with status 'done' Created wheel for redis: filename=redis-5.0.1-py3-none-any.whl size=250261 sha256=f542e39a583a13fb18c1ea3f368f062d0f6ac0d6b4c2870f138d9f9e22775dd0 Stored in directory: /builddir/.cache/pip/wheels/c9/cf/2b/bf8b3aef19e371d5ebe2748e9df9d2d434e72c1784131dc761 Successfully built redis + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.GpAw5h + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch ++ dirname /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd redis-py-5.0.1 ++ ls /builddir/build/BUILD/redis-py-5.0.1/pyproject-wheeldir/redis-5.0.1-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=redis==5.0.1 + TMPDIR=/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/redis-py-5.0.1/pyproject-wheeldir redis==5.0.1 Using pip 23.3.1 from /usr/lib/python3.10/site-packages/pip (python 3.10) Looking in links: /builddir/build/BUILD/redis-py-5.0.1/pyproject-wheeldir Processing ./pyproject-wheeldir/redis-5.0.1-py3-none-any.whl Installing collected packages: redis Successfully installed redis-5.0.1 + '[' -d /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/bin ']' + rm -f /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10/site-packages ']' + site_dirs+=("/usr/lib/python3.10/site-packages") + '[' /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib64/python3.10/site-packages '!=' /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10/site-packages ']' + '[' -d /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib64/python3.10/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.10/site-packages/redis-5.0.1.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10/site-packages/redis-5.0.1.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/anolis + /usr/bin/python3 -B /usr/lib/rpm/anolis/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch --record /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10/site-packages/redis-5.0.1.dist-info/RECORD --output /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-record + rm -fv /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10/site-packages/redis-5.0.1.dist-info/RECORD removed '/builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10/site-packages/redis-5.0.1.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10/site-packages/redis-5.0.1.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10/site-packages/redis-5.0.1.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_PERCENTAGES_COUNT=8 + /usr/bin/python3 /usr/lib/rpm/anolis/pyproject_save_files.py --output-files /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-files --output-modules /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch --sitelib /usr/lib/python3.10/site-packages --sitearch /usr/lib64/python3.10/site-packages --python-version 3.10 --pyproject-record /builddir/build/BUILD/python-redis-5.0.1-1.an23.noarch-pyproject-record --prefix /usr redis + /usr/bin/find-debuginfo -j80 --strict-build-id -m -i --build-id-seed 5.0.1-1.an23 --unique-debug-suffix -5.0.1-1.an23.noarch --unique-debug-src-base python-redis-5.0.1-1.an23.noarch --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /builddir/build/BUILD/redis-py-5.0.1 find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/anolis/brp-ldconfig + COMPRESS='zstd -f --rm -19 -T0' + COMPRESS_EXT=.zst + /usr/lib/rpm/brp-compress + /usr/lib/rpm/anolis/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/anolis/clean_perl + /usr/lib/rpm/anolis/check_elf_files + /usr/lib/rpm/anolis/brp-mangle-shebangs + /usr/lib/rpm/anolis/remove-info-dir + /usr/lib/rpm/anolis/check-desktop-files + /usr/lib/rpm/anolis/brp-python-bytecompile '' 1 0 Bytecompiling .py files below /builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10 using python3.10 + /usr/lib/rpm/anolis/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.Vx3R87 + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd redis-py-5.0.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/anolis/anolis-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/anolis/anolis-hardened-ld -specs=/usr/lib/rpm/anolis/anolis-annobin-cc1 -Wl,--build-id=sha1 ' + PATH=/builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + redis-server --enable-debug-command yes + PYTHONPATH=/builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib64/python3.10/site-packages:/builddir/build/BUILDROOT/python-redis-5.0.1-1.an23.noarch/usr/lib/python3.10/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/redis-py-5.0.1/.pyproject-builddir' + /usr/bin/pytest -m 'not onlycluster and not redismod and not ssl' 261710:C 27 Nov 2023 17:39:48.673 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 261710:C 27 Nov 2023 17:39:48.674 # Redis version=7.0.14, bits=64, commit=00000000, modified=0, pid=261710, just started 261710:C 27 Nov 2023 17:39:48.674 # Configuration loaded 261710:M 27 Nov 2023 17:39:48.674 * Increased maximum number of open files to 10032 (it was originally set to 1024). 261710:M 27 Nov 2023 17:39:48.674 * monotonic clock: POSIX clock_gettime 261710:M 27 Nov 2023 17:39:48.674 * Running mode=standalone, port=6379. 261710:M 27 Nov 2023 17:39:48.674 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 261710:M 27 Nov 2023 17:39:48.674 # Server initialized 261710:M 27 Nov 2023 17:39:48.674 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 261710:M 27 Nov 2023 17:39:48.675 * Ready to accept connections ============================= test session starts ============================== platform linux -- Python 3.10.13, pytest-7.3.1, pluggy-1.0.0 rootdir: /builddir/build/BUILD/redis-py-5.0.1 configfile: pytest.ini plugins: asyncio-0.20.3 asyncio: mode=auto collected 3967 items / 1464 deselected / 2503 selected tests/test_bloom.py FFFFFFFFFFFFFFFFFsFsFFFF tests/test_command_parser.py ..... tests/test_connect.py .. tests/test_connection.py .........s.......... tests/test_connection_pool.py ..................................................................... tests/test_credentials.py .......... tests/test_encoding.py ............ tests/test_function.py ....... tests/test_graph.py .FFFFFFFFFFFx.FFFF.FFF tests/test_helpers.py ....... tests/test_json.py FFFFsFFFssFFFsFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.FFF tests/test_lock.py ............................. tests/test_monitor.py ......s tests/test_multiprocessing.py ......... tests/test_pipeline.py ........................... tests/test_pubsub.py ......................................................... tests/test_retry.py ................................................................... tests/test_scripting.py .................. tests/test_sentinel.py .................. tests/test_timeseries.py FsFsFsFFFsFssssssssFssssFsFsFsFFF tests/test_asyncio/test_commands.py ..ss..ss..ss..ss..ss..ss..ssFFss..ssFFss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ssssss..ss..ss..ss..ss..ss..ssssss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ssssss..ss..ss..ss..ss..ss..ss..ss..ssssss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ssssss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ssssss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ssssss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_connect.py .. tests/test_asyncio/test_connection.py ..ss...sss.ss.....ss..s............ tests/test_asyncio/test_connection_pool.py ..ss..ss..ss....ssss....ssss.................................................ss..ss..ss..ss..ss....ss..ssX261710:M 27 Nov 2023 17:40:38.626 * DB saved on disk X261710:M 27 Nov 2023 17:40:38.659 * DB saved on disk ssX261710:M 27 Nov 2023 17:40:38.684 * DB saved on disk X261710:M 27 Nov 2023 17:40:38.693 * DB saved on disk ssX261710:M 27 Nov 2023 17:40:38.716 * DB saved on disk X261710:M 27 Nov 2023 17:40:38.756 * DB saved on disk ssX261710:M 27 Nov 2023 17:40:38.823 * DB saved on disk X261710:M 27 Nov 2023 17:40:38.833 * DB saved on disk ssX261710:M 27 Nov 2023 17:40:38.840 * DB saved on disk X261710:M 27 Nov 2023 17:40:38.845 * DB saved on disk ssX261710:M 27 Nov 2023 17:40:38.852 * DB saved on disk X261710:M 27 Nov 2023 17:40:38.857 * DB saved on disk ssX261710:M 27 Nov 2023 17:40:38.864 * DB saved on disk X261710:M 27 Nov 2023 17:40:38.869 * DB saved on disk ssX261710:M 27 Nov 2023 17:40:38.886 * DB saved on disk X261710:M 27 Nov 2023 17:40:38.901 * DB saved on disk ssX261710:M 27 Nov 2023 17:40:39.133 * DB saved on disk X261710:M 27 Nov 2023 17:40:39.367 * DB saved on disk ssX261710:M 27 Nov 2023 17:40:39.798 * DB saved on disk X261710:M 27 Nov 2023 17:40:40.226 * DB saved on disk ss tests/test_asyncio/test_credentials.py ..ss..ss....ssss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_cwe_404.py ........ tests/test_asyncio/test_encoding.py .261710:M 27 Nov 2023 17:40:40.553 * DB saved on disk .261710:M 27 Nov 2023 17:40:40.557 * DB saved on disk ss.261710:M 27 Nov 2023 17:40:40.565 * DB saved on disk .261710:M 27 Nov 2023 17:40:40.569 * DB saved on disk ss.261710:M 27 Nov 2023 17:40:40.574 * DB saved on disk .261710:M 27 Nov 2023 17:40:40.578 * DB saved on disk ss.261710:M 27 Nov 2023 17:40:40.583 * DB saved on disk .261710:M 27 Nov 2023 17:40:40.587 * DB saved on disk ss.261710:M 27 Nov 2023 17:40:40.593 * DB saved on disk .261710:M 27 Nov 2023 17:40:40.597 * DB saved on disk ss..ss..ss..ssX261710:M 27 Nov 2023 17:40:40.621 * DB saved on disk X261710:M 27 Nov 2023 17:40:40.625 * DB saved on disk ss..ss..ss..ss tests/test_asyncio/test_lock.py ..ss..ss..ss..ss..ss.261710:M 27 Nov 2023 17:40:40.684 * DB saved on disk .261710:M 27 Nov 2023 17:40:40.690 * DB saved on disk ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_monitor.py ..ss..ss..ss..ss..ss..ssssss tests/test_asyncio/test_pipeline.py ..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_pubsub.py ..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss....ssss....ssss..ss..ss tests/test_asyncio/test_retry.py ............................................................ tests/test_asyncio/test_scripting.py ..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_sentinel.py ................. tests/test_asyncio/test_sentinel_managed_connection.py . =================================== FAILURES =================================== _________________________________ test_create __________________________________ client = Redis>> def test_create(client): """Test CREATE/RESERVE calls""" > assert client.bf().create("bloom", 0.01, 1000) tests/test_bloom.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:73: in create return self.execute_command(BF_RESERVE, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'BF.RESERVE', with args beginning with: 'bloom' '0.01' '1000' redis/connection.py:524: ResponseError _______________________________ test_bf_reserve ________________________________ client = Redis>> def test_bf_reserve(client): """Testing BF.RESERVE""" > assert client.bf().reserve("bloom", 0.01, 1000) tests/test_bloom.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:73: in create return self.execute_command(BF_RESERVE, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'BF.RESERVE', with args beginning with: 'bloom' '0.01' '1000' redis/connection.py:524: ResponseError _____________________________ test_tdigest_create ______________________________ client = Redis>> @pytest.mark.experimental def test_tdigest_create(client): > assert client.tdigest().create("tDigest", 100) tests/test_bloom.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:369: in create return self.execute_command(TDIGEST_CREATE, key, "COMPRESSION", compression) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TDIGEST.CREATE', with args beginning with: 'tDigest' 'COMPRESSION' '100' redis/connection.py:524: ResponseError _________________________________ test_bf_add __________________________________ client = Redis>> def test_bf_add(client): > assert client.bf().create("bloom", 0.01, 1000) tests/test_bloom.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:73: in create return self.execute_command(BF_RESERVE, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'BF.RESERVE', with args beginning with: 'bloom' '0.01' '1000' redis/connection.py:524: ResponseError ________________________________ test_bf_insert ________________________________ client = Redis>> def test_bf_insert(client): > assert client.bf().create("bloom", 0.01, 1000) tests/test_bloom.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:73: in create return self.execute_command(BF_RESERVE, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'BF.RESERVE', with args beginning with: 'bloom' '0.01' '1000' redis/connection.py:524: ResponseError ________________________ test_bf_scandump_and_loadchunk ________________________ client = Redis>> def test_bf_scandump_and_loadchunk(client): # Store a filter > client.bf().create("myBloom", "0.0001", "1000") tests/test_bloom.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:73: in create return self.execute_command(BF_RESERVE, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'BF.RESERVE', with args beginning with: 'myBloom' '0.0001' '1000' redis/connection.py:524: ResponseError _________________________________ test_bf_info _________________________________ client = Redis>> def test_bf_info(client): expansion = 4 # Store a filter > client.bf().create("nonscaling", "0.0001", "1000", noScale=True) tests/test_bloom.py:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:73: in create return self.execute_command(BF_RESERVE, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'BF.RESERVE', with args beginning with: 'nonscaling' '0.0001' '1000' 'NONSCALING' redis/connection.py:524: ResponseError _________________________________ test_bf_card _________________________________ client = Redis>> def test_bf_card(client): # return 0 if the key does not exist > assert client.bf().card("not_exist") == 0 tests/test_bloom.py:186: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:174: in card return self.execute_command(BF_CARD, key) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'BF.CARD', with args beginning with: 'not_exist' redis/connection.py:524: ResponseError ____________________________ test_cf_add_and_insert ____________________________ client = Redis>> def test_cf_add_and_insert(client): > assert client.cf().create("cuckoo", 1000) tests/test_bloom.py:199: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:191: in create return self.execute_command(CF_RESERVE, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'CF.RESERVE', with args beginning with: 'cuckoo' '1000' redis/connection.py:524: ResponseError ____________________________ test_cf_exists_and_del ____________________________ client = Redis>> def test_cf_exists_and_del(client): > assert client.cf().create("cuckoo", 1000) tests/test_bloom.py:224: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:191: in create return self.execute_command(CF_RESERVE, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'CF.RESERVE', with args beginning with: 'cuckoo' '1000' redis/connection.py:524: ResponseError ___________________________________ test_cms ___________________________________ client = Redis>> def test_cms(client): > assert client.cms().initbydim("dim", 1000, 5) tests/test_bloom.py:236: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:494: in initbydim return self.execute_command(CMS_INITBYDIM, key, width, depth) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'CMS.INITBYDIM', with args beginning with: 'dim' '1000' '5' redis/connection.py:524: ResponseError ________________________________ test_cms_merge ________________________________ client = Redis>> @pytest.mark.onlynoncluster def test_cms_merge(client): > assert client.cms().initbydim("A", 1000, 5) tests/test_bloom.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:494: in initbydim return self.execute_command(CMS_INITBYDIM, key, width, depth) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'CMS.INITBYDIM', with args beginning with: 'A' '1000' '5' redis/connection.py:524: ResponseError __________________________________ test_topk ___________________________________ client = Redis>> def test_topk(client): # test list with empty buckets > assert client.topk().reserve("topk", 3, 50, 4, 0.9) tests/test_bloom.py:269: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:305: in reserve return self.execute_command(TOPK_RESERVE, key, k, width, depth, decay) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TOPK.RESERVE', with args beginning with: 'topk' '3' '50' '4' '0.9' redis/connection.py:524: ResponseError _______________________________ test_topk_incrby _______________________________ client = Redis>> def test_topk_incrby(client): client.flushdb() > assert client.topk().reserve("topk", 3, 10, 3, 1) tests/test_bloom.py:348: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:305: in reserve return self.execute_command(TOPK_RESERVE, key, k, width, depth, decay) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TOPK.RESERVE', with args beginning with: 'topk' '3' '10' '3' '1' redis/connection.py:524: ResponseError ______________________________ test_tdigest_reset ______________________________ client = Redis>> @pytest.mark.experimental def test_tdigest_reset(client): > assert client.tdigest().create("tDigest", 10) tests/test_bloom.py:361: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:369: in create return self.execute_command(TDIGEST_CREATE, key, "COMPRESSION", compression) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TDIGEST.CREATE', with args beginning with: 'tDigest' 'COMPRESSION' '10' redis/connection.py:524: ResponseError ______________________________ test_tdigest_merge ______________________________ client = Redis>> @pytest.mark.onlynoncluster def test_tdigest_merge(client): > assert client.tdigest().create("to-tDigest", 10) tests/test_bloom.py:377: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:369: in create return self.execute_command(TDIGEST_CREATE, key, "COMPRESSION", compression) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TDIGEST.CREATE', with args beginning with: 'to-tDigest' 'COMPRESSION' '10' redis/connection.py:524: ResponseError ___________________________ test_tdigest_min_and_max ___________________________ client = Redis>> @pytest.mark.experimental def test_tdigest_min_and_max(client): > assert client.tdigest().create("tDigest", 100) tests/test_bloom.py:404: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:369: in create return self.execute_command(TDIGEST_CREATE, key, "COMPRESSION", compression) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TDIGEST.CREATE', with args beginning with: 'tDigest' 'COMPRESSION' '100' redis/connection.py:524: ResponseError _______________________________ test_tdigest_cdf _______________________________ client = Redis>> @pytest.mark.experimental def test_tdigest_cdf(client): > assert client.tdigest().create("tDigest", 100) tests/test_bloom.py:435: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:369: in create return self.execute_command(TDIGEST_CREATE, key, "COMPRESSION", compression) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TDIGEST.CREATE', with args beginning with: 'tDigest' 'COMPRESSION' '100' redis/connection.py:524: ResponseError ______________________________ test_tdigest_rank _______________________________ client = Redis>> @pytest.mark.experimental def test_tdigest_rank(client): > assert client.tdigest().create("t-digest", 500) tests/test_bloom.py:456: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:369: in create return self.execute_command(TDIGEST_CREATE, key, "COMPRESSION", compression) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TDIGEST.CREATE', with args beginning with: 't-digest' 'COMPRESSION' '500' redis/connection.py:524: ResponseError _____________________________ test_tdigest_revrank _____________________________ client = Redis>> @pytest.mark.experimental def test_tdigest_revrank(client): > assert client.tdigest().create("t-digest", 500) tests/test_bloom.py:466: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:369: in create return self.execute_command(TDIGEST_CREATE, key, "COMPRESSION", compression) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TDIGEST.CREATE', with args beginning with: 't-digest' 'COMPRESSION' '500' redis/connection.py:524: ResponseError _____________________________ test_tdigest_byrank ______________________________ client = Redis>> @pytest.mark.experimental def test_tdigest_byrank(client): > assert client.tdigest().create("t-digest", 500) tests/test_bloom.py:475: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:369: in create return self.execute_command(TDIGEST_CREATE, key, "COMPRESSION", compression) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TDIGEST.CREATE', with args beginning with: 't-digest' 'COMPRESSION' '500' redis/connection.py:524: ResponseError ____________________________ test_tdigest_byrevrank ____________________________ client = Redis>> @pytest.mark.experimental def test_tdigest_byrevrank(client): > assert client.tdigest().create("t-digest", 500) tests/test_bloom.py:486: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/bf/commands.py:369: in create return self.execute_command(TDIGEST_CREATE, key, "COMPRESSION", compression) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TDIGEST.CREATE', with args beginning with: 't-digest' 'COMPRESSION' '500' redis/connection.py:524: ResponseError _____________________________ test_graph_creation ______________________________ client = Redis>> def test_graph_creation(client): graph = client.graph() john = Node( label="person", properties={ "name": "John Doe", "age": 33, "gender": "male", "status": "single", }, ) graph.add_node(john) japan = Node(label="country", properties={"name": "Japan"}) graph.add_node(japan) edge = Edge(john, "visited", japan, properties={"purpose": "pleasure"}) graph.add_edge(edge) > graph.commit() tests/test_graph.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:38: in commit return self.query(query) redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'CREATE (rieflauwdh:person{age:33,gender:"male",name:"John Doe",status:"single"}),(pevetmujsk:country{name:"Japan"}),(riefl' redis/connection.py:524: ResponseError _____________________________ test_array_functions _____________________________ client = Redis>> def test_array_functions(client): query = """CREATE (p:person{name:'a',age:32, array:[0,1,2]})""" > client.graph().query(query) tests/test_graph.py:85: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'CREATE (p:person{name:'a',age:32, array:[0,1,2]})' '--compact' redis/connection.py:524: ResponseError __________________________________ test_path ___________________________________ client = Redis>> def test_path(client): node0 = Node(node_id=0, label="L1") node1 = Node(node_id=1, label="L1") edge01 = Edge(node0, "R1", node1, edge_id=0, properties={"value": 1}) graph = client.graph() graph.add_node(node0) graph.add_node(node1) graph.add_edge(edge01) > graph.flush() tests/test_graph.py:112: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:120: in flush self.commit() redis/commands/graph/commands.py:38: in commit return self.query(query) redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'CREATE (biuvtrwsrg:L1),(mirpumxvgm:L1),(biuvtrwsrg:L1)-[:R1{value:1}]->(mirpumxvgm:L1)' '--compact' redis/connection.py:524: ResponseError __________________________________ test_param __________________________________ client = Redis>> def test_param(client): params = [1, 2.3, "str", True, False, None, [0, 1, 2], r"\" RETURN 1337 //"] query = "RETURN $param" for param in params: > result = client.graph().query(query, {"param": param}) tests/test_graph.py:126: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'CYPHER param=1 RETURN $param' '--compact' redis/connection.py:524: ResponseError ___________________________________ test_map ___________________________________ client = Redis>> def test_map(client): query = "RETURN {a:1, b:'str', c:NULL, d:[1,2,3], e:True, f:{x:1, y:2}}" > actual = client.graph().query(query).result_set[0][0] tests/test_graph.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'RETURN {a:1, b:'str', c:NULL, d:[1,2,3], e:True, f:{x:1, y:2}}' '--compact' redis/connection.py:524: ResponseError __________________________________ test_point __________________________________ client = Redis>> def test_point(client): query = "RETURN point({latitude: 32.070794860, longitude: 34.820751118})" expected_lat = 32.070794860 expected_lon = 34.820751118 > actual = client.graph().query(query).result_set[0][0] tests/test_graph.py:151: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'RETURN point({latitude: 32.070794860, longitude: 34.820751118})' '--compact' redis/connection.py:524: ResponseError _____________________________ test_index_response ______________________________ client = Redis>> def test_index_response(client): > result_set = client.graph().query("CREATE INDEX ON :person(age)") tests/test_graph.py:164: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'CREATE INDEX ON :person(age)' '--compact' redis/connection.py:524: ResponseError _________________________ test_stringify_query_result __________________________ client = Redis>> def test_stringify_query_result(client): graph = client.graph() john = Node( alias="a", label="person", properties={ "name": "John Doe", "age": 33, "gender": "male", "status": "single", }, ) graph.add_node(john) japan = Node(alias="b", label="country", properties={"name": "Japan"}) graph.add_node(japan) edge = Edge(john, "visited", japan, properties={"purpose": "pleasure"}) graph.add_edge(edge) assert ( str(john) == """(a:person{age:33,gender:"male",name:"John Doe",status:"single"})""" # noqa ) assert ( str(edge) == """(a:person{age:33,gender:"male",name:"John Doe",status:"single"})""" # noqa + """-[:visited{purpose:"pleasure"}]->""" + """(b:country{name:"Japan"})""" ) assert str(japan) == """(b:country{name:"Japan"})""" > graph.commit() tests/test_graph.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:38: in commit return self.query(query) redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'CREATE (a:person{age:33,gender:"male",name:"John Doe",status:"single"}),(b:country{name:"Japan"}),(a:person{age:33,gender:' redis/connection.py:524: ResponseError _____________________________ test_optional_match ______________________________ client = Redis>> def test_optional_match(client): # Build a graph of form (a)-[R]->(b) node0 = Node(node_id=0, label="L1", properties={"value": "a"}) node1 = Node(node_id=1, label="L1", properties={"value": "b"}) edge01 = Edge(node0, "R", node1, edge_id=0) graph = client.graph() graph.add_node(node0) graph.add_node(node1) graph.add_edge(edge01) > graph.flush() tests/test_graph.py:241: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:120: in flush self.commit() redis/commands/graph/commands.py:38: in commit return self.query(query) redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'CREATE (wjxhwnglia:L1{value:"a"}),(ztttluacjb:L1{value:"b"}),(wjxhwnglia:L1{value:"a"})-[:R]->(ztttluacjb:L1{value:"b"})' redis/connection.py:524: ResponseError ____________________________ test_cached_execution _____________________________ client = Redis>> def test_cached_execution(client): > client.graph().query("CREATE ()") tests/test_graph.py:255: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'CREATE ()' '--compact' redis/connection.py:524: ResponseError _________________________________ test_slowlog _________________________________ client = Redis>> def test_slowlog(client): create_query = """CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}), (:Rider {name:'Dani Pedrosa'})-[:rides]->(:Team {name:'Honda'}), (:Rider {name:'Andrea Dovizioso'})-[:rides]->(:Team {name:'Ducati'})""" > client.graph().query(create_query) tests/test_graph.py:276: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}), (:Rider {name:'Dani Pedrosa'})-[:rides' redis/connection.py:524: ResponseError _________________________________ test_profile _________________________________ client = Redis>> def test_profile(client): q = """UNWIND range(1, 3) AS x CREATE (p:Person {v:x})""" > profile = client.graph().profile(q).result_set tests/test_graph.py:307: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:139: in profile return self.query(query, profile=True) redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.PROFILE', with args beginning with: 'idx' 'UNWIND range(1, 3) AS x CREATE (p:Person {v:x})' '--compact' redis/connection.py:524: ResponseError _________________________________ test_config __________________________________ client = Redis>> @skip_if_redis_enterprise() def test_config(client): config_name = "RESULTSET_SIZE" config_value = 3 # Set configuration > response = client.graph().config(config_name, config_value, set=True) tests/test_graph.py:325: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:177: in config return self.execute_command(CONFIG_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.CONFIG', with args beginning with: 'SET' 'RESULTSET_SIZE' '3' redis/connection.py:524: ResponseError ________________________________ test_list_keys ________________________________ client = Redis>> @pytest.mark.onlynoncluster def test_list_keys(client): > result = client.graph().list_keys() tests/test_graph.py:352: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:184: in list_keys return self.execute_command(LIST_CMD) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.LIST', with args beginning with: redis/connection.py:524: ResponseError _______________________________ test_multi_label _______________________________ client = Redis>> def test_multi_label(client): redis_graph = client.graph("g") node = Node(label=["l", "ll"]) redis_graph.add_node(node) > redis_graph.commit() tests/test_graph.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:38: in commit return self.query(query) redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'g' 'CREATE (jxyhsfhhne:l:ll)' '--compact' redis/connection.py:524: ResponseError _____________________________ test_execution_plan ______________________________ client = Redis>> def test_execution_plan(client): redis_graph = client.graph("execution_plan") create_query = """CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}), (:Rider {name:'Dani Pedrosa'})-[:rides]->(:Team {name:'Honda'}), (:Rider {name:'Andrea Dovizioso'})-[:rides]->(:Team {name:'Ducati'})""" > redis_graph.query(create_query) tests/test_graph.py:476: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'execution_plan' 'CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}), (:Rider {name:'Dani Pedrosa' redis/connection.py:524: ResponseError _________________________________ test_explain _________________________________ client = Redis>> def test_explain(client): redis_graph = client.graph("execution_plan") # graph creation / population create_query = """CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}), (:Rider {name:'Dani Pedrosa'})-[:rides]->(:Team {name:'Honda'}), (:Rider {name:'Andrea Dovizioso'})-[:rides]->(:Team {name:'Ducati'})""" > redis_graph.query(create_query) tests/test_graph.py:495: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'execution_plan' 'CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}), (:Rider {name:'Dani Pedrosa'})-[:ri' redis/connection.py:524: ResponseError __________________________ test_resultset_statistics ___________________________ client = Redis>> def test_resultset_statistics(client): with patch.object(target=QueryResult, attribute="_get_stat") as mock_get_stats: > result = client.graph().query("RETURN 1") tests/test_graph.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/graph/commands.py:89: in query raise e redis/commands/graph/commands.py:83: in query response = self.execute_command(*command) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'GRAPH.QUERY', with args beginning with: 'idx' 'RETURN 1' '--compact' redis/connection.py:524: ResponseError ____________________________ test_json_setbinarykey ____________________________ client = Redis>> def test_json_setbinarykey(client): d = {"hello": "world", b"some": "value"} with pytest.raises(TypeError): client.json().set("somekey", Path.root_path(), d) > assert client.json().set("somekey", Path.root_path(), d, decode_keys=True) tests/test_json.py:21: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'somekey' '.' '{"hello": "world", "some": "value"}' redis/connection.py:524: ResponseError _________________________ test_json_setgetdeleteforget _________________________ client = Redis>> def test_json_setgetdeleteforget(client): > assert client.json().set("foo", Path.root_path(), "bar") tests/test_json.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'foo' '.' '"bar"' redis/connection.py:524: ResponseError _________________________________ test_jsonget _________________________________ client = Redis>> def test_jsonget(client): > client.json().set("foo", Path.root_path(), "bar") tests/test_json.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'foo' '.' '"bar"' redis/connection.py:524: ResponseError ______________________________ test_json_get_jset ______________________________ client = Redis>> def test_json_get_jset(client): > assert client.json().set("foo", Path.root_path(), "bar") tests/test_json.py:39: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'foo' '.' '"bar"' redis/connection.py:524: ResponseError __________________________ test_nonascii_setgetdelete __________________________ client = Redis>> def test_nonascii_setgetdelete(client): > assert client.json().set("notascii", Path.root_path(), "hyvää-élève") tests/test_json.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'notascii' '.' '"hyv\u00e4\u00e4-\u00e9l\u00e8ve"' redis/connection.py:524: ResponseError ________________ test_jsonsetexistentialmodifiersshouldsucceed _________________ client = Redis>> def test_jsonsetexistentialmodifiersshouldsucceed(client): obj = {"foo": "bar"} > assert client.json().set("obj", Path.root_path(), obj) tests/test_json.py:90: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'obj' '.' '{"foo": "bar"}' redis/connection.py:524: ResponseError ____________________________ test_mgetshouldsucceed ____________________________ client = Redis>> def test_mgetshouldsucceed(client): > client.json().set("1", Path.root_path(), 1) tests/test_json.py:106: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: '1' '.' '1' redis/connection.py:524: ResponseError __________________________________ test_type ___________________________________ client = Redis>> def test_type(client): > client.json().set("1", Path.root_path(), 1) tests/test_json.py:130: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: '1' '.' '1' redis/connection.py:524: ResponseError ________________________________ test_numincrby ________________________________ client = Redis>> def test_numincrby(client): > client.json().set("num", Path.root_path(), 1) tests/test_json.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'num' '.' '1' redis/connection.py:524: ResponseError ________________________________ test_nummultby ________________________________ client = Redis>> def test_nummultby(client): > client.json().set("num", Path.root_path(), 1) tests/test_json.py:151: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'num' '.' '1' redis/connection.py:524: ResponseError ________________________________ test_strappend ________________________________ client = Redis>> def test_strappend(client): > client.json().set("jsonkey", Path.root_path(), "foo") tests/test_json.py:177: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'jsonkey' '.' '"foo"' redis/connection.py:524: ResponseError _________________________________ test_strlen __________________________________ client = Redis>> def test_strlen(client): > client.json().set("str", Path.root_path(), "foo") tests/test_json.py:194: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'str' '.' '"foo"' redis/connection.py:524: ResponseError ________________________________ test_arrappend ________________________________ client = Redis>> def test_arrappend(client): > client.json().set("arr", Path.root_path(), [1]) tests/test_json.py:202: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'arr' '.' '[1]' redis/connection.py:524: ResponseError ________________________________ test_arrindex _________________________________ client = Redis>> def test_arrindex(client): > client.json().set("arr", Path.root_path(), [0, 1, 2, 3, 4]) tests/test_json.py:209: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'arr' '.' '[0, 1, 2, 3, 4]' redis/connection.py:524: ResponseError ________________________________ test_arrinsert ________________________________ client = Redis>> def test_arrinsert(client): > client.json().set("arr", Path.root_path(), [0, 4]) tests/test_json.py:220: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'arr' '.' '[0, 4]' redis/connection.py:524: ResponseError _________________________________ test_arrlen __________________________________ client = Redis>> def test_arrlen(client): > client.json().set("arr", Path.root_path(), [0, 1, 2, 3, 4]) tests/test_json.py:233: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'arr' '.' '[0, 1, 2, 3, 4]' redis/connection.py:524: ResponseError _________________________________ test_arrpop __________________________________ client = Redis>> def test_arrpop(client): > client.json().set("arr", Path.root_path(), [0, 1, 2, 3, 4]) tests/test_json.py:240: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'arr' '.' '[0, 1, 2, 3, 4]' redis/connection.py:524: ResponseError _________________________________ test_arrtrim _________________________________ client = Redis>> def test_arrtrim(client): > client.json().set("arr", Path.root_path(), [0, 1, 2, 3, 4]) tests/test_json.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'arr' '.' '[0, 1, 2, 3, 4]' redis/connection.py:524: ResponseError __________________________________ test_resp ___________________________________ client = Redis>> def test_resp(client): obj = {"foo": "bar", "baz": 1, "qaz": True} > client.json().set("obj", Path.root_path(), obj) tests/test_json.py:280: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'obj' '.' '{"foo": "bar", "baz": 1, "qaz": true}' redis/connection.py:524: ResponseError _________________________________ test_objkeys _________________________________ client = Redis>> def test_objkeys(client): obj = {"foo": "bar", "baz": "qaz"} > client.json().set("obj", Path.root_path(), obj) tests/test_json.py:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'obj' '.' '{"foo": "bar", "baz": "qaz"}' redis/connection.py:524: ResponseError _________________________________ test_objlen __________________________________ client = Redis>> def test_objlen(client): obj = {"foo": "bar", "baz": "qaz"} > client.json().set("obj", Path.root_path(), obj) tests/test_json.py:305: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'obj' '.' '{"foo": "bar", "baz": "qaz"}' redis/connection.py:524: ResponseError ________________________ test_json_commands_in_pipeline ________________________ self = Pipeline>> connection = Connection commands = [(('JSON.SET', 'foo', '.', '"bar"'), {}), (('JSON.GET', 'foo', '.'), {}), (('JSON.DEL', 'foo', '.'), {})] raise_on_error = True def _execute_transaction(self, connection, commands, raise_on_error) -> List: 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:1348: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Pipeline>> connection = Connection, command_name = '_' options = {} def parse_response(self, connection, command_name, **options): > result = Redis.parse_response(self, connection, command_name, **options) redis/client.py:1416: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Pipeline>> connection = Connection, command_name = '_' options = {} def parse_response(self, connection, command_name, **options): """Parses a response from the Redis server""" try: if NEVER_DECODE in options: response = connection.read_response(disable_decoding=True) options.pop(NEVER_DECODE) else: > response = connection.read_response() redis/client.py:553: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ExecAbortError: Transaction discarded because of previous errors. redis/connection.py:524: ExecAbortError During handling of the above exception, another exception occurred: client = Redis>> def test_json_commands_in_pipeline(client): p = client.json().pipeline() p.set("foo", Path.root_path(), "bar") p.get("foo") p.delete("foo") > assert_resp_response(client, p.execute(), [True, "bar", 1], [True, [["bar"]], 1]) tests/test_json.py:317: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1478: in execute return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:1479: in lambda: execute(conn, stack, raise_on_error), redis/client.py:1351: in _execute_transaction raise errors[0][1] redis/client.py:1341: in _execute_transaction self.parse_response(connection, "_") redis/client.py:1416: in parse_response result = Redis.parse_response(self, connection, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: Command # 1 (JSON.SET foo . "bar") of pipeline caused error: unknown command 'JSON.SET', with args beginning with: 'foo' '.' '"bar"' redis/connection.py:524: ResponseError _________________________ test_json_delete_with_dollar _________________________ client = Redis>> def test_json_delete_with_dollar(client): doc1 = {"a": 1, "nested": {"a": 2, "b": 3}} > assert client.json().set("doc1", "$", doc1) tests/test_json.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": 1, "nested": {"a": 2, "b": 3}}' redis/connection.py:524: ResponseError _________________________ test_json_forget_with_dollar _________________________ client = Redis>> def test_json_forget_with_dollar(client): doc1 = {"a": 1, "nested": {"a": 2, "b": 3}} > assert client.json().set("doc1", "$", doc1) tests/test_json.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": 1, "nested": {"a": 2, "b": 3}}' redis/connection.py:524: ResponseError ____________________________ test_json_mget_dollar _____________________________ client = Redis>> def test_json_mget_dollar(client): # Test mget with multi paths > client.json().set( "doc1", "$", {"a": 1, "b": 2, "nested": {"a": 3}, "c": None, "nested2": {"a": None}}, ) tests/test_json.py:439: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": 1, "b": 2, "nested": {"a": 3}, "c": null, "nested2": {"a": null}}' redis/connection.py:524: ResponseError __________________________ test_numby_commands_dollar __________________________ client = Redis>> def test_numby_commands_dollar(client): # Test NUMINCRBY > client.json().set("doc1", "$", {"a": "b", "b": [{"a": 2}, {"a": 5.0}, {"a": "c"}]}) tests/test_json.py:468: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": "b", "b": [{"a": 2}, {"a": 5.0}, {"a": "c"}]}' redis/connection.py:524: ResponseError ____________________________ test_strappend_dollar _____________________________ client = Redis>> def test_strappend_dollar(client): > client.json().set( "doc1", "$", {"a": "foo", "nested1": {"a": "hello"}, "nested2": {"a": 31}} ) tests/test_json.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": "foo", "nested1": {"a": "hello"}, "nested2": {"a": 31}}' redis/connection.py:524: ResponseError ______________________________ test_strlen_dollar ______________________________ client = Redis>> def test_strlen_dollar(client): # Test multi > client.json().set( "doc1", "$", {"a": "foo", "nested1": {"a": "hello"}, "nested2": {"a": 31}} ) tests/test_json.py:541: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": "foo", "nested1": {"a": "hello"}, "nested2": {"a": 31}}' redis/connection.py:524: ResponseError ____________________________ test_arrappend_dollar _____________________________ client = Redis>> def test_arrappend_dollar(client): > client.json().set( "doc1", "$", { "a": ["foo"], "nested1": {"a": ["hello", None, "world"]}, "nested2": {"a": 31}, }, ) tests/test_json.py:560: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": ["foo"], "nested1": {"a": ["hello", null, "world"]}, "nested2": {"a": 31}}' redis/connection.py:524: ResponseError ____________________________ test_arrinsert_dollar _____________________________ client = Redis>> def test_arrinsert_dollar(client): > client.json().set( "doc1", "$", { "a": ["foo"], "nested1": {"a": ["hello", None, "world"]}, "nested2": {"a": 31}, }, ) tests/test_json.py:634: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": ["foo"], "nested1": {"a": ["hello", null, "world"]}, "nested2": {"a": 31}}' redis/connection.py:524: ResponseError ______________________________ test_arrlen_dollar ______________________________ client = Redis>> def test_arrlen_dollar(client): > client.json().set( "doc1", "$", { "a": ["foo"], "nested1": {"a": ["hello", None, "world"]}, "nested2": {"a": 31}, }, ) tests/test_json.py:672: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": ["foo"], "nested1": {"a": ["hello", null, "world"]}, "nested2": {"a": 31}}' redis/connection.py:524: ResponseError ______________________________ test_arrpop_dollar ______________________________ client = Redis>> def test_arrpop_dollar(client): > client.json().set( "doc1", "$", { "a": ["foo"], "nested1": {"a": ["hello", None, "world"]}, "nested2": {"a": 31}, }, ) tests/test_json.py:720: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": ["foo"], "nested1": {"a": ["hello", null, "world"]}, "nested2": {"a": 31}}' redis/connection.py:524: ResponseError _____________________________ test_arrtrim_dollar ______________________________ client = Redis>> def test_arrtrim_dollar(client): > client.json().set( "doc1", "$", { "a": ["foo"], "nested1": {"a": ["hello", None, "world"]}, "nested2": {"a": 31}, }, ) tests/test_json.py:761: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": ["foo"], "nested1": {"a": ["hello", null, "world"]}, "nested2": {"a": 31}}' redis/connection.py:524: ResponseError _____________________________ test_objkeys_dollar ______________________________ client = Redis>> def test_objkeys_dollar(client): > client.json().set( "doc1", "$", { "nested1": {"a": {"foo": 10, "bar": 20}}, "a": ["foo"], "nested2": {"a": {"baz": 50}}, }, ) tests/test_json.py:813: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"nested1": {"a": {"foo": 10, "bar": 20}}, "a": ["foo"], "nested2": {"a": {"baz": 50}}}' redis/connection.py:524: ResponseError ______________________________ test_objlen_dollar ______________________________ client = Redis>> def test_objlen_dollar(client): > client.json().set( "doc1", "$", { "nested1": {"a": {"foo": 10, "bar": 20}}, "a": ["foo"], "nested2": {"a": {"baz": 50}}, }, ) tests/test_json.py:842: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"nested1": {"a": {"foo": 10, "bar": 20}}, "a": ["foo"], "nested2": {"a": {"baz": 50}}}' redis/connection.py:524: ResponseError _______________________________ test_type_dollar _______________________________ client = Redis>> def test_type_dollar(client): jdata, jtypes = load_types_data("a") > client.json().set("doc1", "$", jdata) tests/test_json.py:897: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"nested1": {"a": {}}, "nested2": {"a": []}, "nested3": {"a": "str"}, "nested4": {"a": 42}, "nested5": {"a": 1.2}, "n' redis/connection.py:524: ResponseError ______________________________ test_clear_dollar _______________________________ client = Redis>> def test_clear_dollar(client): > client.json().set( "doc1", "$", { "nested1": {"a": {"foo": 10, "bar": 20}}, "a": ["foo"], "nested2": {"a": "claro"}, "nested3": {"a": {"baz": 50}}, }, ) tests/test_json.py:913: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"nested1": {"a": {"foo": 10, "bar": 20}}, "a": ["foo"], "nested2": {"a": "claro"}, "nested3": {"a": {"baz": 50}}}' redis/connection.py:524: ResponseError ______________________________ test_toggle_dollar ______________________________ client = Redis>> def test_toggle_dollar(client): > client.json().set( "doc1", "$", { "a": ["foo"], "nested1": {"a": False}, "nested2": {"a": 31}, "nested3": {"a": True}, }, ) tests/test_json.py:963: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"a": ["foo"], "nested1": {"a": false}, "nested2": {"a": 31}, "nested3": {"a": true}}' redis/connection.py:524: ResponseError _______________________________ test_resp_dollar _______________________________ client = Redis>> def test_resp_dollar(client): data = { "L1": { "a": { "A1_B1": 10, "A1_B2": False, "A1_B3": { "A1_B3_C1": None, "A1_B3_C2": [ "A1_B3_C2_D1_1", "A1_B3_C2_D1_2", -19.5, "A1_B3_C2_D1_4", "A1_B3_C2_D1_5", {"A1_B3_C2_D1_6_E1": True}, ], "A1_B3_C3": [1], }, "A1_B4": {"A1_B4_C1": "foo"}, } }, "L2": { "a": { "A2_B1": 20, "A2_B2": False, "A2_B3": { "A2_B3_C1": None, "A2_B3_C2": [ "A2_B3_C2_D1_1", "A2_B3_C2_D1_2", -37.5, "A2_B3_C2_D1_4", "A2_B3_C2_D1_5", {"A2_B3_C2_D1_6_E1": False}, ], "A2_B3_C3": [2], }, "A2_B4": {"A2_B4_C1": "bar"}, } }, } > client.json().set("doc1", "$", data) tests/test_json.py:1053: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'doc1' '$' '{"L1": {"a": {"A1_B1": 10, "A1_B2": false, "A1_B3": {"A1_B3_C1": null, "A1_B3_C2": ["A1_B3_C2_D1_1", "A1_B3_C2_D1_2",' redis/connection.py:524: ResponseError _____________________________ test_arrindex_dollar _____________________________ client = Redis>> def test_arrindex_dollar(client): > client.json().set( "store", "$", { "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95, "size": [10, 20, 30, 40], }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99, "size": [50, 60, 70, 80], }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99, "size": [5, 10, 20, 30], }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99, "size": [5, 6, 7, 8], }, ], "bicycle": {"color": "red", "price": 19.95}, } }, ) tests/test_json.py:1241: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'store' '$' '{"store": {"book": [{"category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.' redis/connection.py:524: ResponseError _____________________________ test_custom_decoder ______________________________ client = Redis>> def test_custom_decoder(client): import json > import ujson E ModuleNotFoundError: No module named 'ujson' tests/test_json.py:1478: ModuleNotFoundError ________________________________ test_set_file _________________________________ client = Redis>> def test_set_file(client): import json import tempfile obj = {"hello": "world"} jsonfile = tempfile.NamedTemporaryFile(suffix=".json") with open(jsonfile.name, "w+") as fp: fp.write(json.dumps(obj)) nojsonfile = tempfile.NamedTemporaryFile() nojsonfile.write(b"Hello World") > assert client.json().set_file("test", Path.root_path(), jsonfile.name) tests/test_json.py:1502: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:318: in set_file return self.set(name, path, file_content, nx=nx, xx=xx, decode_keys=decode_keys) redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'test' '.' '{"hello": "world"}' redis/connection.py:524: ResponseError ________________________________ test_set_path _________________________________ client = Redis>> def test_set_path(client): import json import tempfile root = tempfile.mkdtemp() sub = tempfile.mkdtemp(dir=root) jsonfile = tempfile.mktemp(suffix=".json", dir=sub) nojsonfile = tempfile.mktemp(dir=root) with open(jsonfile, "w+") as fp: fp.write(json.dumps({"hello": "world"})) with open(nojsonfile, "a+") as fp: fp.write("hello") result = {jsonfile: True, nojsonfile: False} > assert client.json().set_path(Path.root_path(), root) == result tests/test_json.py:1523: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/json/commands.py:344: in set_path self.set_file( redis/commands/json/commands.py:318: in set_file return self.set(name, path, file_content, nx=nx, xx=xx, decode_keys=decode_keys) redis/commands/json/commands.py:253: in set return self.execute_command("JSON.SET", *pieces) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: '/tmp/tmpyss6rdqj/tmpadoj_zxb/tmprmdvi9uc' '.' '{"hello": "world"}' redis/connection.py:524: ResponseError _________________________________ test_create __________________________________ client = Redis>> def test_create(client): > assert client.ts().create(1) tests/test_timeseries.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: '1' redis/connection.py:524: ResponseError __________________________________ test_alter __________________________________ client = Redis>> def test_alter(client): > assert client.ts().create(1) tests/test_timeseries.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: '1' redis/connection.py:524: ResponseError ___________________________________ test_add ___________________________________ client = Redis>> def test_add(client): > assert 1 == client.ts().add(1, 1, 1) tests/test_timeseries.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:167: in add return self.execute_command(ADD_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.ADD', with args beginning with: '1' '1' '1' redis/connection.py:524: ResponseError __________________________________ test_madd ___________________________________ client = Redis>> def test_madd(client): > client.ts().create("a") tests/test_timeseries.py:142: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: 'a' redis/connection.py:524: ResponseError ______________________________ test_incrby_decrby ______________________________ client = Redis>> def test_incrby_decrby(client): for _ in range(100): > assert client.ts().incrby(1, 1) tests/test_timeseries.py:148: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:225: in incrby return self.execute_command(INCRBY_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.INCRBY', with args beginning with: '1' '1' redis/connection.py:524: ResponseError _________________________ test_create_and_delete_rule __________________________ client = Redis>> def test_create_and_delete_rule(client): # test rule creation time = 100 > client.ts().create(1) tests/test_timeseries.py:177: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: '1' redis/connection.py:524: ResponseError __________________________________ test_range __________________________________ client = Redis>> def test_range(client): for i in range(100): > client.ts().add(1, i, i % 7) tests/test_timeseries.py:213: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:167: in add return self.execute_command(ADD_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.ADD', with args beginning with: '1' '0' '0' redis/connection.py:524: ResponseError _________________________________ test_mrange __________________________________ client = Redis>> @pytest.mark.onlynoncluster def test_mrange(client): > client.ts().create(1, labels={"Test": "This", "team": "ny"}) tests/test_timeseries.py:500: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: '1' 'LABELS' 'Test' 'This' 'team' 'ny' redis/connection.py:524: ResponseError ___________________________________ test_get ___________________________________ client = Redis>> def test_get(client): name = "test" > client.ts().create(name) tests/test_timeseries.py:837: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: 'test' redis/connection.py:524: ResponseError __________________________________ test_mget ___________________________________ client = Redis>> @pytest.mark.onlynoncluster def test_mget(client): > client.ts().create(1, labels={"Test": "This"}) tests/test_timeseries.py:864: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: '1' 'LABELS' 'Test' 'This' redis/connection.py:524: ResponseError __________________________________ test_info ___________________________________ client = Redis>> def test_info(client): > client.ts().create(1, retention_msecs=5, labels={"currentLabel": "currentData"}) tests/test_timeseries.py:915: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: '1' 'RETENTION' '5' 'LABELS' 'currentLabel' 'currentData' redis/connection.py:524: ResponseError _______________________________ test_query_index _______________________________ client = Redis>> @pytest.mark.onlynoncluster def test_query_index(client): > client.ts().create(1, labels={"Test": "This"}) tests/test_timeseries.py:940: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: '1' 'LABELS' 'Test' 'This' redis/connection.py:524: ResponseError ________________________________ test_pipeline _________________________________ self = Pipeline>> connection = Connection commands = [(('TS.CREATE', 'with_pipeline'), {}), (('TS.ADD', 'with_pipeline', 0, 0.0), {}), (('TS.ADD', 'with_pipeline', 1, 1.1)...2, 2.2), {}), (('TS.ADD', 'with_pipeline', 3, 3.3000000000000003), {}), (('TS.ADD', 'with_pipeline', 4, 4.4), {}), ...] raise_on_error = True def _execute_transaction(self, connection, commands, raise_on_error) -> List: 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:1348: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Pipeline>> connection = Connection, command_name = '_' options = {} def parse_response(self, connection, command_name, **options): > result = Redis.parse_response(self, connection, command_name, **options) redis/client.py:1416: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Pipeline>> connection = Connection, command_name = '_' options = {} def parse_response(self, connection, command_name, **options): """Parses a response from the Redis server""" try: if NEVER_DECODE in options: response = connection.read_response(disable_decoding=True) options.pop(NEVER_DECODE) else: > response = connection.read_response() redis/client.py:553: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ExecAbortError: Transaction discarded because of previous errors. redis/connection.py:524: ExecAbortError During handling of the above exception, another exception occurred: client = Redis>> def test_pipeline(client): pipeline = client.ts().pipeline() pipeline.create("with_pipeline") for i in range(100): pipeline.add("with_pipeline", i, 1.1 * i) > pipeline.execute() tests/test_timeseries.py:952: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1478: in execute return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:1479: in lambda: execute(conn, stack, raise_on_error), redis/client.py:1351: in _execute_transaction raise errors[0][1] redis/client.py:1341: in _execute_transaction self.parse_response(connection, "_") redis/client.py:1416: in parse_response result = Redis.parse_response(self, connection, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: Command # 1 (TS.CREATE with_pipeline) of pipeline caused error: unknown command 'TS.CREATE', with args beginning with: 'with_pipeline' redis/connection.py:524: ResponseError ______________________________ test_uncompressed _______________________________ client = Redis>> def test_uncompressed(client): > client.ts().create("compressed") tests/test_timeseries.py:965: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/commands/timeseries/commands.py:72: in create return self.execute_command(CREATE_CMD, *params) redis/client.py:536: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:537: in lambda: self._send_command_parse_response( redis/client.py:513: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:553: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not HIREDIS_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E redis.exceptions.ResponseError: unknown command 'TS.CREATE', with args beginning with: 'compressed' redis/connection.py:524: ResponseError _______ TestRedisCommands.test_acl_getuser_setuser[single-python-parser] _______ self = r_teardown = .factory at 0x7fec56d463b0> @skip_if_server_version_lt("7.0.0") async def test_acl_getuser_setuser(self, r_teardown): username = "redis-py-user" r = r_teardown(username) # test enabled=False assert await r.acl_setuser(username, enabled=False, reset=True) acl = await r.acl_getuser(username) assert acl["categories"] == ["-@all"] assert acl["commands"] == [] assert acl["keys"] == [] assert acl["passwords"] == [] assert "off" in acl["flags"] assert acl["enabled"] is False # test nopass=True assert await r.acl_setuser(username, enabled=True, reset=True, nopass=True) acl = await r.acl_getuser(username) assert acl["categories"] == ["-@all"] assert acl["commands"] == [] assert acl["keys"] == [] assert acl["passwords"] == [] assert "on" in acl["flags"] assert "nopass" in acl["flags"] assert acl["enabled"] is True # test all args assert await r.acl_setuser( username, enabled=True, reset=True, passwords=["+pass1", "+pass2"], categories=["+set", "+@hash", "-geo"], commands=["+get", "+mget", "-hset"], keys=["cache:*", "objects:*"], ) acl = await r.acl_getuser(username) > assert set(acl["categories"]) == {"-@all", "+@set", "+@hash", "-@geo"} E AssertionError: assert {'+@hash', '+@set', '-@all'} == {'+@hash', '+...all', '-@geo'} E Extra items in the right set: E '-@geo' E Use -v to get more diff tests/test_asyncio/test_commands.py:173: AssertionError ________ TestRedisCommands.test_acl_getuser_setuser[pool-python-parser] ________ self = r_teardown = .factory at 0x7fec5682bb50> @skip_if_server_version_lt("7.0.0") async def test_acl_getuser_setuser(self, r_teardown): username = "redis-py-user" r = r_teardown(username) # test enabled=False assert await r.acl_setuser(username, enabled=False, reset=True) acl = await r.acl_getuser(username) assert acl["categories"] == ["-@all"] assert acl["commands"] == [] assert acl["keys"] == [] assert acl["passwords"] == [] assert "off" in acl["flags"] assert acl["enabled"] is False # test nopass=True assert await r.acl_setuser(username, enabled=True, reset=True, nopass=True) acl = await r.acl_getuser(username) assert acl["categories"] == ["-@all"] assert acl["commands"] == [] assert acl["keys"] == [] assert acl["passwords"] == [] assert "on" in acl["flags"] assert "nopass" in acl["flags"] assert acl["enabled"] is True # test all args assert await r.acl_setuser( username, enabled=True, reset=True, passwords=["+pass1", "+pass2"], categories=["+set", "+@hash", "-geo"], commands=["+get", "+mget", "-hset"], keys=["cache:*", "objects:*"], ) acl = await r.acl_getuser(username) > assert set(acl["categories"]) == {"-@all", "+@set", "+@hash", "-@geo"} E AssertionError: assert {'+@hash', '+@set', '-@all'} == {'+@hash', '+...all', '-@geo'} E Extra items in the right set: E '-@geo' E Use -v to get more diff tests/test_asyncio/test_commands.py:173: AssertionError _____________ TestRedisCommands.test_acl_log[single-python-parser] _____________ self = r_teardown = .factory at 0x7fec5682a4d0> create_redis = .client_factory at 0x7fec5682bc70> @skip_if_server_version_lt(REDIS_6_VERSION) @pytest.mark.onlynoncluster async def test_acl_log(self, r_teardown, create_redis): username = "redis-py-user" r = r_teardown(username) await r.acl_setuser( username, enabled=True, reset=True, commands=["+get", "+set", "+select"], keys=["cache:*"], nopass=True, ) await r.acl_log_reset() user_client = await create_redis(username=username) # Valid operation and key assert await user_client.set("cache:0", 1) assert await user_client.get("cache:0") == b"1" # Invalid key with pytest.raises(exceptions.NoPermissionError): await user_client.get("violated_cache:0") # Invalid operation with pytest.raises(exceptions.NoPermissionError): await user_client.hset("cache:0", "hkey", "hval") assert isinstance(await r.acl_log(), list) > assert len(await r.acl_log()) == 3 E AssertionError: assert 2 == 3 E + where 2 = len([{'age-seconds': 0.0, 'client-info': {'addr': '[::1]:49948', 'age': 0, 'argv-mem': 19, 'cmd': 'hset', ...}, 'context':...t-info': {'addr': '[::1]:49948', 'age': 0, 'argv-mem': 19, 'cmd': 'get', ...}, 'context': 'toplevel', 'count': 1, ...}]) tests/test_asyncio/test_commands.py:276: AssertionError ______________ TestRedisCommands.test_acl_log[pool-python-parser] ______________ self = r_teardown = .factory at 0x7fec5682a3b0> create_redis = .client_factory at 0x7fec56d45e10> @skip_if_server_version_lt(REDIS_6_VERSION) @pytest.mark.onlynoncluster async def test_acl_log(self, r_teardown, create_redis): username = "redis-py-user" r = r_teardown(username) await r.acl_setuser( username, enabled=True, reset=True, commands=["+get", "+set", "+select"], keys=["cache:*"], nopass=True, ) await r.acl_log_reset() user_client = await create_redis(username=username) # Valid operation and key assert await user_client.set("cache:0", 1) assert await user_client.get("cache:0") == b"1" # Invalid key with pytest.raises(exceptions.NoPermissionError): await user_client.get("violated_cache:0") # Invalid operation with pytest.raises(exceptions.NoPermissionError): await user_client.hset("cache:0", "hkey", "hval") assert isinstance(await r.acl_log(), list) > assert len(await r.acl_log()) == 3 E AssertionError: assert 2 == 3 E + where 2 = len([{'age-seconds': 0.0, 'client-info': {'addr': '[::1]:49952', 'age': 0, 'argv-mem': 19, 'cmd': 'hset', ...}, 'context':...t-info': {'addr': '[::1]:49952', 'age': 0, 'argv-mem': 19, 'cmd': 'get', ...}, 'context': 'toplevel', 'count': 1, ...}]) tests/test_asyncio/test_commands.py:276: AssertionError =============================== warnings summary =============================== ../../../../usr/lib/python3.10/site-packages/_pytest/config/__init__.py:1302 /usr/lib/python3.10/site-packages/_pytest/config/__init__.py:1302: PytestConfigWarning: Unknown config option: timeout self._warn_or_fail_if_strict(f"Unknown config option: {key}\n") tests/test_pubsub.py:978 /builddir/build/BUILD/redis-py-5.0.1/tests/test_pubsub.py:978: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.timeout(30, method="thread") tests/test_pubsub.py:989 /builddir/build/BUILD/redis-py-5.0.1/tests/test_pubsub.py:989: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.timeout(5, method="thread") tests/test_graph.py: 21 warnings /builddir/build/BUILD/redis-py-5.0.1/redis/commands/graph/__init__.py:23: DeprecationWarning: RedisGraph support is deprecated as of Redis Stack 7.2 (https://redis.com/blog/redisgraph-eol/) warnings.warn( tests/test_asyncio/test_connection.py::test_close_is_aclose /builddir/build/BUILD/redis-py-5.0.1/tests/test_asyncio/test_connection.py:319: DeprecationWarning: Call to deprecated close. (Use aclose() instead) -- Deprecated since version 5.0.0. await r1.close() tests/test_asyncio/test_sentinel.py::test_auto_close_pool[master_for] tests/test_asyncio/test_sentinel.py::test_auto_close_pool[slave_for] /builddir/build/BUILD/redis-py-5.0.1/tests/test_asyncio/test_sentinel.py:263: DeprecationWarning: Call to deprecated close. (Use aclose() instead) -- Deprecated since version 5.0.0. await client.close() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_bloom.py::test_create - redis.exceptions.ResponseError: unk... FAILED tests/test_bloom.py::test_bf_reserve - redis.exceptions.ResponseError:... FAILED tests/test_bloom.py::test_tdigest_create - redis.exceptions.ResponseEr... FAILED tests/test_bloom.py::test_bf_add - redis.exceptions.ResponseError: unk... FAILED tests/test_bloom.py::test_bf_insert - redis.exceptions.ResponseError: ... FAILED tests/test_bloom.py::test_bf_scandump_and_loadchunk - redis.exceptions... FAILED tests/test_bloom.py::test_bf_info - redis.exceptions.ResponseError: un... FAILED tests/test_bloom.py::test_bf_card - redis.exceptions.ResponseError: un... FAILED tests/test_bloom.py::test_cf_add_and_insert - redis.exceptions.Respons... FAILED tests/test_bloom.py::test_cf_exists_and_del - redis.exceptions.Respons... FAILED tests/test_bloom.py::test_cms - redis.exceptions.ResponseError: unknow... FAILED tests/test_bloom.py::test_cms_merge - redis.exceptions.ResponseError: ... FAILED tests/test_bloom.py::test_topk - redis.exceptions.ResponseError: unkno... FAILED tests/test_bloom.py::test_topk_incrby - redis.exceptions.ResponseError... FAILED tests/test_bloom.py::test_tdigest_reset - redis.exceptions.ResponseErr... FAILED tests/test_bloom.py::test_tdigest_merge - redis.exceptions.ResponseErr... FAILED tests/test_bloom.py::test_tdigest_min_and_max - redis.exceptions.Respo... FAILED tests/test_bloom.py::test_tdigest_cdf - redis.exceptions.ResponseError... FAILED tests/test_bloom.py::test_tdigest_rank - redis.exceptions.ResponseErro... FAILED tests/test_bloom.py::test_tdigest_revrank - redis.exceptions.ResponseE... FAILED tests/test_bloom.py::test_tdigest_byrank - redis.exceptions.ResponseEr... FAILED tests/test_bloom.py::test_tdigest_byrevrank - redis.exceptions.Respons... FAILED tests/test_graph.py::test_graph_creation - redis.exceptions.ResponseEr... FAILED tests/test_graph.py::test_array_functions - redis.exceptions.ResponseE... FAILED tests/test_graph.py::test_path - redis.exceptions.ResponseError: unkno... FAILED tests/test_graph.py::test_param - redis.exceptions.ResponseError: unkn... FAILED tests/test_graph.py::test_map - redis.exceptions.ResponseError: unknow... FAILED tests/test_graph.py::test_point - redis.exceptions.ResponseError: unkn... FAILED tests/test_graph.py::test_index_response - redis.exceptions.ResponseEr... FAILED tests/test_graph.py::test_stringify_query_result - redis.exceptions.Re... FAILED tests/test_graph.py::test_optional_match - redis.exceptions.ResponseEr... FAILED tests/test_graph.py::test_cached_execution - redis.exceptions.Response... FAILED tests/test_graph.py::test_slowlog - redis.exceptions.ResponseError: un... FAILED tests/test_graph.py::test_profile - redis.exceptions.ResponseError: un... FAILED tests/test_graph.py::test_config - redis.exceptions.ResponseError: unk... FAILED tests/test_graph.py::test_list_keys - redis.exceptions.ResponseError: ... FAILED tests/test_graph.py::test_multi_label - redis.exceptions.ResponseError... FAILED tests/test_graph.py::test_execution_plan - redis.exceptions.ResponseEr... FAILED tests/test_graph.py::test_explain - redis.exceptions.ResponseError: un... FAILED tests/test_graph.py::test_resultset_statistics - redis.exceptions.Resp... FAILED tests/test_json.py::test_json_setbinarykey - redis.exceptions.Response... FAILED tests/test_json.py::test_json_setgetdeleteforget - redis.exceptions.Re... FAILED tests/test_json.py::test_jsonget - redis.exceptions.ResponseError: unk... FAILED tests/test_json.py::test_json_get_jset - redis.exceptions.ResponseErro... FAILED tests/test_json.py::test_nonascii_setgetdelete - redis.exceptions.Resp... FAILED tests/test_json.py::test_jsonsetexistentialmodifiersshouldsucceed - re... FAILED tests/test_json.py::test_mgetshouldsucceed - redis.exceptions.Response... FAILED tests/test_json.py::test_type - redis.exceptions.ResponseError: unknow... FAILED tests/test_json.py::test_numincrby - redis.exceptions.ResponseError: u... FAILED tests/test_json.py::test_nummultby - redis.exceptions.ResponseError: u... FAILED tests/test_json.py::test_strappend - redis.exceptions.ResponseError: u... FAILED tests/test_json.py::test_strlen - redis.exceptions.ResponseError: unkn... FAILED tests/test_json.py::test_arrappend - redis.exceptions.ResponseError: u... FAILED tests/test_json.py::test_arrindex - redis.exceptions.ResponseError: un... FAILED tests/test_json.py::test_arrinsert - redis.exceptions.ResponseError: u... FAILED tests/test_json.py::test_arrlen - redis.exceptions.ResponseError: unkn... FAILED tests/test_json.py::test_arrpop - redis.exceptions.ResponseError: unkn... FAILED tests/test_json.py::test_arrtrim - redis.exceptions.ResponseError: unk... FAILED tests/test_json.py::test_resp - redis.exceptions.ResponseError: unknow... FAILED tests/test_json.py::test_objkeys - redis.exceptions.ResponseError: unk... FAILED tests/test_json.py::test_objlen - redis.exceptions.ResponseError: unkn... FAILED tests/test_json.py::test_json_commands_in_pipeline - redis.exceptions.... FAILED tests/test_json.py::test_json_delete_with_dollar - redis.exceptions.Re... FAILED tests/test_json.py::test_json_forget_with_dollar - redis.exceptions.Re... FAILED tests/test_json.py::test_json_mget_dollar - redis.exceptions.ResponseE... FAILED tests/test_json.py::test_numby_commands_dollar - redis.exceptions.Resp... FAILED tests/test_json.py::test_strappend_dollar - redis.exceptions.ResponseE... FAILED tests/test_json.py::test_strlen_dollar - redis.exceptions.ResponseErro... FAILED tests/test_json.py::test_arrappend_dollar - redis.exceptions.ResponseE... FAILED tests/test_json.py::test_arrinsert_dollar - redis.exceptions.ResponseE... FAILED tests/test_json.py::test_arrlen_dollar - redis.exceptions.ResponseErro... FAILED tests/test_json.py::test_arrpop_dollar - redis.exceptions.ResponseErro... FAILED tests/test_json.py::test_arrtrim_dollar - redis.exceptions.ResponseErr... FAILED tests/test_json.py::test_objkeys_dollar - redis.exceptions.ResponseErr... FAILED tests/test_json.py::test_objlen_dollar - redis.exceptions.ResponseErro... FAILED tests/test_json.py::test_type_dollar - redis.exceptions.ResponseError:... FAILED tests/test_json.py::test_clear_dollar - redis.exceptions.ResponseError... FAILED tests/test_json.py::test_toggle_dollar - redis.exceptions.ResponseErro... FAILED tests/test_json.py::test_resp_dollar - redis.exceptions.ResponseError:... FAILED tests/test_json.py::test_arrindex_dollar - redis.exceptions.ResponseEr... FAILED tests/test_json.py::test_custom_decoder - ModuleNotFoundError: No modu... FAILED tests/test_json.py::test_set_file - redis.exceptions.ResponseError: un... FAILED tests/test_json.py::test_set_path - redis.exceptions.ResponseError: un... FAILED tests/test_timeseries.py::test_create - redis.exceptions.ResponseError... FAILED tests/test_timeseries.py::test_alter - redis.exceptions.ResponseError:... FAILED tests/test_timeseries.py::test_add - redis.exceptions.ResponseError: u... FAILED tests/test_timeseries.py::test_madd - redis.exceptions.ResponseError: ... FAILED tests/test_timeseries.py::test_incrby_decrby - redis.exceptions.Respon... FAILED tests/test_timeseries.py::test_create_and_delete_rule - redis.exceptio... FAILED tests/test_timeseries.py::test_range - redis.exceptions.ResponseError:... FAILED tests/test_timeseries.py::test_mrange - redis.exceptions.ResponseError... FAILED tests/test_timeseries.py::test_get - redis.exceptions.ResponseError: u... FAILED tests/test_timeseries.py::test_mget - redis.exceptions.ResponseError: ... FAILED tests/test_timeseries.py::test_info - redis.exceptions.ResponseError: ... FAILED tests/test_timeseries.py::test_query_index - redis.exceptions.Response... FAILED tests/test_timeseries.py::test_pipeline - redis.exceptions.ResponseErr... FAILED tests/test_timeseries.py::test_uncompressed - redis.exceptions.Respons... FAILED tests/test_asyncio/test_commands.py::TestRedisCommands::test_acl_getuser_setuser[single-python-parser] FAILED tests/test_asyncio/test_commands.py::TestRedisCommands::test_acl_getuser_setuser[pool-python-parser] FAILED tests/test_asyncio/test_commands.py::TestRedisCommands::test_acl_log[single-python-parser] FAILED tests/test_asyncio/test_commands.py::TestRedisCommands::test_acl_log[pool-python-parser] = 101 failed, 1406 passed, 973 skipped, 1464 deselected, 1 xfailed, 22 xpassed, 27 warnings in 66.32s (0:01:06) = error: Bad exit status from /var/tmp/rpm-tmp.Vx3R87 (%check) Bad exit status from /var/tmp/rpm-tmp.Vx3R87 (%check) RPM build errors: Child pid '260675' is dead Child dead, killing orphans Child return code was: 1 EXCEPTION: [Error('Command failed: \n # bash --login -c /usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec\n', 1)] Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/mockbuild/trace_decorator.py", line 93, in trace result = func(*args, **kw) File "/usr/lib/python3.6/site-packages/mockbuild/util.py", line 598, in do_with_status raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode) mockbuild.exception.Error: Command failed: # bash --login -c /usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec