Mock Version: 4.1 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/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=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'c5dcc601f7d5431c8f8666e732f1d5bd', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.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', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1689897600 Wrote: /builddir/build/SRPMS/python-sqlalchemy-utils-0.41.1-2.fc39.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/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=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '087370372cee4aa283add97dba70e4b4', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.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', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1689897600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.R4yVXf + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf SQLAlchemy-Utils-0.41.1 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/SQLAlchemy-Utils-0.41.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd SQLAlchemy-Utils-0.41.1 + /usr/bin/mkdir -p SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/no-psycopg2cffi.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/python-sqlalchemy-utils-0.41.1-no-pyodbc-dep.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + rm -rf SQLAlchemy-Utils.egg-info + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.YyQgzU + umask 022 + cd /builddir/build/BUILD + cd SQLAlchemy-Utils-0.41.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + 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/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/pyproject-wheeldir --output /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-buildrequires -x test Handling setuptools >= 40.8 from default build backend Requirement not satisfied: setuptools >= 40.8 Handling wheel from default build backend Requirement not satisfied: wheel Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-sqlalchemy-utils-0.41.1-2.fc39.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 --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/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=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '2e89d8e581f3412db3cae922d299aadb', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.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', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1689897600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.FaVkc6 + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf SQLAlchemy-Utils-0.41.1 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/SQLAlchemy-Utils-0.41.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd SQLAlchemy-Utils-0.41.1 + /usr/bin/mkdir -p SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/no-psycopg2cffi.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/python-sqlalchemy-utils-0.41.1-no-pyodbc-dep.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + rm -rf SQLAlchemy-Utils.egg-info + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.ZziT9b + umask 022 + cd /builddir/build/BUILD + cd SQLAlchemy-Utils-0.41.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + 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/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/pyproject-wheeldir --output /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-buildrequires -x test Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 67.7.2) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.40.0) running egg_info writing SQLAlchemy_Utils.egg-info/PKG-INFO writing dependency_links to SQLAlchemy_Utils.egg-info/dependency_links.txt writing requirements to SQLAlchemy_Utils.egg-info/requires.txt writing top-level names to SQLAlchemy_Utils.egg-info/top_level.txt reading manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.pyc' found under directory 'tests' warning: no previously-included files matching '*.pyc' found under directory 'docs' no previously-included directories found matching 'docs/_build' warning: no previously-included files found matching 'docs/_themes/.git' adding license file 'LICENSE' writing manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.40.0) running dist_info writing SQLAlchemy_Utils.egg-info/PKG-INFO writing dependency_links to SQLAlchemy_Utils.egg-info/dependency_links.txt writing requirements to SQLAlchemy_Utils.egg-info/requires.txt writing top-level names to SQLAlchemy_Utils.egg-info/top_level.txt reading manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.pyc' found under directory 'tests' warning: no previously-included files matching '*.pyc' found under directory 'docs' no previously-included directories found matching 'docs/_build' warning: no previously-included files found matching 'docs/_themes/.git' adding license file 'LICENSE' writing manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/SQLAlchemy_Utils-0.41.1.dist-info' Handling SQLAlchemy (>=1.3) from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: SQLAlchemy (>=1.3) Handling importlib-metadata ; python_version < "3.8" from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: importlib-metadata ; python_version < "3.8" Handling arrow (>=0.3.4) ; extra == 'arrow' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: arrow (>=0.3.4) ; extra == 'arrow' Handling Babel (>=1.3) ; extra == 'babel' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Babel (>=1.3) ; extra == 'babel' Handling colour (>=0.0.4) ; extra == 'color' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: colour (>=0.0.4) ; extra == 'color' Handling cryptography (>=0.6) ; extra == 'encrypted' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: cryptography (>=0.6) ; extra == 'encrypted' Handling intervals (>=0.7.1) ; extra == 'intervals' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: intervals (>=0.7.1) ; extra == 'intervals' Handling passlib (<2.0,>=1.6) ; extra == 'password' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: passlib (<2.0,>=1.6) ; extra == 'password' Handling pendulum (>=2.0.5) ; extra == 'pendulum' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pendulum (>=2.0.5) ; extra == 'pendulum' Handling phonenumbers (>=5.9.2) ; extra == 'phone' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: phonenumbers (>=5.9.2) ; extra == 'phone' Handling pytest (>=2.7.1) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: pytest (>=2.7.1) ; extra == 'test' (installed: pytest 7.3.2) Handling Pygments (>=1.2) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: Pygments (>=1.2) ; extra == 'test' Handling Jinja2 (>=2.3) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: Jinja2 (>=2.3) ; extra == 'test' Handling docutils (>=0.10) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: docutils (>=0.10) ; extra == 'test' Handling flexmock (>=0.9.7) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: flexmock (>=0.9.7) ; extra == 'test' Handling psycopg (>=3.1.8) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: psycopg (>=3.1.8) ; extra == 'test' Handling psycopg2 (>=2.5.1) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: psycopg2 (>=2.5.1) ; extra == 'test' Handling pg8000 (>=1.12.4) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: pg8000 (>=1.12.4) ; extra == 'test' Handling pytz (>=2014.2) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: pytz (>=2014.2) ; extra == 'test' Handling python-dateutil (>=2.6) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: python-dateutil (>=2.6) ; extra == 'test' Handling pymysql ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: pymysql ; extra == 'test' Handling flake8 (>=2.4.0) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: flake8 (>=2.4.0) ; extra == 'test' Handling isort (>=4.2.2) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: isort (>=4.2.2) ; extra == 'test' Handling backports.zoneinfo ; (python_version < "3.9") and extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: backports.zoneinfo ; (python_version < "3.9") and extra == 'test' Handling Babel (>=1.3) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Babel (>=1.3) ; extra == 'test_all' Handling Jinja2 (>=2.3) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Jinja2 (>=2.3) ; extra == 'test_all' Handling Pygments (>=1.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Pygments (>=1.2) ; extra == 'test_all' Handling arrow (>=0.3.4) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: arrow (>=0.3.4) ; extra == 'test_all' Handling colour (>=0.0.4) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: colour (>=0.0.4) ; extra == 'test_all' Handling cryptography (>=0.6) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: cryptography (>=0.6) ; extra == 'test_all' Handling docutils (>=0.10) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: docutils (>=0.10) ; extra == 'test_all' Handling flake8 (>=2.4.0) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: flake8 (>=2.4.0) ; extra == 'test_all' Handling flexmock (>=0.9.7) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: flexmock (>=0.9.7) ; extra == 'test_all' Handling furl (>=0.4.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: furl (>=0.4.1) ; extra == 'test_all' Handling intervals (>=0.7.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: intervals (>=0.7.1) ; extra == 'test_all' Handling isort (>=4.2.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: isort (>=4.2.2) ; extra == 'test_all' Handling passlib (<2.0,>=1.6) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: passlib (<2.0,>=1.6) ; extra == 'test_all' Handling pendulum (>=2.0.5) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pendulum (>=2.0.5) ; extra == 'test_all' Handling pg8000 (>=1.12.4) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pg8000 (>=1.12.4) ; extra == 'test_all' Handling phonenumbers (>=5.9.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: phonenumbers (>=5.9.2) ; extra == 'test_all' Handling psycopg2 (>=2.5.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: psycopg2 (>=2.5.1) ; extra == 'test_all' Handling psycopg (>=3.1.8) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: psycopg (>=3.1.8) ; extra == 'test_all' Handling pymysql ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pymysql ; extra == 'test_all' Handling pytest (>=2.7.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pytest (>=2.7.1) ; extra == 'test_all' Handling python-dateutil ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: python-dateutil ; extra == 'test_all' Handling python-dateutil (>=2.6) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: python-dateutil (>=2.6) ; extra == 'test_all' Handling pytz (>=2014.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pytz (>=2014.2) ; extra == 'test_all' Handling backports.zoneinfo ; (python_version < "3.9") and extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: backports.zoneinfo ; (python_version < "3.9") and extra == 'test_all' Handling python-dateutil ; extra == 'timezone' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: python-dateutil ; extra == 'timezone' Handling furl (>=0.4.1) ; extra == 'url' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: furl (>=0.4.1) ; extra == 'url' + cat /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-buildrequires + rm -rfv SQLAlchemy_Utils-0.41.1.dist-info/ removed 'SQLAlchemy_Utils-0.41.1.dist-info/LICENSE' removed 'SQLAlchemy_Utils-0.41.1.dist-info/METADATA' removed 'SQLAlchemy_Utils-0.41.1.dist-info/top_level.txt' removed directory 'SQLAlchemy_Utils-0.41.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-sqlalchemy-utils-0.41.1-2.fc39.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 --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/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=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'ca53db2bf31244929399b1d9b323cb4e', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.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', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1689897600 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.UYE3hd + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf SQLAlchemy-Utils-0.41.1 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/SQLAlchemy-Utils-0.41.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd SQLAlchemy-Utils-0.41.1 + /usr/bin/mkdir -p SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/no-psycopg2cffi.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/python-sqlalchemy-utils-0.41.1-no-pyodbc-dep.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + rm -rf SQLAlchemy-Utils.egg-info + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.8YsKpQ + umask 022 + cd /builddir/build/BUILD + cd SQLAlchemy-Utils-0.41.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + 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/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/pyproject-wheeldir --output /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-buildrequires -x test Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 67.7.2) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.40.0) running egg_info writing SQLAlchemy_Utils.egg-info/PKG-INFO writing dependency_links to SQLAlchemy_Utils.egg-info/dependency_links.txt writing requirements to SQLAlchemy_Utils.egg-info/requires.txt writing top-level names to SQLAlchemy_Utils.egg-info/top_level.txt reading manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.pyc' found under directory 'tests' warning: no previously-included files matching '*.pyc' found under directory 'docs' no previously-included directories found matching 'docs/_build' warning: no previously-included files found matching 'docs/_themes/.git' adding license file 'LICENSE' writing manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.40.0) running dist_info writing SQLAlchemy_Utils.egg-info/PKG-INFO writing dependency_links to SQLAlchemy_Utils.egg-info/dependency_links.txt writing requirements to SQLAlchemy_Utils.egg-info/requires.txt writing top-level names to SQLAlchemy_Utils.egg-info/top_level.txt reading manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.pyc' found under directory 'tests' warning: no previously-included files matching '*.pyc' found under directory 'docs' no previously-included directories found matching 'docs/_build' warning: no previously-included files found matching 'docs/_themes/.git' adding license file 'LICENSE' writing manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/SQLAlchemy_Utils-0.41.1.dist-info' Handling SQLAlchemy (>=1.3) from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: SQLAlchemy (>=1.3) (installed: SQLAlchemy 1.4.49) Handling importlib-metadata ; python_version < "3.8" from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: importlib-metadata ; python_version < "3.8" Handling arrow (>=0.3.4) ; extra == 'arrow' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: arrow (>=0.3.4) ; extra == 'arrow' Handling Babel (>=1.3) ; extra == 'babel' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Babel (>=1.3) ; extra == 'babel' Handling colour (>=0.0.4) ; extra == 'color' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: colour (>=0.0.4) ; extra == 'color' Handling cryptography (>=0.6) ; extra == 'encrypted' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: cryptography (>=0.6) ; extra == 'encrypted' Handling intervals (>=0.7.1) ; extra == 'intervals' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: intervals (>=0.7.1) ; extra == 'intervals' Handling passlib (<2.0,>=1.6) ; extra == 'password' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: passlib (<2.0,>=1.6) ; extra == 'password' Handling pendulum (>=2.0.5) ; extra == 'pendulum' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pendulum (>=2.0.5) ; extra == 'pendulum' Handling phonenumbers (>=5.9.2) ; extra == 'phone' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: phonenumbers (>=5.9.2) ; extra == 'phone' Handling pytest (>=2.7.1) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: pytest (>=2.7.1) ; extra == 'test' (installed: pytest 7.3.2) Handling Pygments (>=1.2) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: Pygments (>=1.2) ; extra == 'test' (installed: Pygments 2.15.1) Handling Jinja2 (>=2.3) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: Jinja2 (>=2.3) ; extra == 'test' (installed: Jinja2 3.1.2) Handling docutils (>=0.10) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: docutils (>=0.10) ; extra == 'test' (installed: docutils 0.19) Handling flexmock (>=0.9.7) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: flexmock (>=0.9.7) ; extra == 'test' (installed: flexmock 0.11.3) Handling psycopg (>=3.1.8) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: psycopg (>=3.1.8) ; extra == 'test' (installed: psycopg 3.1.9) Handling psycopg2 (>=2.5.1) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: psycopg2 (>=2.5.1) ; extra == 'test' (installed: psycopg2 2.9.6) Handling pg8000 (>=1.12.4) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: pg8000 (>=1.12.4) ; extra == 'test' (installed: pg8000 1.26.1) Handling pytz (>=2014.2) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: pytz (>=2014.2) ; extra == 'test' (installed: pytz 2023.3) Handling python-dateutil (>=2.6) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: python-dateutil (>=2.6) ; extra == 'test' (installed: python-dateutil 2.8.2) Handling pymysql ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: pymysql ; extra == 'test' (installed: pymysql 1.1.0) Handling flake8 (>=2.4.0) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: flake8 (>=2.4.0) ; extra == 'test' (installed: flake8 6.0.0) Handling isort (>=4.2.2) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: isort (>=4.2.2) ; extra == 'test' (installed: isort 5.12.0) Handling backports.zoneinfo ; (python_version < "3.9") and extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: backports.zoneinfo ; (python_version < "3.9") and extra == 'test' Handling Babel (>=1.3) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Babel (>=1.3) ; extra == 'test_all' Handling Jinja2 (>=2.3) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Jinja2 (>=2.3) ; extra == 'test_all' Handling Pygments (>=1.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Pygments (>=1.2) ; extra == 'test_all' Handling arrow (>=0.3.4) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: arrow (>=0.3.4) ; extra == 'test_all' Handling colour (>=0.0.4) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: colour (>=0.0.4) ; extra == 'test_all' Handling cryptography (>=0.6) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: cryptography (>=0.6) ; extra == 'test_all' Handling docutils (>=0.10) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: docutils (>=0.10) ; extra == 'test_all' Handling flake8 (>=2.4.0) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: flake8 (>=2.4.0) ; extra == 'test_all' Handling flexmock (>=0.9.7) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: flexmock (>=0.9.7) ; extra == 'test_all' Handling furl (>=0.4.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: furl (>=0.4.1) ; extra == 'test_all' Handling intervals (>=0.7.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: intervals (>=0.7.1) ; extra == 'test_all' Handling isort (>=4.2.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: isort (>=4.2.2) ; extra == 'test_all' Handling passlib (<2.0,>=1.6) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: passlib (<2.0,>=1.6) ; extra == 'test_all' Handling pendulum (>=2.0.5) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pendulum (>=2.0.5) ; extra == 'test_all' Handling pg8000 (>=1.12.4) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pg8000 (>=1.12.4) ; extra == 'test_all' Handling phonenumbers (>=5.9.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: phonenumbers (>=5.9.2) ; extra == 'test_all' Handling psycopg2 (>=2.5.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: psycopg2 (>=2.5.1) ; extra == 'test_all' Handling psycopg (>=3.1.8) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: psycopg (>=3.1.8) ; extra == 'test_all' Handling pymysql ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pymysql ; extra == 'test_all' Handling pytest (>=2.7.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pytest (>=2.7.1) ; extra == 'test_all' Handling python-dateutil ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: python-dateutil ; extra == 'test_all' Handling python-dateutil (>=2.6) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: python-dateutil (>=2.6) ; extra == 'test_all' Handling pytz (>=2014.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pytz (>=2014.2) ; extra == 'test_all' Handling backports.zoneinfo ; (python_version < "3.9") and extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: backports.zoneinfo ; (python_version < "3.9") and extra == 'test_all' Handling python-dateutil ; extra == 'timezone' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: python-dateutil ; extra == 'timezone' Handling furl (>=0.4.1) ; extra == 'url' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: furl (>=0.4.1) ; extra == 'url' + cat /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-buildrequires + rm -rfv SQLAlchemy_Utils-0.41.1.dist-info/ removed 'SQLAlchemy_Utils-0.41.1.dist-info/LICENSE' removed 'SQLAlchemy_Utils-0.41.1.dist-info/METADATA' removed 'SQLAlchemy_Utils-0.41.1.dist-info/top_level.txt' removed directory 'SQLAlchemy_Utils-0.41.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-sqlalchemy-utils-0.41.1-2.fc39.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 --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/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=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '6b2d82d2bc4f4747ac02e9afab297de7', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1690883357.281448/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.rgex2epe:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --target x86_64 --nodeps /builddir/build/SPECS/python-sqlalchemy-utils.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', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1689897600 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.NcGBK1 + umask 022 + cd /builddir/build/BUILD + cd SQLAlchemy-Utils-0.41.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + 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/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/pyproject-wheeldir --output /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-buildrequires -x test Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 67.7.2) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.40.0) running egg_info writing SQLAlchemy_Utils.egg-info/PKG-INFO writing dependency_links to SQLAlchemy_Utils.egg-info/dependency_links.txt writing requirements to SQLAlchemy_Utils.egg-info/requires.txt writing top-level names to SQLAlchemy_Utils.egg-info/top_level.txt reading manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.pyc' found under directory 'tests' warning: no previously-included files matching '*.pyc' found under directory 'docs' no previously-included directories found matching 'docs/_build' warning: no previously-included files found matching 'docs/_themes/.git' adding license file 'LICENSE' writing manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.40.0) running dist_info writing SQLAlchemy_Utils.egg-info/PKG-INFO writing dependency_links to SQLAlchemy_Utils.egg-info/dependency_links.txt writing requirements to SQLAlchemy_Utils.egg-info/requires.txt writing top-level names to SQLAlchemy_Utils.egg-info/top_level.txt reading manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.pyc' found under directory 'tests' warning: no previously-included files matching '*.pyc' found under directory 'docs' no previously-included directories found matching 'docs/_build' warning: no previously-included files found matching 'docs/_themes/.git' adding license file 'LICENSE' writing manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/SQLAlchemy_Utils-0.41.1.dist-info' Handling SQLAlchemy (>=1.3) from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: SQLAlchemy (>=1.3) (installed: SQLAlchemy 1.4.49) Handling importlib-metadata ; python_version < "3.8" from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: importlib-metadata ; python_version < "3.8" Handling arrow (>=0.3.4) ; extra == 'arrow' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: arrow (>=0.3.4) ; extra == 'arrow' Handling Babel (>=1.3) ; extra == 'babel' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Babel (>=1.3) ; extra == 'babel' Handling colour (>=0.0.4) ; extra == 'color' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: colour (>=0.0.4) ; extra == 'color' Handling cryptography (>=0.6) ; extra == 'encrypted' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: cryptography (>=0.6) ; extra == 'encrypted' Handling intervals (>=0.7.1) ; extra == 'intervals' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: intervals (>=0.7.1) ; extra == 'intervals' Handling passlib (<2.0,>=1.6) ; extra == 'password' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: passlib (<2.0,>=1.6) ; extra == 'password' Handling pendulum (>=2.0.5) ; extra == 'pendulum' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pendulum (>=2.0.5) ; extra == 'pendulum' Handling phonenumbers (>=5.9.2) ; extra == 'phone' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: phonenumbers (>=5.9.2) ; extra == 'phone' Handling pytest (>=2.7.1) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: pytest (>=2.7.1) ; extra == 'test' (installed: pytest 7.3.2) Handling Pygments (>=1.2) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: Pygments (>=1.2) ; extra == 'test' (installed: Pygments 2.15.1) Handling Jinja2 (>=2.3) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: Jinja2 (>=2.3) ; extra == 'test' (installed: Jinja2 3.1.2) Handling docutils (>=0.10) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: docutils (>=0.10) ; extra == 'test' (installed: docutils 0.19) Handling flexmock (>=0.9.7) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: flexmock (>=0.9.7) ; extra == 'test' (installed: flexmock 0.11.3) Handling psycopg (>=3.1.8) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: psycopg (>=3.1.8) ; extra == 'test' (installed: psycopg 3.1.9) Handling psycopg2 (>=2.5.1) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: psycopg2 (>=2.5.1) ; extra == 'test' (installed: psycopg2 2.9.6) Handling pg8000 (>=1.12.4) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: pg8000 (>=1.12.4) ; extra == 'test' (installed: pg8000 1.26.1) Handling pytz (>=2014.2) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: pytz (>=2014.2) ; extra == 'test' (installed: pytz 2023.3) Handling python-dateutil (>=2.6) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: python-dateutil (>=2.6) ; extra == 'test' (installed: python-dateutil 2.8.2) Handling pymysql ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: pymysql ; extra == 'test' (installed: pymysql 1.1.0) Handling flake8 (>=2.4.0) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: flake8 (>=2.4.0) ; extra == 'test' (installed: flake8 6.0.0) Handling isort (>=4.2.2) ; extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: isort (>=4.2.2) ; extra == 'test' (installed: isort 5.12.0) Handling backports.zoneinfo ; (python_version < "3.9") and extra == 'test' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: backports.zoneinfo ; (python_version < "3.9") and extra == 'test' Handling Babel (>=1.3) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Babel (>=1.3) ; extra == 'test_all' Handling Jinja2 (>=2.3) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Jinja2 (>=2.3) ; extra == 'test_all' Handling Pygments (>=1.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: Pygments (>=1.2) ; extra == 'test_all' Handling arrow (>=0.3.4) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: arrow (>=0.3.4) ; extra == 'test_all' Handling colour (>=0.0.4) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: colour (>=0.0.4) ; extra == 'test_all' Handling cryptography (>=0.6) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: cryptography (>=0.6) ; extra == 'test_all' Handling docutils (>=0.10) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: docutils (>=0.10) ; extra == 'test_all' Handling flake8 (>=2.4.0) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: flake8 (>=2.4.0) ; extra == 'test_all' Handling flexmock (>=0.9.7) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: flexmock (>=0.9.7) ; extra == 'test_all' Handling furl (>=0.4.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: furl (>=0.4.1) ; extra == 'test_all' Handling intervals (>=0.7.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: intervals (>=0.7.1) ; extra == 'test_all' Handling isort (>=4.2.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: isort (>=4.2.2) ; extra == 'test_all' Handling passlib (<2.0,>=1.6) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: passlib (<2.0,>=1.6) ; extra == 'test_all' Handling pendulum (>=2.0.5) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pendulum (>=2.0.5) ; extra == 'test_all' Handling pg8000 (>=1.12.4) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pg8000 (>=1.12.4) ; extra == 'test_all' Handling phonenumbers (>=5.9.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: phonenumbers (>=5.9.2) ; extra == 'test_all' Handling psycopg2 (>=2.5.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: psycopg2 (>=2.5.1) ; extra == 'test_all' Handling psycopg (>=3.1.8) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: psycopg (>=3.1.8) ; extra == 'test_all' Handling pymysql ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pymysql ; extra == 'test_all' Handling pytest (>=2.7.1) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pytest (>=2.7.1) ; extra == 'test_all' Handling python-dateutil ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: python-dateutil ; extra == 'test_all' Handling python-dateutil (>=2.6) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: python-dateutil (>=2.6) ; extra == 'test_all' Handling pytz (>=2014.2) ; extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: pytz (>=2014.2) ; extra == 'test_all' Handling backports.zoneinfo ; (python_version < "3.9") and extra == 'test_all' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: backports.zoneinfo ; (python_version < "3.9") and extra == 'test_all' Handling python-dateutil ; extra == 'timezone' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: python-dateutil ; extra == 'timezone' Handling furl (>=0.4.1) ; extra == 'url' from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Ignoring alien requirement: furl (>=0.4.1) ; extra == 'url' + cat /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-buildrequires + rm -rfv SQLAlchemy_Utils-0.41.1.dist-info/ removed 'SQLAlchemy_Utils-0.41.1.dist-info/LICENSE' removed 'SQLAlchemy_Utils-0.41.1.dist-info/METADATA' removed 'SQLAlchemy_Utils-0.41.1.dist-info/top_level.txt' removed directory 'SQLAlchemy_Utils-0.41.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.2cXuOW + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd SQLAlchemy-Utils-0.41.1 + mkdir -p /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + TMPDIR=/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/pyproject-wheeldir Processing /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) running dist_info creating /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-y6_x0a2a/SQLAlchemy_Utils.egg-info writing /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-y6_x0a2a/SQLAlchemy_Utils.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-y6_x0a2a/SQLAlchemy_Utils.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-y6_x0a2a/SQLAlchemy_Utils.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-y6_x0a2a/SQLAlchemy_Utils.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-y6_x0a2a/SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-y6_x0a2a/SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.pyc' found under directory 'tests' warning: no previously-included files matching '*.pyc' found under directory 'docs' no previously-included directories found matching 'docs/_build' warning: no previously-included files found matching 'docs/_themes/.git' adding license file 'LICENSE' writing manifest file '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-y6_x0a2a/SQLAlchemy_Utils.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-y6_x0a2a/SQLAlchemy_Utils-0.41.1.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: SQLAlchemy-Utils Building wheel for SQLAlchemy-Utils (pyproject.toml): started Running command Building wheel for SQLAlchemy-Utils (pyproject.toml) running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/sqlalchemy_utils copying sqlalchemy_utils/view.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/utils.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/query_chain.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/proxy_dict.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/path.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/operators.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/observer.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/models.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/listeners.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/i18n.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/generic.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/expressions.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/exceptions.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/compat.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/asserts.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/aggregates.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/__init__.py -> build/lib/sqlalchemy_utils creating build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/weekdays.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/uuid.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/url.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/ts_vector.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/timezone.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/scalar_list.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/scalar_coercible.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/range.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/phone_number.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/pg_composite.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/password.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/ltree.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/locale.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/json.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/ip_address.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/email.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/currency.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/country.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/color.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/choice.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/bit.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/arrow.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/__init__.py -> build/lib/sqlalchemy_utils/types creating build/lib/sqlalchemy_utils/relationships copying sqlalchemy_utils/relationships/chained_join.py -> build/lib/sqlalchemy_utils/relationships copying sqlalchemy_utils/relationships/__init__.py -> build/lib/sqlalchemy_utils/relationships creating build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/weekdays.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/weekday.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/ltree.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/currency.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/country.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/__init__.py -> build/lib/sqlalchemy_utils/primitives creating build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/sort_query.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/render.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/orm.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/mock.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/foreign_keys.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/database.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/__init__.py -> build/lib/sqlalchemy_utils/functions creating build/lib/sqlalchemy_utils/types/enriched_datetime copying sqlalchemy_utils/types/enriched_datetime/pendulum_datetime.py -> build/lib/sqlalchemy_utils/types/enriched_datetime copying sqlalchemy_utils/types/enriched_datetime/pendulum_date.py -> build/lib/sqlalchemy_utils/types/enriched_datetime copying sqlalchemy_utils/types/enriched_datetime/enriched_datetime_type.py -> build/lib/sqlalchemy_utils/types/enriched_datetime copying sqlalchemy_utils/types/enriched_datetime/enriched_date_type.py -> build/lib/sqlalchemy_utils/types/enriched_datetime copying sqlalchemy_utils/types/enriched_datetime/arrow_datetime.py -> build/lib/sqlalchemy_utils/types/enriched_datetime copying sqlalchemy_utils/types/enriched_datetime/__init__.py -> build/lib/sqlalchemy_utils/types/enriched_datetime creating build/lib/sqlalchemy_utils/types/encrypted copying sqlalchemy_utils/types/encrypted/padding.py -> build/lib/sqlalchemy_utils/types/encrypted copying sqlalchemy_utils/types/encrypted/encrypted_type.py -> build/lib/sqlalchemy_utils/types/encrypted copying sqlalchemy_utils/types/encrypted/__init__.py -> build/lib/sqlalchemy_utils/types/encrypted running egg_info writing SQLAlchemy_Utils.egg-info/PKG-INFO writing dependency_links to SQLAlchemy_Utils.egg-info/dependency_links.txt writing requirements to SQLAlchemy_Utils.egg-info/requires.txt writing top-level names to SQLAlchemy_Utils.egg-info/top_level.txt reading manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.pyc' found under directory 'tests' warning: no previously-included files matching '*.pyc' found under directory 'docs' no previously-included directories found matching 'docs/_build' warning: no previously-included files found matching 'docs/_themes/.git' adding license file 'LICENSE' writing manifest file 'SQLAlchemy_Utils.egg-info/SOURCES.txt' 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/sqlalchemy_utils creating build/bdist.linux-x86_64/wheel/sqlalchemy_utils/functions copying build/lib/sqlalchemy_utils/functions/__init__.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/functions copying build/lib/sqlalchemy_utils/functions/database.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/functions copying build/lib/sqlalchemy_utils/functions/foreign_keys.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/functions copying build/lib/sqlalchemy_utils/functions/mock.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/functions copying build/lib/sqlalchemy_utils/functions/orm.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/functions copying build/lib/sqlalchemy_utils/functions/render.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/functions copying build/lib/sqlalchemy_utils/functions/sort_query.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/functions creating build/bdist.linux-x86_64/wheel/sqlalchemy_utils/primitives copying build/lib/sqlalchemy_utils/primitives/__init__.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/primitives copying build/lib/sqlalchemy_utils/primitives/country.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/primitives copying build/lib/sqlalchemy_utils/primitives/currency.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/primitives copying build/lib/sqlalchemy_utils/primitives/ltree.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/primitives copying build/lib/sqlalchemy_utils/primitives/weekday.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/primitives copying build/lib/sqlalchemy_utils/primitives/weekdays.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/primitives creating build/bdist.linux-x86_64/wheel/sqlalchemy_utils/relationships copying build/lib/sqlalchemy_utils/relationships/__init__.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/relationships copying build/lib/sqlalchemy_utils/relationships/chained_join.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/relationships creating build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types creating build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/encrypted copying build/lib/sqlalchemy_utils/types/encrypted/__init__.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/encrypted copying build/lib/sqlalchemy_utils/types/encrypted/encrypted_type.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/encrypted copying build/lib/sqlalchemy_utils/types/encrypted/padding.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/encrypted creating build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/enriched_datetime copying build/lib/sqlalchemy_utils/types/enriched_datetime/__init__.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/enriched_datetime copying build/lib/sqlalchemy_utils/types/enriched_datetime/arrow_datetime.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/enriched_datetime copying build/lib/sqlalchemy_utils/types/enriched_datetime/enriched_date_type.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/enriched_datetime copying build/lib/sqlalchemy_utils/types/enriched_datetime/enriched_datetime_type.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/enriched_datetime copying build/lib/sqlalchemy_utils/types/enriched_datetime/pendulum_date.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/enriched_datetime copying build/lib/sqlalchemy_utils/types/enriched_datetime/pendulum_datetime.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types/enriched_datetime copying build/lib/sqlalchemy_utils/types/__init__.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/arrow.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/bit.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/choice.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/color.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/country.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/currency.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/email.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/ip_address.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/json.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/locale.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/ltree.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/password.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/pg_composite.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/phone_number.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/range.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/scalar_coercible.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/scalar_list.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/timezone.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/ts_vector.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/url.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/uuid.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/types/weekdays.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils/types copying build/lib/sqlalchemy_utils/__init__.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/aggregates.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/asserts.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/compat.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/exceptions.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/expressions.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/generic.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/i18n.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/listeners.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/models.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/observer.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/operators.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/path.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/proxy_dict.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/query_chain.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/utils.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils copying build/lib/sqlalchemy_utils/view.py -> build/bdist.linux-x86_64/wheel/sqlalchemy_utils running install_egg_info Copying SQLAlchemy_Utils.egg-info to build/bdist.linux-x86_64/wheel/SQLAlchemy_Utils-0.41.1-py3.12.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/SQLAlchemy_Utils-0.41.1.dist-info/WHEEL creating '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-wheel-pvotrhab/.tmp-1cxblbgz/SQLAlchemy_Utils-0.41.1-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'sqlalchemy_utils/__init__.py' adding 'sqlalchemy_utils/aggregates.py' adding 'sqlalchemy_utils/asserts.py' adding 'sqlalchemy_utils/compat.py' adding 'sqlalchemy_utils/exceptions.py' adding 'sqlalchemy_utils/expressions.py' adding 'sqlalchemy_utils/generic.py' adding 'sqlalchemy_utils/i18n.py' adding 'sqlalchemy_utils/listeners.py' adding 'sqlalchemy_utils/models.py' adding 'sqlalchemy_utils/observer.py' adding 'sqlalchemy_utils/operators.py' adding 'sqlalchemy_utils/path.py' adding 'sqlalchemy_utils/proxy_dict.py' adding 'sqlalchemy_utils/query_chain.py' adding 'sqlalchemy_utils/utils.py' adding 'sqlalchemy_utils/view.py' adding 'sqlalchemy_utils/functions/__init__.py' adding 'sqlalchemy_utils/functions/database.py' adding 'sqlalchemy_utils/functions/foreign_keys.py' adding 'sqlalchemy_utils/functions/mock.py' adding 'sqlalchemy_utils/functions/orm.py' adding 'sqlalchemy_utils/functions/render.py' adding 'sqlalchemy_utils/functions/sort_query.py' adding 'sqlalchemy_utils/primitives/__init__.py' adding 'sqlalchemy_utils/primitives/country.py' adding 'sqlalchemy_utils/primitives/currency.py' adding 'sqlalchemy_utils/primitives/ltree.py' adding 'sqlalchemy_utils/primitives/weekday.py' adding 'sqlalchemy_utils/primitives/weekdays.py' adding 'sqlalchemy_utils/relationships/__init__.py' adding 'sqlalchemy_utils/relationships/chained_join.py' adding 'sqlalchemy_utils/types/__init__.py' adding 'sqlalchemy_utils/types/arrow.py' adding 'sqlalchemy_utils/types/bit.py' adding 'sqlalchemy_utils/types/choice.py' adding 'sqlalchemy_utils/types/color.py' adding 'sqlalchemy_utils/types/country.py' adding 'sqlalchemy_utils/types/currency.py' adding 'sqlalchemy_utils/types/email.py' adding 'sqlalchemy_utils/types/ip_address.py' adding 'sqlalchemy_utils/types/json.py' adding 'sqlalchemy_utils/types/locale.py' adding 'sqlalchemy_utils/types/ltree.py' adding 'sqlalchemy_utils/types/password.py' adding 'sqlalchemy_utils/types/pg_composite.py' adding 'sqlalchemy_utils/types/phone_number.py' adding 'sqlalchemy_utils/types/range.py' adding 'sqlalchemy_utils/types/scalar_coercible.py' adding 'sqlalchemy_utils/types/scalar_list.py' adding 'sqlalchemy_utils/types/timezone.py' adding 'sqlalchemy_utils/types/ts_vector.py' adding 'sqlalchemy_utils/types/url.py' adding 'sqlalchemy_utils/types/uuid.py' adding 'sqlalchemy_utils/types/weekdays.py' adding 'sqlalchemy_utils/types/encrypted/__init__.py' adding 'sqlalchemy_utils/types/encrypted/encrypted_type.py' adding 'sqlalchemy_utils/types/encrypted/padding.py' adding 'sqlalchemy_utils/types/enriched_datetime/__init__.py' adding 'sqlalchemy_utils/types/enriched_datetime/arrow_datetime.py' adding 'sqlalchemy_utils/types/enriched_datetime/enriched_date_type.py' adding 'sqlalchemy_utils/types/enriched_datetime/enriched_datetime_type.py' adding 'sqlalchemy_utils/types/enriched_datetime/pendulum_date.py' adding 'sqlalchemy_utils/types/enriched_datetime/pendulum_datetime.py' adding 'SQLAlchemy_Utils-0.41.1.dist-info/LICENSE' adding 'SQLAlchemy_Utils-0.41.1.dist-info/METADATA' adding 'SQLAlchemy_Utils-0.41.1.dist-info/WHEEL' adding 'SQLAlchemy_Utils-0.41.1.dist-info/top_level.txt' adding 'SQLAlchemy_Utils-0.41.1.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Building wheel for SQLAlchemy-Utils (pyproject.toml): finished with status 'done' Created wheel for SQLAlchemy-Utils: filename=SQLAlchemy_Utils-0.41.1-py3-none-any.whl size=92588 sha256=f604f35d03dfe7ca22fb06f1b2bae504e98aea662da9ec616ad3645ed2c63b80 Stored in directory: /builddir/.cache/pip/wheels/38/ea/ea/2f66a23429354a167780b4f59acbec2fc5ff5c02ca29617ff0 Successfully built SQLAlchemy-Utils + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.mN9V1W + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 ++ dirname /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd SQLAlchemy-Utils-0.41.1 ++ ls /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/pyproject-wheeldir/SQLAlchemy_Utils-0.41.1-py3-none-any.whl ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' ++ xargs basename --multiple + specifier=SQLAlchemy_Utils==0.41.1 + TMPDIR=/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 --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/SQLAlchemy-Utils-0.41.1/pyproject-wheeldir SQLAlchemy_Utils==0.41.1 Using pip 23.1.2 from /usr/lib/python3.12/site-packages/pip (python 3.12) Looking in links: /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/pyproject-wheeldir Processing ./pyproject-wheeldir/SQLAlchemy_Utils-0.41.1-py3-none-any.whl Installing collected packages: SQLAlchemy_Utils Successfully installed SQLAlchemy_Utils-0.41.1 + '[' -d /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/bin ']' + rm -f /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12/site-packages ']' + site_dirs+=("/usr/lib/python3.12/site-packages") + '[' /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib64/python3.12/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.12/site-packages/SQLAlchemy_Utils-0.41.1.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12/site-packages/SQLAlchemy_Utils-0.41.1.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 --record /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12/site-packages/SQLAlchemy_Utils-0.41.1.dist-info/RECORD --output /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12/site-packages/SQLAlchemy_Utils-0.41.1.dist-info/RECORD removed '/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12/site-packages/SQLAlchemy_Utils-0.41.1.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12/site-packages/SQLAlchemy_Utils-0.41.1.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12/site-packages/SQLAlchemy_Utils-0.41.1.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_PERCENTAGES_COUNT=2 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-files --output-modules /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 --sitelib /usr/lib/python3.12/site-packages --sitearch /usr/lib64/python3.12/site-packages --python-version 3.12 --pyproject-record /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64-pyproject-record --prefix /usr sqlalchemy_utils + /usr/bin/find-debuginfo -j2 --strict-build-id -m -i --build-id-seed 0.41.1-2.fc39 --unique-debug-suffix -0.41.1-2.fc39.x86_64 --unique-debug-src-base python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1 find-debuginfo: starting Extracting debug info from 0 files Creating .debug symlinks for symlinks to ELF files find: 'debug': No such file or directory find-debuginfo: done + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j2 Bytecompiling .py files below /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12 using python3.12 + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.oHVuKM + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd SQLAlchemy-Utils-0.41.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + PATH=/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/lib/python3.12/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=2 + /usr/bin/pytest ============================= test session starts ============================== platform linux -- Python 3.12.0b4, pytest-7.3.2, pluggy-1.0.0 rootdir: /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1 collected 2684 items tests/test_asserts.py EEEEEEEEEEEEEEEEE [ 0%] tests/test_auto_delete_orphans.py ... [ 0%] tests/test_case_insensitive_comparator.py .... [ 0%] tests/test_compat.py ........ [ 1%] tests/test_expressions.py ..... [ 1%] tests/test_instant_defaults_listener.py ... [ 1%] tests/test_instrumented_list.py .. [ 1%] tests/test_models.py ..... [ 1%] tests/test_path.py ............................ [ 2%] tests/test_proxy_dict.py ........ [ 3%] tests/test_query_chain.py ......... [ 3%] tests/test_translation_hybrid.py sssssssssssss [ 3%] tests/test_views.py EEEEEE.x [ 4%] tests/aggregate/test_backrefs.py ... [ 4%] tests/aggregate/test_custom_select_expressions.py EE [ 4%] tests/aggregate/test_join_table_inheritance.py .EEEE [ 4%] tests/aggregate/test_m2m.py EE [ 4%] tests/aggregate/test_m2m_m2m.py E [ 4%] tests/aggregate/test_multiple_aggregates_per_class.py ... [ 4%] tests/aggregate/test_o2m_m2m.py E [ 4%] tests/aggregate/test_o2m_o2m.py E [ 4%] tests/aggregate/test_o2m_o2m_o2m.py EE [ 4%] tests/aggregate/test_search_vectors.py E [ 4%] tests/aggregate/test_simple_paths.py ... [ 5%] tests/aggregate/test_with_column_alias.py ... [ 5%] tests/aggregate/test_with_ondelete_cascade.py E [ 5%] tests/functions/test_cast_if.py ...... [ 5%] tests/functions/test_database.py ....FFFFFsFFFs [ 5%] tests/functions/test_dependent_objects.py ....... [ 6%] tests/functions/test_escape_like.py . [ 6%] tests/functions/test_get_bind.py .... [ 6%] tests/functions/test_get_class_by_table.py ..... [ 6%] tests/functions/test_get_column_key.py ... [ 6%] tests/functions/test_get_columns.py ......... [ 7%] tests/functions/test_get_hybrid_properties.py ... [ 7%] tests/functions/test_get_mapper.py ................ [ 7%] tests/functions/test_get_primary_keys.py ..... [ 7%] tests/functions/test_get_referencing_foreign_keys.py .... [ 8%] tests/functions/test_get_tables.py ........ [ 8%] tests/functions/test_get_type.py ...... [ 8%] tests/functions/test_getdotattr.py ... [ 8%] tests/functions/test_has_changes.py ...... [ 8%] tests/functions/test_has_index.py ........ [ 9%] tests/functions/test_has_unique_index.py ......... [ 9%] tests/functions/test_identity.py ...... [ 9%] tests/functions/test_is_loaded.py .. [ 9%] tests/functions/test_json_sql.py EEEEEEEE [ 10%] tests/functions/test_jsonb_sql.py EEEEEEEE [ 10%] tests/functions/test_make_order_by_deterministic.py .......... [ 10%] tests/functions/test_merge_references.py ..... [ 11%] tests/functions/test_naturally_equivalent.py .. [ 11%] tests/functions/test_non_indexed_foreign_keys.py . [ 11%] tests/functions/test_quote.py .. [ 11%] tests/functions/test_render.py ...... [ 11%] tests/functions/test_table_name.py ... [ 11%] tests/generic_relationship/test_abstract_base_class.py ....... [ 11%] tests/generic_relationship/test_column_aliases.py ....... [ 12%] tests/generic_relationship/test_composite_keys.py ....... [ 12%] tests/generic_relationship/test_hybrid_properties.py . [ 12%] tests/generic_relationship/test_single_table_inheritance.py ........ [ 12%] tests/observes/test_column_property.py EEEE [ 12%] tests/observes/test_dynamic_relationship.py EE [ 12%] tests/observes/test_m2m_m2m_m2m.py EEEEE [ 13%] tests/observes/test_o2m_o2m_o2m.py EEEEE [ 13%] tests/observes/test_o2m_o2o_o2m.py EEEEE [ 13%] tests/observes/test_o2o_o2o.py E [ 13%] tests/observes/test_o2o_o2o_o2o.py EEE [ 13%] tests/primitives/test_country.py sssssssssssssssssssssss [ 14%] tests/primitives/test_currency.py sssssssssssss [ 14%] tests/primitives/test_ltree.py ......................................... [ 16%] ....................... [ 17%] tests/primitives/test_weekdays.py ssssssssssssssssssssssssssssssssssssss [ 18%] [ 18%] tests/relationships/test_chained_join.py ......... [ 19%] tests/relationships/test_select_correlated_expression.py EEEEEEEEEEE [ 19%] tests/types/test_arrow.py sssssss [ 19%] tests/types/test_choice.py ................. [ 20%] tests/types/test_color.py ..... [ 20%] tests/types/test_composite.py EEEEsssssssssEE [ 21%] tests/types/test_country.py ssss [ 21%] tests/types/test_currency.py ssss [ 21%] tests/types/test_date_range.py ssssssssssss [ 21%] tests/types/test_datetime_range.py sssssssssss [ 22%] tests/types/test_email.py .... [ 22%] tests/types/test_encrypted.py ssssssssssssssssssssssssssssssssssssssssss [ 24%] sssssssssssssssssssssss......sssssssssssssssssss [ 25%] tests/types/test_enriched_date_pendulum.py ssssss [ 26%] tests/types/test_enriched_datetime_arrow.py sssssss [ 26%] tests/types/test_enriched_datetime_pendulum.py sssss [ 26%] tests/types/test_int_range.py ssssssssssssssssssssssssssssssssssssssssss [ 28%] sssssssssssssss [ 28%] tests/types/test_ip_address.py .. [ 28%] tests/types/test_json.py .....EEEEE [ 29%] tests/types/test_locale.py sssssss [ 29%] tests/types/test_ltree.py E.EE [ 29%] tests/types/test_numeric_range.py ssssssssssssssssss [ 30%] tests/types/test_password.py sssssssssssssssssss [ 30%] tests/types/test_phonenumber.py ......................... [ 31%] tests/types/test_scalar_list.py ..... [ 31%] tests/types/test_timezone.py ........................................... [ 33%] ........................................................................ [ 36%] ........................................................................ [ 38%] ........................................................................ [ 41%] ........................................................................ [ 44%] ........................................................................ [ 46%] ........................................................................ [ 49%] ........................................................................ [ 52%] ........................................................................ [ 55%] ........................................................................ [ 57%] ........................................................................ [ 60%] ........................................................................ [ 63%] ........................................................................ [ 65%] ........................................................................ [ 68%] ........................................................................ [ 71%] ........................................................................ [ 73%] ........................................................................ [ 76%] ........................................................................ [ 79%] ........................................................................ [ 81%] ........................................................................ [ 84%] ........................................................................ [ 87%] ........................................................................ [ 89%] ........................................................................ [ 92%] ........................................................................ [ 95%] ........................................................................ [ 97%] ........................... [ 98%] tests/types/test_tsvector.py .E.E.EE [ 99%] tests/types/test_url.py sss [ 99%] tests/types/test_uuid.py ..... [ 99%] tests/types/test_weekdays.py sssssssss [ 99%] tests/types/encrypted/test_padding.py .... [100%] ==================================== ERRORS ==================================== _____ ERROR at setup of TestAssertMaxLengthWithArray.test_with_max_length ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestAssertMaxLengthWithArray.test_smaller_than_max_length __ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __ ERROR at setup of TestAssertMaxLengthWithArray.test_bigger_than_max_length __ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______ ERROR at setup of TestAssertNonNullable.test_non_nullable_column _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _________ ERROR at setup of TestAssertNonNullable.test_nullable_column _________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __________ ERROR at setup of TestAssertNullable.test_nullable_column ___________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ________ ERROR at setup of TestAssertNullable.test_non_nullable_column _________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __________ ERROR at setup of TestAssertMaxLength.test_with_max_length __________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestAssertMaxLength.test_with_non_nullable_column ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ______ ERROR at setup of TestAssertMaxLength.test_smaller_than_max_length ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ______ ERROR at setup of TestAssertMaxLength.test_bigger_than_max_length _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ___________ ERROR at setup of TestAssertMinValue.test_with_min_value ___________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______ ERROR at setup of TestAssertMinValue.test_smaller_than_min_value _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______ ERROR at setup of TestAssertMinValue.test_bigger_than_min_value ________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ___________ ERROR at setup of TestAssertMaxValue.test_with_min_value ___________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______ ERROR at setup of TestAssertMaxValue.test_smaller_than_max_value _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______ ERROR at setup of TestAssertMaxValue.test_bigger_than_max_value ________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ____ ERROR at setup of TestMaterializedViews.test_refresh_materialized_view ____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __________ ERROR at setup of TestMaterializedViews.test_querying_view __________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestPostgresTrivialView.test_life_cycle_no_cascade _____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ______ ERROR at setup of TestPostgresTrivialView.test_life_cycle_cascade _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ______ ERROR at setup of TestMySqlTrivialView.test_life_cycle_no_cascade _______ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: > sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) /usr/lib/python3.12/site-packages/pymysql/connections.py:644: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 3306), timeout = 10, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) sock.connect(sa) # Break explicitly a reference cycle exceptions.clear() return sock except error as exc: if not all_errors: exceptions.clear() # raise only the last error exceptions.append(exc) if sock is not None: sock.close() if len(exceptions): try: if not all_errors: > raise exceptions[0] /usr/lib64/python3.12/socket.py:852: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 3306), timeout = 10, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib64/python3.12/socket.py:837: ConnectionRefusedError During handling of the above exception, another exception occurred: self = Engine(mysql+pymysql://root@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'client_flag': 2, 'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'root'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __init__( self, *, user=None, # The first four arguments is based on DB-API 2.0 recommendation. password="", host=None, database=None, unix_socket=None, port=0, charset="", collation=None, sql_mode=None, read_default_file=None, conv=None, use_unicode=True, client_flag=0, cursorclass=Cursor, init_command=None, connect_timeout=10, read_default_group=None, autocommit=False, local_infile=False, max_allowed_packet=16 * 1024 * 1024, defer_connect=False, auth_plugin_map=None, read_timeout=None, write_timeout=None, bind_address=None, binary_prefix=False, program_name=None, server_public_key=None, ssl=None, ssl_ca=None, ssl_cert=None, ssl_disabled=None, ssl_key=None, ssl_verify_cert=None, ssl_verify_identity=None, compress=None, # not supported named_pipe=None, # not supported passwd=None, # deprecated db=None, # deprecated ): if db is not None and database is None: # We will raise warning in 2022 or later. # See https://github.com/PyMySQL/PyMySQL/issues/939 # warnings.warn("'db' is deprecated, use 'database'", DeprecationWarning, 3) database = db if passwd is not None and not password: # We will raise warning in 2022 or later. # See https://github.com/PyMySQL/PyMySQL/issues/939 # warnings.warn( # "'passwd' is deprecated, use 'password'", DeprecationWarning, 3 # ) password = passwd if compress or named_pipe: raise NotImplementedError( "compress and named_pipe arguments are not supported" ) self._local_infile = bool(local_infile) if self._local_infile: client_flag |= CLIENT.LOCAL_FILES if read_default_group and not read_default_file: if sys.platform.startswith("win"): read_default_file = "c:\\my.ini" else: read_default_file = "/etc/my.cnf" if read_default_file: if not read_default_group: read_default_group = "client" cfg = Parser() cfg.read(os.path.expanduser(read_default_file)) def _config(key, arg): if arg: return arg try: return cfg.get(read_default_group, key) except Exception: return arg user = _config("user", user) password = _config("password", password) host = _config("host", host) database = _config("database", database) unix_socket = _config("socket", unix_socket) port = int(_config("port", port)) bind_address = _config("bind-address", bind_address) charset = _config("default-character-set", charset) if not ssl: ssl = {} if isinstance(ssl, dict): for key in ["ca", "capath", "cert", "key", "cipher"]: value = _config("ssl-" + key, ssl.get(key)) if value: ssl[key] = value self.ssl = False if not ssl_disabled: if ssl_ca or ssl_cert or ssl_key or ssl_verify_cert or ssl_verify_identity: ssl = { "ca": ssl_ca, "check_hostname": bool(ssl_verify_identity), "verify_mode": ssl_verify_cert if ssl_verify_cert is not None else False, } if ssl_cert is not None: ssl["cert"] = ssl_cert if ssl_key is not None: ssl["key"] = ssl_key if ssl: if not SSL_ENABLED: raise NotImplementedError("ssl module not found") self.ssl = True client_flag |= CLIENT.SSL self.ctx = self._create_ssl_ctx(ssl) self.host = host or "localhost" self.port = port or 3306 if type(self.port) is not int: raise ValueError("port should be of type int") self.user = user or DEFAULT_USER self.password = password or b"" if isinstance(self.password, str): self.password = self.password.encode("latin1") self.db = database self.unix_socket = unix_socket self.bind_address = bind_address if not (0 < connect_timeout <= 31536000): raise ValueError("connect_timeout should be >0 and <=31536000") self.connect_timeout = connect_timeout or None if read_timeout is not None and read_timeout <= 0: raise ValueError("read_timeout should be > 0") self._read_timeout = read_timeout if write_timeout is not None and write_timeout <= 0: raise ValueError("write_timeout should be > 0") self._write_timeout = write_timeout self.charset = charset or DEFAULT_CHARSET self.collation = collation self.use_unicode = use_unicode self.encoding = charset_by_name(self.charset).encoding client_flag |= CLIENT.CAPABILITIES if self.db: client_flag |= CLIENT.CONNECT_WITH_DB self.client_flag = client_flag self.cursorclass = cursorclass self._result = None self._affected_rows = 0 self.host_info = "Not connected" # specified autocommit mode. None means use server default. self.autocommit_mode = autocommit if conv is None: conv = converters.conversions # Need for MySQLdb compatibility. self.encoders = {k: v for (k, v) in conv.items() if type(k) is not int} self.decoders = {k: v for (k, v) in conv.items() if type(k) is int} self.sql_mode = sql_mode self.init_command = init_command self.max_allowed_packet = max_allowed_packet self._auth_plugin_map = auth_plugin_map or {} self._binary_prefix = binary_prefix self.server_public_key = server_public_key self._connect_attrs = { "_client_name": "pymysql", "_client_version": VERSION_STRING, "_pid": str(os.getpid()), } if program_name: self._connect_attrs["program_name"] = program_name if defer_connect: self._sock = None else: > self.connect() /usr/lib/python3.12/site-packages/pymysql/connections.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) break except OSError as e: if e.errno == errno.EINTR: continue raise self.host_info = "socket %s:%d" % (self.host, self.port) if DEBUG: print("connected using socket") sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.settimeout(None) self._sock = sock self._rfile = sock.makefile("rb") self._next_seq_id = 0 self._get_server_information() self._request_authentication() # Send "SET NAMES" query on init for: # - Ensure charaset (and collation) is set to the server. # - collation_id in handshake packet may be ignored. # - If collation is not specified, we don't know what is server's # default collation for the charset. For example, default collation # of utf8mb4 is: # - MySQL 5.7, MariaDB 10.x: utf8mb4_general_ci # - MySQL 8.0: utf8mb4_0900_ai_ci # # Reference: # - https://github.com/PyMySQL/PyMySQL/issues/1092 # - https://github.com/wagtail/wagtail/issues/9477 # - https://zenn.dev/methane/articles/2023-mysql-collation (Japanese) self.set_character_set(self.charset, self.collation) if self.sql_mode is not None: c = self.cursor() c.execute("SET sql_mode=%s", (self.sql_mode,)) c.close() if self.init_command is not None: c = self.cursor() c.execute(self.init_command) c.close() if self.autocommit_mode is not None: self.autocommit(self.autocommit_mode) except BaseException as e: self._rfile = None if sock is not None: try: sock.close() except: # noqa pass if isinstance(e, (OSError, IOError)): exc = err.OperationalError( CR.CR_CONN_HOST_ERROR, f"Can't connect to MySQL server on {self.host!r} ({e})", ) # Keep original exception and traceback to investigate error. exc.original_exception = e exc.traceback = traceback.format_exc() if DEBUG: print(exc.traceback) > raise exc E pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)") /usr/lib/python3.12/site-packages/pymysql/connections.py:711: OperationalError The above exception was the direct cause of the following exception: engine = Engine(mysql+pymysql://root@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) /usr/lib/python3.12/site-packages/pymysql/connections.py:358: in __init__ self.connect() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) break except OSError as e: if e.errno == errno.EINTR: continue raise self.host_info = "socket %s:%d" % (self.host, self.port) if DEBUG: print("connected using socket") sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.settimeout(None) self._sock = sock self._rfile = sock.makefile("rb") self._next_seq_id = 0 self._get_server_information() self._request_authentication() # Send "SET NAMES" query on init for: # - Ensure charaset (and collation) is set to the server. # - collation_id in handshake packet may be ignored. # - If collation is not specified, we don't know what is server's # default collation for the charset. For example, default collation # of utf8mb4 is: # - MySQL 5.7, MariaDB 10.x: utf8mb4_general_ci # - MySQL 8.0: utf8mb4_0900_ai_ci # # Reference: # - https://github.com/PyMySQL/PyMySQL/issues/1092 # - https://github.com/wagtail/wagtail/issues/9477 # - https://zenn.dev/methane/articles/2023-mysql-collation (Japanese) self.set_character_set(self.charset, self.collation) if self.sql_mode is not None: c = self.cursor() c.execute("SET sql_mode=%s", (self.sql_mode,)) c.close() if self.init_command is not None: c = self.cursor() c.execute(self.init_command) c.close() if self.autocommit_mode is not None: self.autocommit(self.autocommit_mode) except BaseException as e: self._rfile = None if sock is not None: try: sock.close() except: # noqa pass if isinstance(e, (OSError, IOError)): exc = err.OperationalError( CR.CR_CONN_HOST_ERROR, f"Can't connect to MySQL server on {self.host!r} ({e})", ) # Keep original exception and traceback to investigate error. exc.original_exception = e exc.traceback = traceback.format_exc() if DEBUG: print(exc.traceback) > raise exc E sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)") E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib/python3.12/site-packages/pymysql/connections.py:711: OperationalError ________ ERROR at setup of TestMySqlTrivialView.test_life_cycle_cascade ________ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: > sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) /usr/lib/python3.12/site-packages/pymysql/connections.py:644: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 3306), timeout = 10, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) sock.connect(sa) # Break explicitly a reference cycle exceptions.clear() return sock except error as exc: if not all_errors: exceptions.clear() # raise only the last error exceptions.append(exc) if sock is not None: sock.close() if len(exceptions): try: if not all_errors: > raise exceptions[0] /usr/lib64/python3.12/socket.py:852: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 3306), timeout = 10, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib64/python3.12/socket.py:837: ConnectionRefusedError During handling of the above exception, another exception occurred: self = Engine(mysql+pymysql://root@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'client_flag': 2, 'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'root'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __init__( self, *, user=None, # The first four arguments is based on DB-API 2.0 recommendation. password="", host=None, database=None, unix_socket=None, port=0, charset="", collation=None, sql_mode=None, read_default_file=None, conv=None, use_unicode=True, client_flag=0, cursorclass=Cursor, init_command=None, connect_timeout=10, read_default_group=None, autocommit=False, local_infile=False, max_allowed_packet=16 * 1024 * 1024, defer_connect=False, auth_plugin_map=None, read_timeout=None, write_timeout=None, bind_address=None, binary_prefix=False, program_name=None, server_public_key=None, ssl=None, ssl_ca=None, ssl_cert=None, ssl_disabled=None, ssl_key=None, ssl_verify_cert=None, ssl_verify_identity=None, compress=None, # not supported named_pipe=None, # not supported passwd=None, # deprecated db=None, # deprecated ): if db is not None and database is None: # We will raise warning in 2022 or later. # See https://github.com/PyMySQL/PyMySQL/issues/939 # warnings.warn("'db' is deprecated, use 'database'", DeprecationWarning, 3) database = db if passwd is not None and not password: # We will raise warning in 2022 or later. # See https://github.com/PyMySQL/PyMySQL/issues/939 # warnings.warn( # "'passwd' is deprecated, use 'password'", DeprecationWarning, 3 # ) password = passwd if compress or named_pipe: raise NotImplementedError( "compress and named_pipe arguments are not supported" ) self._local_infile = bool(local_infile) if self._local_infile: client_flag |= CLIENT.LOCAL_FILES if read_default_group and not read_default_file: if sys.platform.startswith("win"): read_default_file = "c:\\my.ini" else: read_default_file = "/etc/my.cnf" if read_default_file: if not read_default_group: read_default_group = "client" cfg = Parser() cfg.read(os.path.expanduser(read_default_file)) def _config(key, arg): if arg: return arg try: return cfg.get(read_default_group, key) except Exception: return arg user = _config("user", user) password = _config("password", password) host = _config("host", host) database = _config("database", database) unix_socket = _config("socket", unix_socket) port = int(_config("port", port)) bind_address = _config("bind-address", bind_address) charset = _config("default-character-set", charset) if not ssl: ssl = {} if isinstance(ssl, dict): for key in ["ca", "capath", "cert", "key", "cipher"]: value = _config("ssl-" + key, ssl.get(key)) if value: ssl[key] = value self.ssl = False if not ssl_disabled: if ssl_ca or ssl_cert or ssl_key or ssl_verify_cert or ssl_verify_identity: ssl = { "ca": ssl_ca, "check_hostname": bool(ssl_verify_identity), "verify_mode": ssl_verify_cert if ssl_verify_cert is not None else False, } if ssl_cert is not None: ssl["cert"] = ssl_cert if ssl_key is not None: ssl["key"] = ssl_key if ssl: if not SSL_ENABLED: raise NotImplementedError("ssl module not found") self.ssl = True client_flag |= CLIENT.SSL self.ctx = self._create_ssl_ctx(ssl) self.host = host or "localhost" self.port = port or 3306 if type(self.port) is not int: raise ValueError("port should be of type int") self.user = user or DEFAULT_USER self.password = password or b"" if isinstance(self.password, str): self.password = self.password.encode("latin1") self.db = database self.unix_socket = unix_socket self.bind_address = bind_address if not (0 < connect_timeout <= 31536000): raise ValueError("connect_timeout should be >0 and <=31536000") self.connect_timeout = connect_timeout or None if read_timeout is not None and read_timeout <= 0: raise ValueError("read_timeout should be > 0") self._read_timeout = read_timeout if write_timeout is not None and write_timeout <= 0: raise ValueError("write_timeout should be > 0") self._write_timeout = write_timeout self.charset = charset or DEFAULT_CHARSET self.collation = collation self.use_unicode = use_unicode self.encoding = charset_by_name(self.charset).encoding client_flag |= CLIENT.CAPABILITIES if self.db: client_flag |= CLIENT.CONNECT_WITH_DB self.client_flag = client_flag self.cursorclass = cursorclass self._result = None self._affected_rows = 0 self.host_info = "Not connected" # specified autocommit mode. None means use server default. self.autocommit_mode = autocommit if conv is None: conv = converters.conversions # Need for MySQLdb compatibility. self.encoders = {k: v for (k, v) in conv.items() if type(k) is not int} self.decoders = {k: v for (k, v) in conv.items() if type(k) is int} self.sql_mode = sql_mode self.init_command = init_command self.max_allowed_packet = max_allowed_packet self._auth_plugin_map = auth_plugin_map or {} self._binary_prefix = binary_prefix self.server_public_key = server_public_key self._connect_attrs = { "_client_name": "pymysql", "_client_version": VERSION_STRING, "_pid": str(os.getpid()), } if program_name: self._connect_attrs["program_name"] = program_name if defer_connect: self._sock = None else: > self.connect() /usr/lib/python3.12/site-packages/pymysql/connections.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) break except OSError as e: if e.errno == errno.EINTR: continue raise self.host_info = "socket %s:%d" % (self.host, self.port) if DEBUG: print("connected using socket") sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.settimeout(None) self._sock = sock self._rfile = sock.makefile("rb") self._next_seq_id = 0 self._get_server_information() self._request_authentication() # Send "SET NAMES" query on init for: # - Ensure charaset (and collation) is set to the server. # - collation_id in handshake packet may be ignored. # - If collation is not specified, we don't know what is server's # default collation for the charset. For example, default collation # of utf8mb4 is: # - MySQL 5.7, MariaDB 10.x: utf8mb4_general_ci # - MySQL 8.0: utf8mb4_0900_ai_ci # # Reference: # - https://github.com/PyMySQL/PyMySQL/issues/1092 # - https://github.com/wagtail/wagtail/issues/9477 # - https://zenn.dev/methane/articles/2023-mysql-collation (Japanese) self.set_character_set(self.charset, self.collation) if self.sql_mode is not None: c = self.cursor() c.execute("SET sql_mode=%s", (self.sql_mode,)) c.close() if self.init_command is not None: c = self.cursor() c.execute(self.init_command) c.close() if self.autocommit_mode is not None: self.autocommit(self.autocommit_mode) except BaseException as e: self._rfile = None if sock is not None: try: sock.close() except: # noqa pass if isinstance(e, (OSError, IOError)): exc = err.OperationalError( CR.CR_CONN_HOST_ERROR, f"Can't connect to MySQL server on {self.host!r} ({e})", ) # Keep original exception and traceback to investigate error. exc.original_exception = e exc.traceback = traceback.format_exc() if DEBUG: print(exc.traceback) > raise exc E pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)") /usr/lib/python3.12/site-packages/pymysql/connections.py:711: OperationalError The above exception was the direct cause of the following exception: engine = Engine(mysql+pymysql://root@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) /usr/lib/python3.12/site-packages/pymysql/connections.py:358: in __init__ self.connect() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) break except OSError as e: if e.errno == errno.EINTR: continue raise self.host_info = "socket %s:%d" % (self.host, self.port) if DEBUG: print("connected using socket") sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.settimeout(None) self._sock = sock self._rfile = sock.makefile("rb") self._next_seq_id = 0 self._get_server_information() self._request_authentication() # Send "SET NAMES" query on init for: # - Ensure charaset (and collation) is set to the server. # - collation_id in handshake packet may be ignored. # - If collation is not specified, we don't know what is server's # default collation for the charset. For example, default collation # of utf8mb4 is: # - MySQL 5.7, MariaDB 10.x: utf8mb4_general_ci # - MySQL 8.0: utf8mb4_0900_ai_ci # # Reference: # - https://github.com/PyMySQL/PyMySQL/issues/1092 # - https://github.com/wagtail/wagtail/issues/9477 # - https://zenn.dev/methane/articles/2023-mysql-collation (Japanese) self.set_character_set(self.charset, self.collation) if self.sql_mode is not None: c = self.cursor() c.execute("SET sql_mode=%s", (self.sql_mode,)) c.close() if self.init_command is not None: c = self.cursor() c.execute(self.init_command) c.close() if self.autocommit_mode is not None: self.autocommit(self.autocommit_mode) except BaseException as e: self._rfile = None if sock is not None: try: sock.close() except: # noqa pass if isinstance(e, (OSError, IOError)): exc = err.OperationalError( CR.CR_CONN_HOST_ERROR, f"Can't connect to MySQL server on {self.host!r} ({e})", ) # Keep original exception and traceback to investigate error. exc.original_exception = e exc.traceback = traceback.format_exc() if DEBUG: print(exc.traceback) > raise exc E sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)") E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib/python3.12/site-packages/pymysql/connections.py:711: OperationalError _ ERROR at setup of TestLazyEvaluatedSelectExpressionsForAggregates.test_assigns_aggregates_on_insert _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestLazyEvaluatedSelectExpressionsForAggregates.test_assigns_aggregates_on_update _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestLazyEvaluatedSelectExpressionsForAggregates.test_assigns_aggregates_on_insert[simple] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestLazyEvaluatedSelectExpressionsForAggregates.test_assigns_aggregates_on_insert[child] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestLazyEvaluatedSelectExpressionsForAggregates.test_assigns_aggregates_on_update[simple] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestLazyEvaluatedSelectExpressionsForAggregates.test_assigns_aggregates_on_update[child] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestAggregatesWithManyToManyRelationships.test_assigns_aggregates_on_insert _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestAggregatesWithManyToManyRelationships.test_updates_aggregates_on_delete _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ______ ERROR at setup of TestAggregateManyToManyAndManyToMany.test_insert ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ______ ERROR at setup of TestAggregateOneToManyAndManyToMany.test_insert _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestAggregateOneToManyAndOneToMany.test_assigns_aggregates _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ______ ERROR at setup of Test3LevelDeepOneToMany.test_assigns_aggregates _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of Test3LevelDeepOneToMany.test_only_updates_affected_aggregates _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSearchVectorAggregates.test_assigns_aggregates_on_insert _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestAggregateValueGenerationWithCascadeDelete.test_something _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ___________ ERROR at setup of TestJSONSQL.test_compiled_scalars[1-1] ___________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______ ERROR at setup of TestJSONSQL.test_compiled_scalars[14.14-14.14] _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONSQL.test_compiled_scalars[value2-result2] ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONSQL.test_compiled_scalars[value3-result3] ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONSQL.test_compiled_scalars[value4-result4] ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONSQL.test_compiled_scalars[value5-result5] ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONSQL.test_compiled_scalars[value6-result6] ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONSQL.test_compiled_scalars[value7-result7] ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __________ ERROR at setup of TestJSONBSQL.test_compiled_scalars[1-1] ___________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ______ ERROR at setup of TestJSONBSQL.test_compiled_scalars[14.14-14.14] _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONBSQL.test_compiled_scalars[value2-result2] _____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONBSQL.test_compiled_scalars[value3-result3] _____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONBSQL.test_compiled_scalars[value4-result4] _____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONBSQL.test_compiled_scalars[value5-result5] _____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONBSQL.test_compiled_scalars[value6-result6] _____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestJSONBSQL.test_compiled_scalars[value7-result7] _____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __________ ERROR at setup of TestObservesForColumn.test_simple_insert __________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForColumnWithoutActualChanges.test_only_notifies_observer_on_actual_changes _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForMultipleColumns.test_only_notifies_observer_on_actual_changes _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForMultipleColumnsFiresOnlyOnce.test_only_notifies_observer_on_actual_changes _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForDynamicRelationship.test_add_observed_object _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForDynamicRelationship.test_add_observed_object_from_backref _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __ ERROR at setup of TestObservesForManyToManyToManyToMany.test_simple_insert __ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForManyToManyToManyToMany.test_add_leaf_object _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForManyToManyToManyToMany.test_remove_leaf_object _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForManyToManyToManyToMany.test_delete_intermediate_object _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForManyToManyToManyToMany.test_gathered_objects_are_distinct _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ___ ERROR at setup of TestObservesFor3LevelDeepOneToMany.test_simple_insert ____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __ ERROR at setup of TestObservesFor3LevelDeepOneToMany.test_add_leaf_object ___ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesFor3LevelDeepOneToMany.test_remove_leaf_object _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesFor3LevelDeepOneToMany.test_delete_intermediate_object _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesFor3LevelDeepOneToMany.test_gathered_objects_are_distinct _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ___ ERROR at setup of TestObservesForOneToManyToOneToMany.test_simple_insert ___ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __ ERROR at setup of TestObservesForOneToManyToOneToMany.test_add_leaf_object __ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForOneToManyToOneToMany.test_remove_leaf_object _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForOneToManyToOneToMany.test_delete_intermediate_object _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForOneToManyToOneToMany.test_gathered_objects_are_distinct _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForOneToManyToOneToMany.test_observable_root_obj_is_none _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ____ ERROR at setup of TestObservesForOneToOneToOneToOne.test_simple_insert ____ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForOneToOneToOneToOne.test_replace_leaf_object _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestObservesForOneToOneToOneToOne.test_delete_leaf_object __ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_returns_correct_results[categories-categories-subcategories-result0] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_returns_correct_results[articles-comments-comments-result1] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_returns_correct_results[users-groups-groups-result2] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_returns_correct_results[users-users-all_friends-result3] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_returns_correct_results[users-users-all_friends.all_friends-result4] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_returns_correct_results[users-users-groups.users-result5] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_returns_correct_results[groups-articles-users.authored_articles-result6] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_returns_correct_results[categories-categories-subcategories.subcategories-result7] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_returns_correct_results[categories-categories-subcategories.subcategories.subcategories-result8] _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_order_by_intermediate_table_column _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestSelectCorrelatedExpression.test_with_non_aggregate_function _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestCompositeTypeWithRegularTypes.test_parameter_processing _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ___ ERROR at setup of TestCompositeTypeWithRegularTypes.test_non_ascii_chars ___ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____ ERROR at setup of TestCompositeTypeWithRegularTypes.test_dict_input ______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ___ ERROR at setup of TestCompositeTypeWithRegularTypes.test_incomplete_dict ___ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ ERROR at setup of TestCompositeTypeWhenTypeAlreadyExistsInDatabase.test_parameter_processing _ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError __ ERROR at setup of TestCompositeTypeWithMixedCase.test_parameter_processing __ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______________ ERROR at setup of TestPostgresJSONType.test_list _______________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______ ERROR at setup of TestPostgresJSONType.test_parameter_processing _______ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _________ ERROR at setup of TestPostgresJSONType.test_non_ascii_chars __________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ___________ ERROR at setup of TestPostgresJSONType.test_compilation ____________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _________ ERROR at setup of TestPostgresJSONType.test_unhashable_type __________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _________________ ERROR at setup of TestLTREE.test_saves_path __________________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ________________ ERROR at setup of TestLTREE.test_literal_param ________________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _________________ ERROR at setup of TestLTREE.test_compilation _________________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _____________ ERROR at setup of TestTSVector.test_type_reflection ______________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _________ ERROR at setup of TestTSVector.test_catalog_passed_to_match __________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ___________ ERROR at setup of TestTSVector.test_match_concatenation ____________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ____________ ERROR at setup of TestTSVector.test_match_with_catalog ____________ self = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: engine = Engine(postgresql://postgres:***@localhost/sqlalchemy_utils_test) @pytest.fixture def connection(engine): > return engine.connect() conftest.py:152: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=sqlalchemy_utils_test' connection_factory = None, cursor_factory = None kwargs = {'database': 'sqlalchemy_utils_test', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError =================================== FAILURES =================================== ____________________ TestDatabaseMySQL.test_create_and_drop ____________________ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: > sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) /usr/lib/python3.12/site-packages/pymysql/connections.py:644: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 3306), timeout = 10, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) sock.connect(sa) # Break explicitly a reference cycle exceptions.clear() return sock except error as exc: if not all_errors: exceptions.clear() # raise only the last error exceptions.append(exc) if sock is not None: sock.close() if len(exceptions): try: if not all_errors: > raise exceptions[0] /usr/lib64/python3.12/socket.py:852: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 3306), timeout = 10, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib64/python3.12/socket.py:837: ConnectionRefusedError During handling of the above exception, another exception occurred: self = Engine(mysql+pymysql://root@localhost) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = (), cparams = {'client_flag': 2, 'host': 'localhost', 'user': 'root'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __init__( self, *, user=None, # The first four arguments is based on DB-API 2.0 recommendation. password="", host=None, database=None, unix_socket=None, port=0, charset="", collation=None, sql_mode=None, read_default_file=None, conv=None, use_unicode=True, client_flag=0, cursorclass=Cursor, init_command=None, connect_timeout=10, read_default_group=None, autocommit=False, local_infile=False, max_allowed_packet=16 * 1024 * 1024, defer_connect=False, auth_plugin_map=None, read_timeout=None, write_timeout=None, bind_address=None, binary_prefix=False, program_name=None, server_public_key=None, ssl=None, ssl_ca=None, ssl_cert=None, ssl_disabled=None, ssl_key=None, ssl_verify_cert=None, ssl_verify_identity=None, compress=None, # not supported named_pipe=None, # not supported passwd=None, # deprecated db=None, # deprecated ): if db is not None and database is None: # We will raise warning in 2022 or later. # See https://github.com/PyMySQL/PyMySQL/issues/939 # warnings.warn("'db' is deprecated, use 'database'", DeprecationWarning, 3) database = db if passwd is not None and not password: # We will raise warning in 2022 or later. # See https://github.com/PyMySQL/PyMySQL/issues/939 # warnings.warn( # "'passwd' is deprecated, use 'password'", DeprecationWarning, 3 # ) password = passwd if compress or named_pipe: raise NotImplementedError( "compress and named_pipe arguments are not supported" ) self._local_infile = bool(local_infile) if self._local_infile: client_flag |= CLIENT.LOCAL_FILES if read_default_group and not read_default_file: if sys.platform.startswith("win"): read_default_file = "c:\\my.ini" else: read_default_file = "/etc/my.cnf" if read_default_file: if not read_default_group: read_default_group = "client" cfg = Parser() cfg.read(os.path.expanduser(read_default_file)) def _config(key, arg): if arg: return arg try: return cfg.get(read_default_group, key) except Exception: return arg user = _config("user", user) password = _config("password", password) host = _config("host", host) database = _config("database", database) unix_socket = _config("socket", unix_socket) port = int(_config("port", port)) bind_address = _config("bind-address", bind_address) charset = _config("default-character-set", charset) if not ssl: ssl = {} if isinstance(ssl, dict): for key in ["ca", "capath", "cert", "key", "cipher"]: value = _config("ssl-" + key, ssl.get(key)) if value: ssl[key] = value self.ssl = False if not ssl_disabled: if ssl_ca or ssl_cert or ssl_key or ssl_verify_cert or ssl_verify_identity: ssl = { "ca": ssl_ca, "check_hostname": bool(ssl_verify_identity), "verify_mode": ssl_verify_cert if ssl_verify_cert is not None else False, } if ssl_cert is not None: ssl["cert"] = ssl_cert if ssl_key is not None: ssl["key"] = ssl_key if ssl: if not SSL_ENABLED: raise NotImplementedError("ssl module not found") self.ssl = True client_flag |= CLIENT.SSL self.ctx = self._create_ssl_ctx(ssl) self.host = host or "localhost" self.port = port or 3306 if type(self.port) is not int: raise ValueError("port should be of type int") self.user = user or DEFAULT_USER self.password = password or b"" if isinstance(self.password, str): self.password = self.password.encode("latin1") self.db = database self.unix_socket = unix_socket self.bind_address = bind_address if not (0 < connect_timeout <= 31536000): raise ValueError("connect_timeout should be >0 and <=31536000") self.connect_timeout = connect_timeout or None if read_timeout is not None and read_timeout <= 0: raise ValueError("read_timeout should be > 0") self._read_timeout = read_timeout if write_timeout is not None and write_timeout <= 0: raise ValueError("write_timeout should be > 0") self._write_timeout = write_timeout self.charset = charset or DEFAULT_CHARSET self.collation = collation self.use_unicode = use_unicode self.encoding = charset_by_name(self.charset).encoding client_flag |= CLIENT.CAPABILITIES if self.db: client_flag |= CLIENT.CONNECT_WITH_DB self.client_flag = client_flag self.cursorclass = cursorclass self._result = None self._affected_rows = 0 self.host_info = "Not connected" # specified autocommit mode. None means use server default. self.autocommit_mode = autocommit if conv is None: conv = converters.conversions # Need for MySQLdb compatibility. self.encoders = {k: v for (k, v) in conv.items() if type(k) is not int} self.decoders = {k: v for (k, v) in conv.items() if type(k) is int} self.sql_mode = sql_mode self.init_command = init_command self.max_allowed_packet = max_allowed_packet self._auth_plugin_map = auth_plugin_map or {} self._binary_prefix = binary_prefix self.server_public_key = server_public_key self._connect_attrs = { "_client_name": "pymysql", "_client_version": VERSION_STRING, "_pid": str(os.getpid()), } if program_name: self._connect_attrs["program_name"] = program_name if defer_connect: self._sock = None else: > self.connect() /usr/lib/python3.12/site-packages/pymysql/connections.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) break except OSError as e: if e.errno == errno.EINTR: continue raise self.host_info = "socket %s:%d" % (self.host, self.port) if DEBUG: print("connected using socket") sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.settimeout(None) self._sock = sock self._rfile = sock.makefile("rb") self._next_seq_id = 0 self._get_server_information() self._request_authentication() # Send "SET NAMES" query on init for: # - Ensure charaset (and collation) is set to the server. # - collation_id in handshake packet may be ignored. # - If collation is not specified, we don't know what is server's # default collation for the charset. For example, default collation # of utf8mb4 is: # - MySQL 5.7, MariaDB 10.x: utf8mb4_general_ci # - MySQL 8.0: utf8mb4_0900_ai_ci # # Reference: # - https://github.com/PyMySQL/PyMySQL/issues/1092 # - https://github.com/wagtail/wagtail/issues/9477 # - https://zenn.dev/methane/articles/2023-mysql-collation (Japanese) self.set_character_set(self.charset, self.collation) if self.sql_mode is not None: c = self.cursor() c.execute("SET sql_mode=%s", (self.sql_mode,)) c.close() if self.init_command is not None: c = self.cursor() c.execute(self.init_command) c.close() if self.autocommit_mode is not None: self.autocommit(self.autocommit_mode) except BaseException as e: self._rfile = None if sock is not None: try: sock.close() except: # noqa pass if isinstance(e, (OSError, IOError)): exc = err.OperationalError( CR.CR_CONN_HOST_ERROR, f"Can't connect to MySQL server on {self.host!r} ({e})", ) # Keep original exception and traceback to investigate error. exc.original_exception = e exc.traceback = traceback.format_exc() if DEBUG: print(exc.traceback) > raise exc E pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)") /usr/lib/python3.12/site-packages/pymysql/connections.py:711: OperationalError The above exception was the direct cause of the following exception: self = dsn = 'mysql+pymysql://root@localhost/db_test_sqlalchemy_util' def test_create_and_drop(self, dsn): > assert not database_exists(dsn) tests/functions/test_database.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sqlalchemy_utils/functions/database.py:498: in database_exists return bool(_get_scalar_result(engine, sa.text(text))) sqlalchemy_utils/functions/database.py:442: in _get_scalar_result with engine.connect() as conn: /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) /usr/lib/python3.12/site-packages/pymysql/connections.py:358: in __init__ self.connect() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) break except OSError as e: if e.errno == errno.EINTR: continue raise self.host_info = "socket %s:%d" % (self.host, self.port) if DEBUG: print("connected using socket") sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.settimeout(None) self._sock = sock self._rfile = sock.makefile("rb") self._next_seq_id = 0 self._get_server_information() self._request_authentication() # Send "SET NAMES" query on init for: # - Ensure charaset (and collation) is set to the server. # - collation_id in handshake packet may be ignored. # - If collation is not specified, we don't know what is server's # default collation for the charset. For example, default collation # of utf8mb4 is: # - MySQL 5.7, MariaDB 10.x: utf8mb4_general_ci # - MySQL 8.0: utf8mb4_0900_ai_ci # # Reference: # - https://github.com/PyMySQL/PyMySQL/issues/1092 # - https://github.com/wagtail/wagtail/issues/9477 # - https://zenn.dev/methane/articles/2023-mysql-collation (Japanese) self.set_character_set(self.charset, self.collation) if self.sql_mode is not None: c = self.cursor() c.execute("SET sql_mode=%s", (self.sql_mode,)) c.close() if self.init_command is not None: c = self.cursor() c.execute(self.init_command) c.close() if self.autocommit_mode is not None: self.autocommit(self.autocommit_mode) except BaseException as e: self._rfile = None if sock is not None: try: sock.close() except: # noqa pass if isinstance(e, (OSError, IOError)): exc = err.OperationalError( CR.CR_CONN_HOST_ERROR, f"Can't connect to MySQL server on {self.host!r} ({e})", ) # Keep original exception and traceback to investigate error. exc.original_exception = e exc.traceback = traceback.format_exc() if DEBUG: print(exc.traceback) > raise exc E sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)") E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib/python3.12/site-packages/pymysql/connections.py:711: OperationalError _____________ TestDatabaseMySQLWithQuotedName.test_create_and_drop _____________ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: > sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) /usr/lib/python3.12/site-packages/pymysql/connections.py:644: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 3306), timeout = 10, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) sock.connect(sa) # Break explicitly a reference cycle exceptions.clear() return sock except error as exc: if not all_errors: exceptions.clear() # raise only the last error exceptions.append(exc) if sock is not None: sock.close() if len(exceptions): try: if not all_errors: > raise exceptions[0] /usr/lib64/python3.12/socket.py:852: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 3306), timeout = 10, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib64/python3.12/socket.py:837: ConnectionRefusedError During handling of the above exception, another exception occurred: self = Engine(mysql+pymysql://root@localhost) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = (), cparams = {'client_flag': 2, 'host': 'localhost', 'user': 'root'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __init__( self, *, user=None, # The first four arguments is based on DB-API 2.0 recommendation. password="", host=None, database=None, unix_socket=None, port=0, charset="", collation=None, sql_mode=None, read_default_file=None, conv=None, use_unicode=True, client_flag=0, cursorclass=Cursor, init_command=None, connect_timeout=10, read_default_group=None, autocommit=False, local_infile=False, max_allowed_packet=16 * 1024 * 1024, defer_connect=False, auth_plugin_map=None, read_timeout=None, write_timeout=None, bind_address=None, binary_prefix=False, program_name=None, server_public_key=None, ssl=None, ssl_ca=None, ssl_cert=None, ssl_disabled=None, ssl_key=None, ssl_verify_cert=None, ssl_verify_identity=None, compress=None, # not supported named_pipe=None, # not supported passwd=None, # deprecated db=None, # deprecated ): if db is not None and database is None: # We will raise warning in 2022 or later. # See https://github.com/PyMySQL/PyMySQL/issues/939 # warnings.warn("'db' is deprecated, use 'database'", DeprecationWarning, 3) database = db if passwd is not None and not password: # We will raise warning in 2022 or later. # See https://github.com/PyMySQL/PyMySQL/issues/939 # warnings.warn( # "'passwd' is deprecated, use 'password'", DeprecationWarning, 3 # ) password = passwd if compress or named_pipe: raise NotImplementedError( "compress and named_pipe arguments are not supported" ) self._local_infile = bool(local_infile) if self._local_infile: client_flag |= CLIENT.LOCAL_FILES if read_default_group and not read_default_file: if sys.platform.startswith("win"): read_default_file = "c:\\my.ini" else: read_default_file = "/etc/my.cnf" if read_default_file: if not read_default_group: read_default_group = "client" cfg = Parser() cfg.read(os.path.expanduser(read_default_file)) def _config(key, arg): if arg: return arg try: return cfg.get(read_default_group, key) except Exception: return arg user = _config("user", user) password = _config("password", password) host = _config("host", host) database = _config("database", database) unix_socket = _config("socket", unix_socket) port = int(_config("port", port)) bind_address = _config("bind-address", bind_address) charset = _config("default-character-set", charset) if not ssl: ssl = {} if isinstance(ssl, dict): for key in ["ca", "capath", "cert", "key", "cipher"]: value = _config("ssl-" + key, ssl.get(key)) if value: ssl[key] = value self.ssl = False if not ssl_disabled: if ssl_ca or ssl_cert or ssl_key or ssl_verify_cert or ssl_verify_identity: ssl = { "ca": ssl_ca, "check_hostname": bool(ssl_verify_identity), "verify_mode": ssl_verify_cert if ssl_verify_cert is not None else False, } if ssl_cert is not None: ssl["cert"] = ssl_cert if ssl_key is not None: ssl["key"] = ssl_key if ssl: if not SSL_ENABLED: raise NotImplementedError("ssl module not found") self.ssl = True client_flag |= CLIENT.SSL self.ctx = self._create_ssl_ctx(ssl) self.host = host or "localhost" self.port = port or 3306 if type(self.port) is not int: raise ValueError("port should be of type int") self.user = user or DEFAULT_USER self.password = password or b"" if isinstance(self.password, str): self.password = self.password.encode("latin1") self.db = database self.unix_socket = unix_socket self.bind_address = bind_address if not (0 < connect_timeout <= 31536000): raise ValueError("connect_timeout should be >0 and <=31536000") self.connect_timeout = connect_timeout or None if read_timeout is not None and read_timeout <= 0: raise ValueError("read_timeout should be > 0") self._read_timeout = read_timeout if write_timeout is not None and write_timeout <= 0: raise ValueError("write_timeout should be > 0") self._write_timeout = write_timeout self.charset = charset or DEFAULT_CHARSET self.collation = collation self.use_unicode = use_unicode self.encoding = charset_by_name(self.charset).encoding client_flag |= CLIENT.CAPABILITIES if self.db: client_flag |= CLIENT.CONNECT_WITH_DB self.client_flag = client_flag self.cursorclass = cursorclass self._result = None self._affected_rows = 0 self.host_info = "Not connected" # specified autocommit mode. None means use server default. self.autocommit_mode = autocommit if conv is None: conv = converters.conversions # Need for MySQLdb compatibility. self.encoders = {k: v for (k, v) in conv.items() if type(k) is not int} self.decoders = {k: v for (k, v) in conv.items() if type(k) is int} self.sql_mode = sql_mode self.init_command = init_command self.max_allowed_packet = max_allowed_packet self._auth_plugin_map = auth_plugin_map or {} self._binary_prefix = binary_prefix self.server_public_key = server_public_key self._connect_attrs = { "_client_name": "pymysql", "_client_version": VERSION_STRING, "_pid": str(os.getpid()), } if program_name: self._connect_attrs["program_name"] = program_name if defer_connect: self._sock = None else: > self.connect() /usr/lib/python3.12/site-packages/pymysql/connections.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) break except OSError as e: if e.errno == errno.EINTR: continue raise self.host_info = "socket %s:%d" % (self.host, self.port) if DEBUG: print("connected using socket") sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.settimeout(None) self._sock = sock self._rfile = sock.makefile("rb") self._next_seq_id = 0 self._get_server_information() self._request_authentication() # Send "SET NAMES" query on init for: # - Ensure charaset (and collation) is set to the server. # - collation_id in handshake packet may be ignored. # - If collation is not specified, we don't know what is server's # default collation for the charset. For example, default collation # of utf8mb4 is: # - MySQL 5.7, MariaDB 10.x: utf8mb4_general_ci # - MySQL 8.0: utf8mb4_0900_ai_ci # # Reference: # - https://github.com/PyMySQL/PyMySQL/issues/1092 # - https://github.com/wagtail/wagtail/issues/9477 # - https://zenn.dev/methane/articles/2023-mysql-collation (Japanese) self.set_character_set(self.charset, self.collation) if self.sql_mode is not None: c = self.cursor() c.execute("SET sql_mode=%s", (self.sql_mode,)) c.close() if self.init_command is not None: c = self.cursor() c.execute(self.init_command) c.close() if self.autocommit_mode is not None: self.autocommit(self.autocommit_mode) except BaseException as e: self._rfile = None if sock is not None: try: sock.close() except: # noqa pass if isinstance(e, (OSError, IOError)): exc = err.OperationalError( CR.CR_CONN_HOST_ERROR, f"Can't connect to MySQL server on {self.host!r} ({e})", ) # Keep original exception and traceback to investigate error. exc.original_exception = e exc.traceback = traceback.format_exc() if DEBUG: print(exc.traceback) > raise exc E pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)") /usr/lib/python3.12/site-packages/pymysql/connections.py:711: OperationalError The above exception was the direct cause of the following exception: self = dsn = 'mysql+pymysql://root@localhost/db_test_sqlalchemy-util' def test_create_and_drop(self, dsn): > assert not database_exists(dsn) tests/functions/test_database.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sqlalchemy_utils/functions/database.py:498: in database_exists return bool(_get_scalar_result(engine, sa.text(text))) sqlalchemy_utils/functions/database.py:442: in _get_scalar_result with engine.connect() as conn: /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) /usr/lib/python3.12/site-packages/pymysql/connections.py:358: in __init__ self.connect() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , sock = None def connect(self, sock=None): self._closed = False try: if sock is None: if self.unix_socket: sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(self.connect_timeout) sock.connect(self.unix_socket) self.host_info = "Localhost via UNIX socket" self._secure = True if DEBUG: print("connected using unix_socket") else: kwargs = {} if self.bind_address is not None: kwargs["source_address"] = (self.bind_address, 0) while True: try: sock = socket.create_connection( (self.host, self.port), self.connect_timeout, **kwargs ) break except OSError as e: if e.errno == errno.EINTR: continue raise self.host_info = "socket %s:%d" % (self.host, self.port) if DEBUG: print("connected using socket") sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) sock.settimeout(None) self._sock = sock self._rfile = sock.makefile("rb") self._next_seq_id = 0 self._get_server_information() self._request_authentication() # Send "SET NAMES" query on init for: # - Ensure charaset (and collation) is set to the server. # - collation_id in handshake packet may be ignored. # - If collation is not specified, we don't know what is server's # default collation for the charset. For example, default collation # of utf8mb4 is: # - MySQL 5.7, MariaDB 10.x: utf8mb4_general_ci # - MySQL 8.0: utf8mb4_0900_ai_ci # # Reference: # - https://github.com/PyMySQL/PyMySQL/issues/1092 # - https://github.com/wagtail/wagtail/issues/9477 # - https://zenn.dev/methane/articles/2023-mysql-collation (Japanese) self.set_character_set(self.charset, self.collation) if self.sql_mode is not None: c = self.cursor() c.execute("SET sql_mode=%s", (self.sql_mode,)) c.close() if self.init_command is not None: c = self.cursor() c.execute(self.init_command) c.close() if self.autocommit_mode is not None: self.autocommit(self.autocommit_mode) except BaseException as e: self._rfile = None if sock is not None: try: sock.close() except: # noqa pass if isinstance(e, (OSError, IOError)): exc = err.OperationalError( CR.CR_CONN_HOST_ERROR, f"Can't connect to MySQL server on {self.host!r} ({e})", ) # Keep original exception and traceback to investigate error. exc.original_exception = e exc.traceback = traceback.format_exc() if DEBUG: print(exc.traceback) > raise exc E sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)") E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib/python3.12/site-packages/pymysql/connections.py:711: OperationalError __________________ TestDatabasePostgres.test_create_and_drop ___________________ self = Engine(postgresql://postgres:***@localhost/postgres) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: self = dsn = 'postgresql://postgres:@localhost/db_test_sqlalchemy_util' def test_create_and_drop(self, dsn): assert not database_exists(dsn) > create_database(dsn) tests/functions/test_database.py:19: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sqlalchemy_utils/functions/database.py:568: in create_database with engine.begin() as conn: /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3153: in begin conn = self.connect(close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError ______________________ TestDatabasePostgres.test_template ______________________ self = Engine(postgresql://postgres:***@localhost/postgres) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: self = postgresql_db_user = 'postgres', postgresql_db_password = '' def test_template(self, postgresql_db_user, postgresql_db_password): dsn = 'postgresql://{}:{}@localhost/db_test_sqlalchemy_util'.format( postgresql_db_user, postgresql_db_password ) with pytest.raises(sa.exc.ProgrammingError) as excinfo: > create_database(dsn, template='my_template') tests/functions/test_database.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sqlalchemy_utils/functions/database.py:568: in create_database with engine.begin() as conn: /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3153: in begin conn = self.connect(close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______________ TestDatabasePostgresPg8000.test_create_and_drop ________________ self = , user = 'postgres' host = 'localhost', database = 'db_to_test_create_and_drop_via_pg8000_driver' port = 5432, password = None, source_address = None, unix_sock = None ssl_context = None, timeout = None, tcp_keepalive = True application_name = None, replication = None def __init__( self, user, host="localhost", database=None, port=5432, password=None, source_address=None, unix_sock=None, ssl_context=None, timeout=None, tcp_keepalive=True, application_name=None, replication=None, ): self._client_encoding = "utf8" self._commands_with_count = ( b"INSERT", b"DELETE", b"UPDATE", b"MOVE", b"FETCH", b"COPY", b"SELECT", ) self.notifications = deque(maxlen=100) self.notices = deque(maxlen=100) self.parameter_statuses = deque(maxlen=100) if user is None: raise InterfaceError("The 'user' connection parameter cannot be None") init_params = { "user": user, "database": database, "application_name": application_name, "replication": replication, } for k, v in tuple(init_params.items()): if isinstance(v, str): init_params[k] = v.encode("utf8") elif v is None: del init_params[k] elif not isinstance(v, (bytes, bytearray)): raise InterfaceError(f"The parameter {k} can't be of type {type(v)}.") self.user = init_params["user"] if isinstance(password, str): self.password = password.encode("utf8") else: self.password = password self.autocommit = False self._xid = None self._statement_nums = set() self._caches = {} if unix_sock is None and host is not None: try: > self._usock = socket.create_connection( (host, port), timeout, source_address ) /usr/lib/python3.12/site-packages/pg8000/core.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 5432), timeout = None, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) sock.connect(sa) # Break explicitly a reference cycle exceptions.clear() return sock except error as exc: if not all_errors: exceptions.clear() # raise only the last error exceptions.append(exc) if sock is not None: sock.close() if len(exceptions): try: if not all_errors: > raise exceptions[0] /usr/lib64/python3.12/socket.py:852: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = ('localhost', 5432), timeout = None, source_address = None def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=None, *, all_errors=False): """Connect to *address* and return the socket object. Convenience function. Connect to *address* (a 2-tuple ``(host, port)``) and return the socket object. Passing the optional *timeout* parameter will set the timeout on the socket instance before attempting to connect. If no *timeout* is supplied, the global default timeout setting returned by :func:`getdefaulttimeout` is used. If *source_address* is set it must be a tuple of (host, port) for the socket to bind as a source address before making the connection. A host of '' or port 0 tells the OS to use the default. When a connection cannot be created, raises the last error if *all_errors* is False, and an ExceptionGroup of all errors if *all_errors* is True. """ host, port = address exceptions = [] for res in getaddrinfo(host, port, 0, SOCK_STREAM): af, socktype, proto, canonname, sa = res sock = None try: sock = socket(af, socktype, proto) if timeout is not _GLOBAL_DEFAULT_TIMEOUT: sock.settimeout(timeout) if source_address: sock.bind(source_address) > sock.connect(sa) E ConnectionRefusedError: [Errno 111] Connection refused /usr/lib64/python3.12/socket.py:837: ConnectionRefusedError The above exception was the direct cause of the following exception: self = Engine(postgresql+pg8000://postgres:***@localhost/db_to_test_create_and_drop_via_pg8000_driver) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'db_to_test_create_and_drop_via_pg8000_driver', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ user = 'postgres', host = 'localhost' database = 'db_to_test_create_and_drop_via_pg8000_driver', port = 5432 password = None, source_address = None, unix_sock = None, ssl_context = None timeout = None, tcp_keepalive = True, application_name = None replication = None def connect( user, host="localhost", database=None, port=5432, password=None, source_address=None, unix_sock=None, ssl_context=None, timeout=None, tcp_keepalive=True, application_name=None, replication=None, ): > return Connection( user, host=host, database=database, port=port, password=password, source_address=source_address, unix_sock=unix_sock, ssl_context=ssl_context, timeout=timeout, tcp_keepalive=tcp_keepalive, application_name=application_name, replication=replication, ) /usr/lib/python3.12/site-packages/pg8000/__init__.py:117: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , args = ('postgres',) kwargs = {'application_name': None, 'database': 'db_to_test_create_and_drop_via_pg8000_driver', 'host': 'localhost', 'password': None, ...} def __init__(self, *args, **kwargs): try: > super().__init__(*args, **kwargs) /usr/lib/python3.12/site-packages/pg8000/legacy.py:442: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , user = 'postgres' host = 'localhost', database = 'db_to_test_create_and_drop_via_pg8000_driver' port = 5432, password = None, source_address = None, unix_sock = None ssl_context = None, timeout = None, tcp_keepalive = True application_name = None, replication = None def __init__( self, user, host="localhost", database=None, port=5432, password=None, source_address=None, unix_sock=None, ssl_context=None, timeout=None, tcp_keepalive=True, application_name=None, replication=None, ): self._client_encoding = "utf8" self._commands_with_count = ( b"INSERT", b"DELETE", b"UPDATE", b"MOVE", b"FETCH", b"COPY", b"SELECT", ) self.notifications = deque(maxlen=100) self.notices = deque(maxlen=100) self.parameter_statuses = deque(maxlen=100) if user is None: raise InterfaceError("The 'user' connection parameter cannot be None") init_params = { "user": user, "database": database, "application_name": application_name, "replication": replication, } for k, v in tuple(init_params.items()): if isinstance(v, str): init_params[k] = v.encode("utf8") elif v is None: del init_params[k] elif not isinstance(v, (bytes, bytearray)): raise InterfaceError(f"The parameter {k} can't be of type {type(v)}.") self.user = init_params["user"] if isinstance(password, str): self.password = password.encode("utf8") else: self.password = password self.autocommit = False self._xid = None self._statement_nums = set() self._caches = {} if unix_sock is None and host is not None: try: self._usock = socket.create_connection( (host, port), timeout, source_address ) except socket.error as e: > raise InterfaceError( f"Can't create a connection to host {host} and port {port} " f"(timeout is {timeout} and source_address is {source_address})." ) from e E pg8000.exceptions.InterfaceError: Can't create a connection to host localhost and port 5432 (timeout is None and source_address is None). /usr/lib/python3.12/site-packages/pg8000/core.py:212: InterfaceError The above exception was the direct cause of the following exception: self = dsn = 'postgresql+pg8000://postgres:@localhost/db_to_test_create_and_drop_via_pg8000_driver' def test_create_and_drop(self, dsn): > assert not database_exists(dsn) tests/functions/test_database.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sqlalchemy_utils/functions/database.py:488: in database_exists return bool(_get_scalar_result(engine, sa.text(text))) sqlalchemy_utils/functions/database.py:442: in _get_scalar_result with engine.connect() as conn: /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) /usr/lib/python3.12/site-packages/pg8000/__init__.py:117: in connect return Connection( /usr/lib/python3.12/site-packages/pg8000/legacy.py:442: in __init__ super().__init__(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , user = 'postgres' host = 'localhost', database = 'db_to_test_create_and_drop_via_pg8000_driver' port = 5432, password = None, source_address = None, unix_sock = None ssl_context = None, timeout = None, tcp_keepalive = True application_name = None, replication = None def __init__( self, user, host="localhost", database=None, port=5432, password=None, source_address=None, unix_sock=None, ssl_context=None, timeout=None, tcp_keepalive=True, application_name=None, replication=None, ): self._client_encoding = "utf8" self._commands_with_count = ( b"INSERT", b"DELETE", b"UPDATE", b"MOVE", b"FETCH", b"COPY", b"SELECT", ) self.notifications = deque(maxlen=100) self.notices = deque(maxlen=100) self.parameter_statuses = deque(maxlen=100) if user is None: raise InterfaceError("The 'user' connection parameter cannot be None") init_params = { "user": user, "database": database, "application_name": application_name, "replication": replication, } for k, v in tuple(init_params.items()): if isinstance(v, str): init_params[k] = v.encode("utf8") elif v is None: del init_params[k] elif not isinstance(v, (bytes, bytearray)): raise InterfaceError(f"The parameter {k} can't be of type {type(v)}.") self.user = init_params["user"] if isinstance(password, str): self.password = password.encode("utf8") else: self.password = password self.autocommit = False self._xid = None self._statement_nums = set() self._caches = {} if unix_sock is None and host is not None: try: self._usock = socket.create_connection( (host, port), timeout, source_address ) except socket.error as e: > raise InterfaceError( f"Can't create a connection to host {host} and port {port} " f"(timeout is {timeout} and source_address is {source_address})." ) from e E sqlalchemy.exc.InterfaceError: (pg8000.exceptions.InterfaceError) Can't create a connection to host localhost and port 5432 (timeout is None and source_address is None). E (Background on this error at: https://sqlalche.me/e/14/rvf5) /usr/lib/python3.12/site-packages/pg8000/core.py:212: InterfaceError ___________ TestDatabasePostgresWithQuotedName.test_create_and_drop ____________ self = Engine(postgresql://postgres:***@localhost/postgres) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: self = dsn = 'postgresql://postgres:@localhost/db_test_sqlalchemy-util' def test_create_and_drop(self, dsn): assert not database_exists(dsn) > create_database(dsn) tests/functions/test_database.py:19: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sqlalchemy_utils/functions/database.py:568: in create_database with engine.begin() as conn: /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3153: in begin conn = self.connect(close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _______________ TestDatabasePostgresWithQuotedName.test_template _______________ self = Engine(postgresql://postgres:***@localhost/postgres) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: self = postgresql_db_user = 'postgres', postgresql_db_password = '' def test_template(self, postgresql_db_user, postgresql_db_password): dsn = 'postgresql://{}:{}@localhost/db_test_sqlalchemy-util'.format( postgresql_db_user, postgresql_db_password ) with pytest.raises(sa.exc.ProgrammingError) as excinfo: > create_database(dsn, template='my-template') tests/functions/test_database.py:130: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sqlalchemy_utils/functions/database.py:568: in create_database with engine.begin() as conn: /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3153: in begin conn = self.connect(close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError _ TestDatabasePostgresCreateDatabaseCloseConnection.test_create_database_twice _ self = Engine(postgresql://postgres:***@localhost/postgres) fn = > connection = None def _wrap_pool_connect(self, fn, connection): dialect = self.dialect try: > return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def connect(self): """Return a DBAPI connection from the pool. The connection is instrumented such that when its ``close()`` method is called, the connection will be returned to the pool. """ > return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = threadconns = None, fairy = None @classmethod def _checkout(cls, pool, threadconns=None, fairy=None): if not fairy: > fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = pool = @classmethod def checkout(cls, pool): > rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: return self._create_connection() except: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _do_get(self): use_overflow = self._max_overflow > -1 try: wait = use_overflow and self._overflow >= self._max_overflow return self._pool.get(wait, self._timeout) except sqla_queue.Empty: # don't do things inside of "except Empty", because when we say # we timed out or can't connect and raise, Python 3 tells # people the real error is queue.Empty which it isn't. pass if use_overflow and self._overflow >= self._max_overflow: if not wait: return self._do_get() else: raise exc.TimeoutError( "QueuePool limit of size %d overflow %d reached, " "connection timed out, timeout %0.2f" % (self.size(), self.overflow(), self._timeout), code="3o7r", ) if self._inc_overflow(): try: > return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _create_connection(self): """Called by subclasses to create a new ConnectionRecord.""" > return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = pool = , connect = True def __init__(self, pool, connect=True): self.__pool = pool if connect: > self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() self.dbapi_connection = connection = pool._invoke_creator(self) pool.logger.debug("Created new connection %r", connection) self.fresh = True except BaseException as e: > with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = type_ = None, value = None, traceback = None def __exit__(self, type_, value, traceback): # see #2703 for notes if type_ is None: exc_type, exc_value, exc_tb = self._exc_info self._exc_info = None # remove potential circular references if not self.warn_only: > compat.raise_( exc_value, with_traceback=exc_tb, ) /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def raise_( exception, with_traceback=None, replace_context=None, from_=False ): r"""implement "raise" with cause support. :param exception: exception to raise :param with_traceback: will call exception.with_traceback() :param replace_context: an as-yet-unsupported feature. This is an exception object which we are "replacing", e.g., it's our "cause" but we don't want it printed. Basically just what ``__suppress_context__`` does but we don't want to suppress the enclosing context, if any. So for now we make it the cause. :param from\_: the cause. this actually sets the cause and doesn't hope to hide it someday. """ if with_traceback is not None: exception = exception.with_traceback(with_traceback) if from_ is not False: exception.__cause__ = from_ elif replace_context is not None: # no good solution here, we would like to have the exception # have only the context of replace_context.__context__ so that the # intermediary exception does not change, but we can't figure # that out. exception.__cause__ = replace_context try: > raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def __connect(self): pool = self.__pool # ensure any existing connection is removed, so that if # creator fails, this attribute stays None self.dbapi_connection = None try: self.starttime = time.time() > self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ connection_record = def connect(connection_record=None): if dialect._has_events: for fn in dialect.dispatch.do_connect: connection = fn(dialect, connection_record, cargs, cparams) if connection is not None: return connection > return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cargs = () cparams = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} def connect(self, *cargs, **cparams): # inherits the docstring from interfaces.Dialect.connect > return self.dbapi.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError The above exception was the direct cause of the following exception: self = postgresql_db_user = 'postgres', postgresql_db_password = '' def test_create_database_twice( self, postgresql_db_user, postgresql_db_password ): dsn_list = [ 'postgresql://{}:{}@localhost/db_test_sqlalchemy-util-a'.format( postgresql_db_user, postgresql_db_password ), 'postgresql://{}:{}@localhost/db_test_sqlalchemy-util-b'.format( postgresql_db_user, postgresql_db_password ), ] for dsn_item in dsn_list: assert not database_exists(dsn_item) > create_database(dsn_item, template="template1") tests/functions/test_database.py:153: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ sqlalchemy_utils/functions/database.py:568: in create_database with engine.begin() as conn: /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3153: in begin conn = self.connect(close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3325: in connect return self._connection_cls(self, close_with_result=close_with_result) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:96: in __init__ else engine.raw_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3404: in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3374: in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:2208: in _handle_dbapi_exception_noconnection util.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/engine/base.py:3371: in _wrap_pool_connect return fn() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:327: in connect return _ConnectionFairy._checkout(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:894: in _checkout fairy = _ConnectionRecord.checkout(pool) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:493: in checkout rec = pool._do_get() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:145: in _do_get with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/impl.py:143: in _do_get return self._create_connection() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:273: in _create_connection return _ConnectionRecord(self) /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:388: in __init__ self.__connect() /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:690: in __connect with util.safe_reraise(): /usr/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__ compat.raise_( /usr/lib64/python3.12/site-packages/sqlalchemy/util/compat.py:211: in raise_ raise exception /usr/lib64/python3.12/site-packages/sqlalchemy/pool/base.py:686: in __connect self.dbapi_connection = connection = pool._invoke_creator(self) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/create.py:574: in connect return dialect.connect(*cargs, **cparams) /usr/lib64/python3.12/site-packages/sqlalchemy/engine/default.py:598: in connect return self.dbapi.connect(*cargs, **cparams) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dsn = 'host=localhost user=postgres dbname=postgres', connection_factory = None cursor_factory = None kwargs = {'database': 'postgres', 'host': 'localhost', 'user': 'postgres'} kwasync = {} def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): """ Create a new database connection. The connection parameters can be specified as a string: conn = psycopg2.connect("dbname=test user=postgres password=secret") or using a set of keyword arguments: conn = psycopg2.connect(database="test", user="postgres", password="secret") Or as a mix of both. The basic connection parameters are: - *dbname*: the database name - *database*: the database name (only as keyword argument) - *user*: user name used to authenticate - *password*: password used to authenticate - *host*: database host address (defaults to UNIX socket if not provided) - *port*: connection port number (defaults to 5432 if not provided) Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument. Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor(). Using *async*=True an asynchronous connection will be created. *async_* is a valid alias (for Python versions where ``async`` is a keyword). Any other keyword parameter will be passed to the underlying client library: the list of supported parameters depends on the library version. """ kwasync = {} if 'async' in kwargs: kwasync['async'] = kwargs.pop('async') if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') dsn = _ext.make_dsn(dsn, **kwargs) > conn = _connect(dsn, connection_factory=connection_factory, **kwasync) E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused E Is the server running on that host and accepting TCP/IP connections? E E (Background on this error at: https://sqlalche.me/e/14/e3q8) /usr/lib64/python3.12/site-packages/psycopg2/__init__.py:122: OperationalError =============================== warnings summary =============================== ../../../../usr/lib/python3.12/site-packages/pytz/tzinfo.py:27 /usr/lib/python3.12/site-packages/pytz/tzinfo.py:27: DeprecationWarning: datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.fromtimestamp(timestamp, datetime.UTC). _epoch = datetime.utcfromtimestamp(0) tests/test_models.py::TestTimestamp::test_created /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/tests/test_models.py:20: DeprecationWarning: datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.now(datetime.UTC). then = datetime.utcnow() tests/test_models.py::TestTimestamp::test_created tests/test_models.py::TestTimestamp::test_created tests/test_models.py::TestTimestamp::test_updated tests/test_models.py::TestTimestamp::test_updated /usr/lib64/python3.12/site-packages/sqlalchemy/sql/schema.py:2783: DeprecationWarning: datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.now(datetime.UTC). return util.wrap_callable(lambda ctx: fn(), fn) tests/test_models.py::TestTimestamp::test_created /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/tests/test_models.py:26: DeprecationWarning: datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.now(datetime.UTC). assert article.created >= then and article.created <= datetime.utcnow() tests/test_models.py::TestTimestamp::test_updated /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/tests/test_models.py:34: DeprecationWarning: datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.now(datetime.UTC). then = datetime.utcnow() tests/test_models.py::TestTimestamp::test_updated /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/sqlalchemy_utils/models.py:33: DeprecationWarning: datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.now(datetime.UTC). target.updated = datetime.utcnow() tests/test_models.py::TestTimestamp::test_updated /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/tests/test_models.py:39: DeprecationWarning: datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.now(datetime.UTC). assert article.updated >= then and article.updated <= datetime.utcnow() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/functions/test_database.py::TestDatabaseMySQL::test_create_and_drop FAILED tests/functions/test_database.py::TestDatabaseMySQLWithQuotedName::test_create_and_drop FAILED tests/functions/test_database.py::TestDatabasePostgres::test_create_and_drop FAILED tests/functions/test_database.py::TestDatabasePostgres::test_template FAILED tests/functions/test_database.py::TestDatabasePostgresPg8000::test_create_and_drop FAILED tests/functions/test_database.py::TestDatabasePostgresWithQuotedName::test_create_and_drop FAILED tests/functions/test_database.py::TestDatabasePostgresWithQuotedName::test_template FAILED tests/functions/test_database.py::TestDatabasePostgresCreateDatabaseCloseConnection::test_create_database_twice ERROR tests/test_asserts.py::TestAssertMaxLengthWithArray::test_with_max_length ERROR tests/test_asserts.py::TestAssertMaxLengthWithArray::test_smaller_than_max_length ERROR tests/test_asserts.py::TestAssertMaxLengthWithArray::test_bigger_than_max_length ERROR tests/test_asserts.py::TestAssertNonNullable::test_non_nullable_column ERROR tests/test_asserts.py::TestAssertNonNullable::test_nullable_column - sq... ERROR tests/test_asserts.py::TestAssertNullable::test_nullable_column - sqlal... ERROR tests/test_asserts.py::TestAssertNullable::test_non_nullable_column - s... ERROR tests/test_asserts.py::TestAssertMaxLength::test_with_max_length - sqla... ERROR tests/test_asserts.py::TestAssertMaxLength::test_with_non_nullable_column ERROR tests/test_asserts.py::TestAssertMaxLength::test_smaller_than_max_length ERROR tests/test_asserts.py::TestAssertMaxLength::test_bigger_than_max_length ERROR tests/test_asserts.py::TestAssertMinValue::test_with_min_value - sqlalc... ERROR tests/test_asserts.py::TestAssertMinValue::test_smaller_than_min_value ERROR tests/test_asserts.py::TestAssertMinValue::test_bigger_than_min_value ERROR tests/test_asserts.py::TestAssertMaxValue::test_with_min_value - sqlalc... ERROR tests/test_asserts.py::TestAssertMaxValue::test_smaller_than_max_value ERROR tests/test_asserts.py::TestAssertMaxValue::test_bigger_than_max_value ERROR tests/test_views.py::TestMaterializedViews::test_refresh_materialized_view ERROR tests/test_views.py::TestMaterializedViews::test_querying_view - sqlalc... ERROR tests/test_views.py::TestPostgresTrivialView::test_life_cycle_no_cascade ERROR tests/test_views.py::TestPostgresTrivialView::test_life_cycle_cascade ERROR tests/test_views.py::TestMySqlTrivialView::test_life_cycle_no_cascade ERROR tests/test_views.py::TestMySqlTrivialView::test_life_cycle_cascade - sq... ERROR tests/aggregate/test_custom_select_expressions.py::TestLazyEvaluatedSelectExpressionsForAggregates::test_assigns_aggregates_on_insert ERROR tests/aggregate/test_custom_select_expressions.py::TestLazyEvaluatedSelectExpressionsForAggregates::test_assigns_aggregates_on_update ERROR tests/aggregate/test_join_table_inheritance.py::TestLazyEvaluatedSelectExpressionsForAggregates::test_assigns_aggregates_on_insert[simple] ERROR tests/aggregate/test_join_table_inheritance.py::TestLazyEvaluatedSelectExpressionsForAggregates::test_assigns_aggregates_on_insert[child] ERROR tests/aggregate/test_join_table_inheritance.py::TestLazyEvaluatedSelectExpressionsForAggregates::test_assigns_aggregates_on_update[simple] ERROR tests/aggregate/test_join_table_inheritance.py::TestLazyEvaluatedSelectExpressionsForAggregates::test_assigns_aggregates_on_update[child] ERROR tests/aggregate/test_m2m.py::TestAggregatesWithManyToManyRelationships::test_assigns_aggregates_on_insert ERROR tests/aggregate/test_m2m.py::TestAggregatesWithManyToManyRelationships::test_updates_aggregates_on_delete ERROR tests/aggregate/test_m2m_m2m.py::TestAggregateManyToManyAndManyToMany::test_insert ERROR tests/aggregate/test_o2m_m2m.py::TestAggregateOneToManyAndManyToMany::test_insert ERROR tests/aggregate/test_o2m_o2m.py::TestAggregateOneToManyAndOneToMany::test_assigns_aggregates ERROR tests/aggregate/test_o2m_o2m_o2m.py::Test3LevelDeepOneToMany::test_assigns_aggregates ERROR tests/aggregate/test_o2m_o2m_o2m.py::Test3LevelDeepOneToMany::test_only_updates_affected_aggregates ERROR tests/aggregate/test_search_vectors.py::TestSearchVectorAggregates::test_assigns_aggregates_on_insert ERROR tests/aggregate/test_with_ondelete_cascade.py::TestAggregateValueGenerationWithCascadeDelete::test_something ERROR tests/functions/test_json_sql.py::TestJSONSQL::test_compiled_scalars[1-1] ERROR tests/functions/test_json_sql.py::TestJSONSQL::test_compiled_scalars[14.14-14.14] ERROR tests/functions/test_json_sql.py::TestJSONSQL::test_compiled_scalars[value2-result2] ERROR tests/functions/test_json_sql.py::TestJSONSQL::test_compiled_scalars[value3-result3] ERROR tests/functions/test_json_sql.py::TestJSONSQL::test_compiled_scalars[value4-result4] ERROR tests/functions/test_json_sql.py::TestJSONSQL::test_compiled_scalars[value5-result5] ERROR tests/functions/test_json_sql.py::TestJSONSQL::test_compiled_scalars[value6-result6] ERROR tests/functions/test_json_sql.py::TestJSONSQL::test_compiled_scalars[value7-result7] ERROR tests/functions/test_jsonb_sql.py::TestJSONBSQL::test_compiled_scalars[1-1] ERROR tests/functions/test_jsonb_sql.py::TestJSONBSQL::test_compiled_scalars[14.14-14.14] ERROR tests/functions/test_jsonb_sql.py::TestJSONBSQL::test_compiled_scalars[value2-result2] ERROR tests/functions/test_jsonb_sql.py::TestJSONBSQL::test_compiled_scalars[value3-result3] ERROR tests/functions/test_jsonb_sql.py::TestJSONBSQL::test_compiled_scalars[value4-result4] ERROR tests/functions/test_jsonb_sql.py::TestJSONBSQL::test_compiled_scalars[value5-result5] ERROR tests/functions/test_jsonb_sql.py::TestJSONBSQL::test_compiled_scalars[value6-result6] ERROR tests/functions/test_jsonb_sql.py::TestJSONBSQL::test_compiled_scalars[value7-result7] ERROR tests/observes/test_column_property.py::TestObservesForColumn::test_simple_insert ERROR tests/observes/test_column_property.py::TestObservesForColumnWithoutActualChanges::test_only_notifies_observer_on_actual_changes ERROR tests/observes/test_column_property.py::TestObservesForMultipleColumns::test_only_notifies_observer_on_actual_changes ERROR tests/observes/test_column_property.py::TestObservesForMultipleColumnsFiresOnlyOnce::test_only_notifies_observer_on_actual_changes ERROR tests/observes/test_dynamic_relationship.py::TestObservesForDynamicRelationship::test_add_observed_object ERROR tests/observes/test_dynamic_relationship.py::TestObservesForDynamicRelationship::test_add_observed_object_from_backref ERROR tests/observes/test_m2m_m2m_m2m.py::TestObservesForManyToManyToManyToMany::test_simple_insert ERROR tests/observes/test_m2m_m2m_m2m.py::TestObservesForManyToManyToManyToMany::test_add_leaf_object ERROR tests/observes/test_m2m_m2m_m2m.py::TestObservesForManyToManyToManyToMany::test_remove_leaf_object ERROR tests/observes/test_m2m_m2m_m2m.py::TestObservesForManyToManyToManyToMany::test_delete_intermediate_object ERROR tests/observes/test_m2m_m2m_m2m.py::TestObservesForManyToManyToManyToMany::test_gathered_objects_are_distinct ERROR tests/observes/test_o2m_o2m_o2m.py::TestObservesFor3LevelDeepOneToMany::test_simple_insert ERROR tests/observes/test_o2m_o2m_o2m.py::TestObservesFor3LevelDeepOneToMany::test_add_leaf_object ERROR tests/observes/test_o2m_o2m_o2m.py::TestObservesFor3LevelDeepOneToMany::test_remove_leaf_object ERROR tests/observes/test_o2m_o2m_o2m.py::TestObservesFor3LevelDeepOneToMany::test_delete_intermediate_object ERROR tests/observes/test_o2m_o2m_o2m.py::TestObservesFor3LevelDeepOneToMany::test_gathered_objects_are_distinct ERROR tests/observes/test_o2m_o2o_o2m.py::TestObservesForOneToManyToOneToMany::test_simple_insert ERROR tests/observes/test_o2m_o2o_o2m.py::TestObservesForOneToManyToOneToMany::test_add_leaf_object ERROR tests/observes/test_o2m_o2o_o2m.py::TestObservesForOneToManyToOneToMany::test_remove_leaf_object ERROR tests/observes/test_o2m_o2o_o2m.py::TestObservesForOneToManyToOneToMany::test_delete_intermediate_object ERROR tests/observes/test_o2m_o2o_o2m.py::TestObservesForOneToManyToOneToMany::test_gathered_objects_are_distinct ERROR tests/observes/test_o2o_o2o.py::TestObservesForOneToManyToOneToMany::test_observable_root_obj_is_none ERROR tests/observes/test_o2o_o2o_o2o.py::TestObservesForOneToOneToOneToOne::test_simple_insert ERROR tests/observes/test_o2o_o2o_o2o.py::TestObservesForOneToOneToOneToOne::test_replace_leaf_object ERROR tests/observes/test_o2o_o2o_o2o.py::TestObservesForOneToOneToOneToOne::test_delete_leaf_object ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_returns_correct_results[categories-categories-subcategories-result0] ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_returns_correct_results[articles-comments-comments-result1] ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_returns_correct_results[users-groups-groups-result2] ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_returns_correct_results[users-users-all_friends-result3] ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_returns_correct_results[users-users-all_friends.all_friends-result4] ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_returns_correct_results[users-users-groups.users-result5] ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_returns_correct_results[groups-articles-users.authored_articles-result6] ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_returns_correct_results[categories-categories-subcategories.subcategories-result7] ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_returns_correct_results[categories-categories-subcategories.subcategories.subcategories-result8] ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_order_by_intermediate_table_column ERROR tests/relationships/test_select_correlated_expression.py::TestSelectCorrelatedExpression::test_with_non_aggregate_function ERROR tests/types/test_composite.py::TestCompositeTypeWithRegularTypes::test_parameter_processing ERROR tests/types/test_composite.py::TestCompositeTypeWithRegularTypes::test_non_ascii_chars ERROR tests/types/test_composite.py::TestCompositeTypeWithRegularTypes::test_dict_input ERROR tests/types/test_composite.py::TestCompositeTypeWithRegularTypes::test_incomplete_dict ERROR tests/types/test_composite.py::TestCompositeTypeWhenTypeAlreadyExistsInDatabase::test_parameter_processing ERROR tests/types/test_composite.py::TestCompositeTypeWithMixedCase::test_parameter_processing ERROR tests/types/test_json.py::TestPostgresJSONType::test_list - sqlalchemy.... ERROR tests/types/test_json.py::TestPostgresJSONType::test_parameter_processing ERROR tests/types/test_json.py::TestPostgresJSONType::test_non_ascii_chars - ... ERROR tests/types/test_json.py::TestPostgresJSONType::test_compilation - sqla... ERROR tests/types/test_json.py::TestPostgresJSONType::test_unhashable_type - ... ERROR tests/types/test_ltree.py::TestLTREE::test_saves_path - sqlalchemy.exc.... ERROR tests/types/test_ltree.py::TestLTREE::test_literal_param - sqlalchemy.e... ERROR tests/types/test_ltree.py::TestLTREE::test_compilation - sqlalchemy.exc... ERROR tests/types/test_tsvector.py::TestTSVector::test_type_reflection - sqla... ERROR tests/types/test_tsvector.py::TestTSVector::test_catalog_passed_to_match ERROR tests/types/test_tsvector.py::TestTSVector::test_match_concatenation - ... ERROR tests/types/test_tsvector.py::TestTSVector::test_match_with_catalog - s... = 8 failed, 2216 passed, 351 skipped, 1 xfailed, 10 warnings, 108 errors in 52.29s = + : + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-sqlalchemy-utils-0.41.1-2.fc39.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.bL5Y4q + umask 022 + cd /builddir/build/BUILD + cd SQLAlchemy-Utils-0.41.1 + DOCDIR=/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/share/doc/python3-sqlalchemy-utils + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/share/doc/python3-sqlalchemy-utils + cp -pr /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/README.rst /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/share/doc/python3-sqlalchemy-utils + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.ja69ht + umask 022 + cd /builddir/build/BUILD + cd SQLAlchemy-Utils-0.41.1 + LICENSEDIR=/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/share/licenses/python3-sqlalchemy-utils + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/share/licenses/python3-sqlalchemy-utils + cp -pr /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/LICENSE /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64/usr/share/licenses/python3-sqlalchemy-utils + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-sqlalchemy-utils = 0.41.1-2.fc39 python3-sqlalchemy-utils = 0.41.1-2.fc39 python3.12-sqlalchemy-utils = 0.41.1-2.fc39 python3.12dist(sqlalchemy-utils) = 0.41.1 python3dist(sqlalchemy-utils) = 0.41.1 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.12 python3.12dist(sqlalchemy) >= 1.3 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 Wrote: /builddir/build/SRPMS/python-sqlalchemy-utils-0.41.1-2.fc39.src.rpm Wrote: /builddir/build/RPMS/python3-sqlalchemy-utils-0.41.1-2.fc39.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.i6279N + umask 022 + cd /builddir/build/BUILD + cd SQLAlchemy-Utils-0.41.1 + /usr/bin/rm -rf /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-2.fc39.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.MqjBKo + umask 022 + cd /builddir/build/BUILD + rm -rf SQLAlchemy-Utils-0.41.1 SQLAlchemy-Utils-0.41.1.gemspec + RPM_EC=0 ++ jobs -p + exit 0 Child return code was: 0