Warning: Permanently added '2620:52:3:1:dead:beef:cafe:c1d7' (ED25519) to the list of known hosts. You can reproduce this build on your computer by running: sudo dnf install copr-rpmbuild /usr/bin/copr-rpmbuild --verbose --drop-resultdir --task-url https://copr.fedorainfracloud.org/backend/get-build-task/7212582-fedora-39-x86_64 --chroot fedora-39-x86_64 Version: 0.72 PID: 6233 Logging PID: 6234 Task: {'allow_user_ssh': False, 'appstream': False, 'background': True, 'build_id': 7212582, 'buildroot_pkgs': [], 'chroot': 'fedora-39-x86_64', 'enable_net': False, 'fedora_review': False, 'git_hash': '40ba6c6bc4f5eb9ba597d6caab590e1b874ea00e', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/thrnciar/python-greenlet/python-sqlalchemy-utils', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'python-sqlalchemy-utils', 'package_version': '0.41.1-5', 'project_dirname': 'python-greenlet', 'project_name': 'python-greenlet', 'project_owner': 'thrnciar', 'repo_priority': None, 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/thrnciar/python-greenlet/fedora-39-x86_64/', 'id': 'copr_base', 'name': 'Copr repository', 'priority': None}], 'sandbox': 'thrnciar/python-greenlet--https://src.fedoraproject.org/user/nphilipp', 'source_json': {}, 'source_type': None, 'ssh_public_keys': None, 'submitter': 'https://src.fedoraproject.org/user/nphilipp', 'tags': [], 'task_id': '7212582-fedora-39-x86_64', 'timeout': 18000, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/thrnciar/python-greenlet/python-sqlalchemy-utils /var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils --depth 500 --no-single-branch --recursive cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/thrnciar/python-greenlet/python-sqlalchemy-utils', '/var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils'... Running: git checkout 40ba6c6bc4f5eb9ba597d6caab590e1b874ea00e -- cmd: ['git', 'checkout', '40ba6c6bc4f5eb9ba597d6caab590e1b874ea00e', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils rc: 0 stdout: stderr: Note: switching to '40ba6c6bc4f5eb9ba597d6caab590e1b874ea00e'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 40ba6c6 automatic import of python-sqlalchemy-utils Running: copr-distgit-client sources cmd: ['copr-distgit-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils rc: 0 stdout: stderr: INFO: Reading stdout from command: git rev-parse --abbrev-ref HEAD INFO: Reading stdout from command: git rev-parse HEAD INFO: Reading sources specification file: sources INFO: Downloading SQLAlchemy-Utils-0.41.1.tar.gz INFO: Reading stdout from command: curl --help all INFO: Calling: curl -H Pragma: -o SQLAlchemy-Utils-0.41.1.tar.gz --location --connect-timeout 60 --retry 3 --retry-delay 10 --remote-time --show-error --fail --retry-all-errors https://copr-dist-git.fedorainfracloud.org/repo/pkgs/thrnciar/python-greenlet/python-sqlalchemy-utils/SQLAlchemy-Utils-0.41.1.tar.gz/md5/424dc2d49b600d31eddf871dfd34650c/SQLAlchemy-Utils-0.41.1.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed /usr/bin/tail: /var/lib/copr-rpmbuild/main.log: file truncated 100 133k 100 133k 0 0 2135k 0 --:--:-- --:--:-- --:--:-- 2151k INFO: Reading stdout from command: md5sum SQLAlchemy-Utils-0.41.1.tar.gz Running (timeout=18000): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils/python-sqlalchemy-utils.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1711389296.877530 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 5.5 starting (python version = 3.12.1, NVR = mock-5.5-1.fc39), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils/python-sqlalchemy-utils.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1711389296.877530 -r /var/lib/copr-rpmbuild/results/configs/child.cfg Start(bootstrap): init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish(bootstrap): init plugins Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils/python-sqlalchemy-utils.spec) Config(fedora-39-x86_64) Start: clean chroot Finish: clean chroot Mock Version: 5.5 INFO: Mock Version: 5.5 Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-39-x86_64-bootstrap-1711389296.877530/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata INFO: Guessed host environment type: unknown INFO: Using bootstrap image: registry.fedoraproject.org/fedora:39 INFO: Pulling image: registry.fedoraproject.org/fedora:39 INFO: Copy content of container registry.fedoraproject.org/fedora:39 to /var/lib/mock/fedora-39-x86_64-bootstrap-1711389296.877530/root INFO: Checking that registry.fedoraproject.org/fedora:39 image matches host's architecture INFO: mounting registry.fedoraproject.org/fedora:39 with podman image mount INFO: image registry.fedoraproject.org/fedora:39 as /var/lib/containers/storage/overlay/8ff7ad910417a7b8a49019008335921d2aac0e3304a19ce258deabf431e59801/merged INFO: umounting image registry.fedoraproject.org/fedora:39 (/var/lib/containers/storage/overlay/8ff7ad910417a7b8a49019008335921d2aac0e3304a19ce258deabf431e59801/merged) with podman image umount INFO: Package manager dnf detected and used (fallback) INFO: Bootstrap image not marked ready Start(bootstrap): installing dnf tooling No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 2.5 MB/s | 402 kB 00:00 fedora 6.0 MB/s | 89 MB 00:14 updates 31 MB/s | 34 MB 00:01 Package python3-dnf-4.18.1-2.fc39.noarch is already installed. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: python3-dnf-plugins-core noarch 4.5.0-1.fc39 updates 318 k Upgrading: dnf noarch 4.19.0-1.fc39 updates 508 k dnf-data noarch 4.19.0-1.fc39 updates 40 k libdnf x86_64 0.73.0-1.fc39 updates 682 k python3-dnf noarch 4.19.0-1.fc39 updates 591 k python3-hawkey x86_64 0.73.0-1.fc39 updates 107 k python3-libdnf x86_64 0.73.0-1.fc39 updates 862 k yum noarch 4.19.0-1.fc39 updates 37 k Installing dependencies: dbus-libs x86_64 1:1.14.10-1.fc39 fedora 156 k python3-dateutil noarch 1:2.8.2-10.fc39 fedora 355 k python3-dbus x86_64 1.3.2-4.fc39 fedora 157 k python3-distro noarch 1.8.0-6.fc39 fedora 49 k python3-six noarch 1.16.0-12.fc39 fedora 41 k python3-systemd x86_64 235-5.fc39 fedora 107 k Transaction Summary ================================================================================ Install 7 Packages Upgrade 7 Packages Total download size: 3.9 M Downloading Packages: (1/14): dbus-libs-1.14.10-1.fc39.x86_64.rpm 591 kB/s | 156 kB 00:00 (2/14): python3-distro-1.8.0-6.fc39.noarch.rpm 851 kB/s | 49 kB 00:00 (3/14): python3-six-1.16.0-12.fc39.noarch.rpm 697 kB/s | 41 kB 00:00 (4/14): python3-dbus-1.3.2-4.fc39.x86_64.rpm 154 kB/s | 157 kB 00:01 (5/14): python3-systemd-235-5.fc39.x86_64.rpm 150 kB/s | 107 kB 00:00 (6/14): python3-dnf-plugins-core-4.5.0-1.fc39.n 2.1 MB/s | 318 kB 00:00 (7/14): dnf-data-4.19.0-1.fc39.noarch.rpm 1.7 MB/s | 40 kB 00:00 (8/14): libdnf-0.73.0-1.fc39.x86_64.rpm 13 MB/s | 682 kB 00:00 (9/14): dnf-4.19.0-1.fc39.noarch.rpm 3.1 MB/s | 508 kB 00:00 (10/14): python3-dnf-4.19.0-1.fc39.noarch.rpm 20 MB/s | 591 kB 00:00 (11/14): python3-hawkey-0.73.0-1.fc39.x86_64.rp 4.3 MB/s | 107 kB 00:00 (12/14): python3-libdnf-0.73.0-1.fc39.x86_64.rp 25 MB/s | 862 kB 00:00 (13/14): yum-4.19.0-1.fc39.noarch.rpm 1.6 MB/s | 37 kB 00:00 (14/14): python3-dateutil-2.8.2-10.fc39.noarch. 257 kB/s | 355 kB 00:01 -------------------------------------------------------------------------------- Total 2.7 MB/s | 3.9 MB 00:01 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Upgrading : libdnf-0.73.0-1.fc39.x86_64 1/21 Upgrading : python3-libdnf-0.73.0-1.fc39.x86_64 2/21 Upgrading : python3-hawkey-0.73.0-1.fc39.x86_64 3/21 Upgrading : dnf-data-4.19.0-1.fc39.noarch 4/21 Upgrading : python3-dnf-4.19.0-1.fc39.noarch 5/21 Upgrading : dnf-4.19.0-1.fc39.noarch 6/21 Running scriptlet: dnf-4.19.0-1.fc39.noarch 6/21 Installing : python3-systemd-235-5.fc39.x86_64 7/21 Installing : python3-six-1.16.0-12.fc39.noarch 8/21 Installing : python3-dateutil-1:2.8.2-10.fc39.noarch 9/21 Installing : python3-distro-1.8.0-6.fc39.noarch 10/21 Installing : dbus-libs-1:1.14.10-1.fc39.x86_64 11/21 Installing : python3-dbus-1.3.2-4.fc39.x86_64 12/21 Installing : python3-dnf-plugins-core-4.5.0-1.fc39.noarch 13/21 Upgrading : yum-4.19.0-1.fc39.noarch 14/21 Cleanup : yum-4.18.1-2.fc39.noarch 15/21 Running scriptlet: dnf-4.18.1-2.fc39.noarch 16/21 Cleanup : dnf-4.18.1-2.fc39.noarch 16/21 Running scriptlet: dnf-4.18.1-2.fc39.noarch 16/21 Cleanup : python3-dnf-4.18.1-2.fc39.noarch 17/21 Cleanup : python3-hawkey-0.72.0-1.fc39.x86_64 18/21 Cleanup : dnf-data-4.18.1-2.fc39.noarch 19/21 Cleanup : python3-libdnf-0.72.0-1.fc39.x86_64 20/21 Cleanup : libdnf-0.72.0-1.fc39.x86_64 21/21 Running scriptlet: libdnf-0.72.0-1.fc39.x86_64 21/21 Verifying : dbus-libs-1:1.14.10-1.fc39.x86_64 1/21 Verifying : python3-dateutil-1:2.8.2-10.fc39.noarch 2/21 Verifying : python3-dbus-1.3.2-4.fc39.x86_64 3/21 Verifying : python3-distro-1.8.0-6.fc39.noarch 4/21 Verifying : python3-six-1.16.0-12.fc39.noarch 5/21 Verifying : python3-systemd-235-5.fc39.x86_64 6/21 Verifying : python3-dnf-plugins-core-4.5.0-1.fc39.noarch 7/21 Verifying : dnf-4.19.0-1.fc39.noarch 8/21 Verifying : dnf-4.18.1-2.fc39.noarch 9/21 Verifying : dnf-data-4.19.0-1.fc39.noarch 10/21 Verifying : dnf-data-4.18.1-2.fc39.noarch 11/21 Verifying : libdnf-0.73.0-1.fc39.x86_64 12/21 Verifying : libdnf-0.72.0-1.fc39.x86_64 13/21 Verifying : python3-dnf-4.19.0-1.fc39.noarch 14/21 Verifying : python3-dnf-4.18.1-2.fc39.noarch 15/21 Verifying : python3-hawkey-0.73.0-1.fc39.x86_64 16/21 Verifying : python3-hawkey-0.72.0-1.fc39.x86_64 17/21 Verifying : python3-libdnf-0.73.0-1.fc39.x86_64 18/21 Verifying : python3-libdnf-0.72.0-1.fc39.x86_64 19/21 Verifying : yum-4.19.0-1.fc39.noarch 20/21 Verifying : yum-4.18.1-2.fc39.noarch 21/21 Upgraded: dnf-4.19.0-1.fc39.noarch dnf-data-4.19.0-1.fc39.noarch libdnf-0.73.0-1.fc39.x86_64 python3-dnf-4.19.0-1.fc39.noarch python3-hawkey-0.73.0-1.fc39.x86_64 python3-libdnf-0.73.0-1.fc39.x86_64 yum-4.19.0-1.fc39.noarch Installed: dbus-libs-1:1.14.10-1.fc39.x86_64 python3-dateutil-1:2.8.2-10.fc39.noarch python3-dbus-1.3.2-4.fc39.x86_64 python3-distro-1.8.0-6.fc39.noarch python3-dnf-plugins-core-4.5.0-1.fc39.noarch python3-six-1.16.0-12.fc39.noarch python3-systemd-235-5.fc39.x86_64 Complete! Finish(bootstrap): installing dnf tooling Start(bootstrap): creating root cache Finish(bootstrap): creating root cache Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-39-x86_64-1711389296.877530/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Package manager dnf detected and used (direct choice) INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-4.19.0-1.fc39.x86_64 rpm-sequoia-1.5.0-1.fc39.x86_64 python3-dnf-4.19.0-1.fc39.noarch python3-dnf-plugins-core-4.5.0-1.fc39.noarch yum-4.19.0-1.fc39.noarch Start: installing minimal buildroot with dnf No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 2.9 MB/s | 402 kB 00:00 fedora 26 MB/s | 89 MB 00:03 updates 9.4 MB/s | 34 MB 00:03 Dependencies resolved. ================================================================================ Package Arch Version Repo Size ================================================================================ Installing group/module packages: bash x86_64 5.2.26-1.fc39 updates 1.8 M bzip2 x86_64 1.0.8-16.fc39 fedora 52 k coreutils x86_64 9.3-5.fc39 updates 1.1 M cpio x86_64 2.14-4.fc39 fedora 279 k diffutils x86_64 3.10-3.fc39 fedora 398 k fedora-release-common noarch 39-36 updates 19 k findutils x86_64 1:4.9.0-5.fc39 fedora 492 k gawk x86_64 5.2.2-2.fc39 fedora 1.1 M glibc-minimal-langpack x86_64 2.38-16.fc39 updates 71 k grep x86_64 3.11-3.fc39 fedora 298 k gzip x86_64 1.12-6.fc39 fedora 166 k info x86_64 7.0.3-3.fc39 fedora 182 k patch x86_64 2.7.6-22.fc39 fedora 125 k redhat-rpm-config noarch 266-1.fc39 updates 78 k rpm-build x86_64 4.19.1.1-1.fc39 updates 78 k sed x86_64 4.8-14.fc39 fedora 306 k shadow-utils x86_64 2:4.14.0-2.fc39 updates 1.3 M tar x86_64 2:1.35-2.fc39 fedora 864 k unzip x86_64 6.0-62.fc39 fedora 184 k util-linux x86_64 2.39.3-6.fc39 updates 1.2 M which x86_64 2.21-40.fc39 fedora 42 k xz x86_64 5.4.4-1.fc39 fedora 556 k Installing dependencies: alternatives x86_64 1.26-1.fc39 updates 39 k ansible-srpm-macros noarch 1-12.fc39 updates 21 k audit-libs x86_64 3.1.2-8.fc39 updates 117 k authselect x86_64 1.4.3-1.fc39 fedora 149 k authselect-libs x86_64 1.4.3-1.fc39 fedora 249 k basesystem noarch 11-18.fc39 fedora 7.2 k binutils x86_64 2.40-14.fc39 updates 5.6 M binutils-gold x86_64 2.40-14.fc39 updates 795 k bzip2-libs x86_64 1.0.8-16.fc39 fedora 41 k ca-certificates noarch 2023.2.60_v7.0.306-2.fc39 fedora 837 k coreutils-common x86_64 9.3-5.fc39 updates 2.1 M cracklib x86_64 2.9.11-2.fc39 fedora 94 k crypto-policies noarch 20231204-1.git1e3a2e4.fc39 updates 100 k curl x86_64 8.2.1-4.fc39 updates 345 k cyrus-sasl-lib x86_64 2.1.28-11.fc39 fedora 793 k debugedit x86_64 5.0-12.fc39 updates 79 k dwz x86_64 0.15-3.fc39 fedora 134 k ed x86_64 1.19-4.fc39 fedora 79 k efi-srpm-macros noarch 5-9.fc39 fedora 22 k elfutils x86_64 0.191-2.fc39 updates 559 k elfutils-debuginfod-client x86_64 0.191-2.fc39 updates 38 k elfutils-default-yama-scope noarch 0.191-2.fc39 updates 13 k elfutils-libelf x86_64 0.191-2.fc39 updates 209 k elfutils-libs x86_64 0.191-2.fc39 updates 263 k fedora-gpg-keys noarch 39-1 fedora 130 k fedora-release noarch 39-36 updates 8.6 k fedora-release-identity-basic noarch 39-36 updates 9.4 k fedora-repos noarch 39-1 fedora 9.3 k file x86_64 5.44-5.fc39 fedora 49 k file-libs x86_64 5.44-5.fc39 fedora 729 k filesystem x86_64 3.18-6.fc39 fedora 1.1 M fonts-srpm-macros noarch 1:2.0.5-12.fc39 fedora 26 k forge-srpm-macros noarch 0.2.0-3.fc39 updates 19 k fpc-srpm-macros noarch 1.3-8.fc39 fedora 7.4 k gdb-minimal x86_64 14.1-4.fc39 updates 4.3 M gdbm-libs x86_64 1:1.23-4.fc39 fedora 56 k ghc-srpm-macros noarch 1.6.1-2.fc39 fedora 7.8 k glibc x86_64 2.38-16.fc39 updates 2.2 M glibc-common x86_64 2.38-16.fc39 updates 353 k glibc-gconv-extra x86_64 2.38-16.fc39 updates 1.6 M gmp x86_64 1:6.2.1-5.fc39 fedora 313 k gnat-srpm-macros noarch 6-3.fc39 fedora 8.8 k go-srpm-macros noarch 3.4.0-2.fc39 updates 27 k jansson x86_64 2.13.1-7.fc39 fedora 44 k kernel-srpm-macros noarch 1.0-20.fc39 fedora 10 k keyutils-libs x86_64 1.6.3-1.fc39 updates 31 k krb5-libs x86_64 1.21.2-3.fc39 updates 765 k libacl x86_64 2.3.1-9.fc39 updates 23 k libarchive x86_64 3.7.1-1.fc39 fedora 408 k libattr x86_64 2.5.1-8.fc39 fedora 18 k libblkid x86_64 2.39.3-6.fc39 updates 117 k libbrotli x86_64 1.1.0-1.fc39 fedora 336 k libcap x86_64 2.48-9.fc39 updates 68 k libcap-ng x86_64 0.8.3-8.fc39 fedora 32 k libcom_err x86_64 1.47.0-2.fc39 fedora 26 k libcurl x86_64 8.2.1-4.fc39 updates 323 k libdb x86_64 5.3.28-56.fc39 fedora 760 k libeconf x86_64 0.5.2-1.fc39 fedora 30 k libevent x86_64 2.1.12-9.fc39 fedora 258 k libfdisk x86_64 2.39.3-6.fc39 updates 162 k libffi x86_64 3.4.4-4.fc39 fedora 40 k libgcc x86_64 13.2.1-7.fc39 updates 115 k libgomp x86_64 13.2.1-7.fc39 updates 324 k libidn2 x86_64 2.3.7-1.fc39 updates 119 k libmount x86_64 2.39.3-6.fc39 updates 155 k libnghttp2 x86_64 1.55.1-4.fc39 updates 76 k libnsl2 x86_64 2.0.0-6.fc39 fedora 30 k libpkgconf x86_64 1.9.5-2.fc39 fedora 38 k libpsl x86_64 0.21.2-4.fc39 fedora 63 k libpwquality x86_64 1.4.5-6.fc39 fedora 120 k libselinux x86_64 3.5-5.fc39 fedora 87 k libsemanage x86_64 3.5-4.fc39 fedora 120 k libsepol x86_64 3.5-2.fc39 fedora 324 k libsigsegv x86_64 2.14-5.fc39 fedora 27 k libsmartcols x86_64 2.39.3-6.fc39 updates 67 k libssh x86_64 0.10.6-2.fc39 updates 212 k libssh-config noarch 0.10.6-2.fc39 updates 9.0 k libstdc++ x86_64 13.2.1-7.fc39 updates 867 k libtasn1 x86_64 4.19.0-3.fc39 fedora 74 k libtirpc x86_64 1.3.4-1.rc3.fc39 updates 93 k libunistring x86_64 1.1-5.fc39 fedora 543 k libutempter x86_64 1.2.1-10.fc39 fedora 26 k libuuid x86_64 2.39.3-6.fc39 updates 28 k libverto x86_64 0.3.2-6.fc39 fedora 20 k libxcrypt x86_64 4.4.36-2.fc39 fedora 119 k libxml2 x86_64 2.10.4-3.fc39 fedora 701 k libzstd x86_64 1.5.5-4.fc39 fedora 309 k lua-libs x86_64 5.4.6-3.fc39 fedora 133 k lua-srpm-macros noarch 1-13.fc39 updates 8.7 k lz4-libs x86_64 1.9.4-4.fc39 fedora 67 k mpfr x86_64 4.2.0-3.fc39 fedora 344 k ncurses-base noarch 6.4-7.20230520.fc39.1 updates 88 k ncurses-libs x86_64 6.4-7.20230520.fc39.1 updates 336 k ocaml-srpm-macros noarch 8-2.fc39 fedora 14 k openblas-srpm-macros noarch 2-14.fc39 fedora 7.5 k openldap x86_64 2.6.6-1.fc39 fedora 255 k openssl-libs x86_64 1:3.1.1-4.fc39 fedora 2.2 M p11-kit x86_64 0.25.3-1.fc39 updates 520 k p11-kit-trust x86_64 0.25.3-1.fc39 updates 140 k package-notes-srpm-macros noarch 0.5-9.fc39 fedora 11 k pam x86_64 1.5.3-3.fc39 updates 542 k pam-libs x86_64 1.5.3-3.fc39 updates 56 k pcre2 x86_64 10.42-1.fc39.2 fedora 233 k pcre2-syntax noarch 10.42-1.fc39.2 fedora 143 k perl-srpm-macros noarch 1-51.fc39 fedora 8.0 k pkgconf x86_64 1.9.5-2.fc39 fedora 42 k pkgconf-m4 noarch 1.9.5-2.fc39 fedora 14 k pkgconf-pkg-config x86_64 1.9.5-2.fc39 fedora 9.6 k popt x86_64 1.19-3.fc39 fedora 66 k publicsuffix-list-dafsa noarch 20240107-1.fc39 updates 58 k pyproject-srpm-macros noarch 1.12.0-1.fc39 updates 14 k python-srpm-macros noarch 3.12-4.fc39 fedora 25 k qt5-srpm-macros noarch 5.15.12-1.fc39 updates 8.4 k qt6-srpm-macros noarch 6.6.2-1.fc39 updates 8.9 k readline x86_64 8.2-6.fc39 updates 212 k rpm x86_64 4.19.1.1-1.fc39 updates 538 k rpm-build-libs x86_64 4.19.1.1-1.fc39 updates 95 k rpm-libs x86_64 4.19.1.1-1.fc39 updates 312 k rpm-sequoia x86_64 1.6.0-1.fc39 updates 848 k rpmautospec-rpm-macros noarch 0.6.3-1.fc39 updates 10 k rust-srpm-macros noarch 26.2-1.fc39 updates 13 k setup noarch 2.14.4-1.fc39 fedora 154 k sqlite-libs x86_64 3.42.0-7.fc39 fedora 678 k systemd-libs x86_64 254.10-1.fc39 updates 687 k util-linux-core x86_64 2.39.3-6.fc39 updates 508 k xxhash-libs x86_64 0.8.2-1.fc39 fedora 37 k xz-libs x86_64 5.4.4-1.fc39 fedora 108 k zip x86_64 3.0-39.fc39 fedora 266 k zlib x86_64 1.2.13-4.fc39 fedora 94 k zstd x86_64 1.5.5-4.fc39 fedora 482 k Installing Groups: Buildsystem building group Transaction Summary ================================================================================ Install 152 Packages Total download size: 52 M Installed size: 179 M Downloading Packages: (1/152): basesystem-11-18.fc39.noarch.rpm 21 kB/s | 7.2 kB 00:00 (2/152): bzip2-1.0.8-16.fc39.x86_64.rpm 218 kB/s | 52 kB 00:00 (3/152): authselect-1.4.3-1.fc39.x86_64.rpm 231 kB/s | 149 kB 00:00 (4/152): bzip2-libs-1.0.8-16.fc39.x86_64.rpm 513 kB/s | 41 kB 00:00 (5/152): authselect-libs-1.4.3-1.fc39.x86_64.rp 336 kB/s | 249 kB 00:00 (6/152): cracklib-2.9.11-2.fc39.x86_64.rpm 582 kB/s | 94 kB 00:00 (7/152): cpio-2.14-4.fc39.x86_64.rpm 697 kB/s | 279 kB 00:00 (8/152): diffutils-3.10-3.fc39.x86_64.rpm 816 kB/s | 398 kB 00:00 (9/152): ca-certificates-2023.2.60_v7.0.306-2.f 797 kB/s | 837 kB 00:01 (10/152): dwz-0.15-3.fc39.x86_64.rpm 834 kB/s | 134 kB 00:00 (11/152): ed-1.19-4.fc39.x86_64.rpm 970 kB/s | 79 kB 00:00 (12/152): efi-srpm-macros-5-9.fc39.noarch.rpm 277 kB/s | 22 kB 00:00 (13/152): fedora-repos-39-1.noarch.rpm 113 kB/s | 9.3 kB 00:00 (14/152): fedora-gpg-keys-39-1.noarch.rpm 803 kB/s | 130 kB 00:00 (15/152): cyrus-sasl-lib-2.1.28-11.fc39.x86_64. 755 kB/s | 793 kB 00:01 (16/152): file-5.44-5.fc39.x86_64.rpm 567 kB/s | 49 kB 00:00 (17/152): findutils-4.9.0-5.fc39.x86_64.rpm 764 kB/s | 492 kB 00:00 (18/152): fonts-srpm-macros-2.0.5-12.fc39.noarc 328 kB/s | 26 kB 00:00 (19/152): fpc-srpm-macros-1.3-8.fc39.noarch.rpm 91 kB/s | 7.4 kB 00:00 (20/152): file-libs-5.44-5.fc39.x86_64.rpm 819 kB/s | 729 kB 00:00 (21/152): gdbm-libs-1.23-4.fc39.x86_64.rpm 688 kB/s | 56 kB 00:00 (22/152): ghc-srpm-macros-1.6.1-2.fc39.noarch.r 96 kB/s | 7.8 kB 00:00 (23/152): gmp-6.2.1-5.fc39.x86_64.rpm 757 kB/s | 313 kB 00:00 (24/152): filesystem-3.18-6.fc39.x86_64.rpm 762 kB/s | 1.1 MB 00:01 (25/152): gnat-srpm-macros-6-3.fc39.noarch.rpm 110 kB/s | 8.8 kB 00:00 (26/152): gzip-1.12-6.fc39.x86_64.rpm 687 kB/s | 166 kB 00:00 (27/152): grep-3.11-3.fc39.x86_64.rpm 743 kB/s | 298 kB 00:00 (28/152): jansson-2.13.1-7.fc39.x86_64.rpm 547 kB/s | 44 kB 00:00 (29/152): info-7.0.3-3.fc39.x86_64.rpm 752 kB/s | 182 kB 00:00 (30/152): kernel-srpm-macros-1.0-20.fc39.noarch 131 kB/s | 10 kB 00:00 (31/152): libattr-2.5.1-8.fc39.x86_64.rpm 219 kB/s | 18 kB 00:00 (32/152): gawk-5.2.2-2.fc39.x86_64.rpm 801 kB/s | 1.1 MB 00:01 (33/152): libcap-ng-0.8.3-8.fc39.x86_64.rpm 389 kB/s | 32 kB 00:00 (34/152): libcom_err-1.47.0-2.fc39.x86_64.rpm 321 kB/s | 26 kB 00:00 (35/152): libarchive-3.7.1-1.fc39.x86_64.rpm 829 kB/s | 408 kB 00:00 (36/152): libeconf-0.5.2-1.fc39.x86_64.rpm 376 kB/s | 30 kB 00:00 (37/152): libevent-2.1.12-9.fc39.x86_64.rpm 803 kB/s | 258 kB 00:00 (38/152): libffi-3.4.4-4.fc39.x86_64.rpm 492 kB/s | 40 kB 00:00 (39/152): libbrotli-1.1.0-1.fc39.x86_64.rpm 368 kB/s | 336 kB 00:00 (40/152): libnsl2-2.0.0-6.fc39.x86_64.rpm 367 kB/s | 30 kB 00:00 (41/152): libpkgconf-1.9.5-2.fc39.x86_64.rpm 469 kB/s | 38 kB 00:00 (42/152): libpsl-0.21.2-4.fc39.x86_64.rpm 770 kB/s | 63 kB 00:00 (43/152): libpwquality-1.4.5-6.fc39.x86_64.rpm 734 kB/s | 120 kB 00:00 (44/152): libselinux-3.5-5.fc39.x86_64.rpm 541 kB/s | 87 kB 00:00 (45/152): libsemanage-3.5-4.fc39.x86_64.rpm 744 kB/s | 120 kB 00:00 (46/152): libsigsegv-2.14-5.fc39.x86_64.rpm 332 kB/s | 27 kB 00:00 (47/152): libdb-5.3.28-56.fc39.x86_64.rpm 625 kB/s | 760 kB 00:01 (48/152): libtasn1-4.19.0-3.fc39.x86_64.rpm 463 kB/s | 74 kB 00:00 (49/152): libsepol-3.5-2.fc39.x86_64.rpm 808 kB/s | 324 kB 00:00 (50/152): libutempter-1.2.1-10.fc39.x86_64.rpm 327 kB/s | 26 kB 00:00 (51/152): libverto-0.3.2-6.fc39.x86_64.rpm 254 kB/s | 20 kB 00:00 (52/152): libxcrypt-4.4.36-2.fc39.x86_64.rpm 741 kB/s | 119 kB 00:00 (53/152): libunistring-1.1-5.fc39.x86_64.rpm 752 kB/s | 543 kB 00:00 (54/152): libzstd-1.5.5-4.fc39.x86_64.rpm 766 kB/s | 309 kB 00:00 (55/152): lz4-libs-1.9.4-4.fc39.x86_64.rpm 408 kB/s | 67 kB 00:00 (56/152): lua-libs-5.4.6-3.fc39.x86_64.rpm 530 kB/s | 133 kB 00:00 (57/152): ocaml-srpm-macros-8-2.fc39.noarch.rpm 150 kB/s | 14 kB 00:00 (58/152): libxml2-2.10.4-3.fc39.x86_64.rpm 366 kB/s | 701 kB 00:01 (59/152): openblas-srpm-macros-2-14.fc39.noarch 4.6 kB/s | 7.5 kB 00:01 (60/152): mpfr-4.2.0-3.fc39.x86_64.rpm 179 kB/s | 344 kB 00:01 (61/152): package-notes-srpm-macros-0.5-9.fc39. 124 kB/s | 11 kB 00:00 (62/152): openldap-2.6.6-1.fc39.x86_64.rpm 183 kB/s | 255 kB 00:01 (63/152): patch-2.7.6-22.fc39.x86_64.rpm 106 kB/s | 125 kB 00:01 (64/152): pcre2-10.42-1.fc39.2.x86_64.rpm 210 kB/s | 233 kB 00:01 (65/152): perl-srpm-macros-1-51.fc39.noarch.rpm 95 kB/s | 8.0 kB 00:00 (66/152): pkgconf-1.9.5-2.fc39.x86_64.rpm 95 kB/s | 42 kB 00:00 (67/152): pkgconf-m4-1.9.5-2.fc39.noarch.rpm 170 kB/s | 14 kB 00:00 (68/152): pkgconf-pkg-config-1.9.5-2.fc39.x86_6 120 kB/s | 9.6 kB 00:00 (69/152): popt-1.19-3.fc39.x86_64.rpm 164 kB/s | 66 kB 00:00 (70/152): python-srpm-macros-3.12-4.fc39.noarch 156 kB/s | 25 kB 00:00 (71/152): pcre2-syntax-10.42-1.fc39.2.noarch.rp 77 kB/s | 143 kB 00:01 (72/152): setup-2.14.4-1.fc39.noarch.rpm 175 kB/s | 154 kB 00:00 (73/152): sed-4.8-14.fc39.x86_64.rpm 274 kB/s | 306 kB 00:01 (74/152): sqlite-libs-3.42.0-7.fc39.x86_64.rpm 471 kB/s | 678 kB 00:01 (75/152): tar-1.35-2.fc39.x86_64.rpm 601 kB/s | 864 kB 00:01 (76/152): unzip-6.0-62.fc39.x86_64.rpm 767 kB/s | 184 kB 00:00 (77/152): which-2.21-40.fc39.x86_64.rpm 520 kB/s | 42 kB 00:00 (78/152): xxhash-libs-0.8.2-1.fc39.x86_64.rpm 464 kB/s | 37 kB 00:00 (79/152): xz-libs-5.4.4-1.fc39.x86_64.rpm 674 kB/s | 108 kB 00:00 (80/152): openssl-libs-3.1.1-4.fc39.x86_64.rpm 364 kB/s | 2.2 MB 00:06 (81/152): zlib-1.2.13-4.fc39.x86_64.rpm 590 kB/s | 94 kB 00:00 (82/152): zip-3.0-39.fc39.x86_64.rpm 634 kB/s | 266 kB 00:00 (83/152): xz-5.4.4-1.fc39.x86_64.rpm 730 kB/s | 556 kB 00:00 (84/152): alternatives-1.26-1.fc39.x86_64.rpm 254 kB/s | 39 kB 00:00 (85/152): ansible-srpm-macros-1-12.fc39.noarch. 317 kB/s | 21 kB 00:00 (86/152): audit-libs-3.1.2-8.fc39.x86_64.rpm 2.3 MB/s | 117 kB 00:00 (87/152): zstd-1.5.5-4.fc39.x86_64.rpm 678 kB/s | 482 kB 00:00 (88/152): bash-5.2.26-1.fc39.x86_64.rpm 3.9 MB/s | 1.8 MB 00:00 (89/152): binutils-2.40-14.fc39.x86_64.rpm 12 MB/s | 5.6 MB 00:00 (90/152): coreutils-common-9.3-5.fc39.x86_64.rp 16 MB/s | 2.1 MB 00:00 (91/152): coreutils-9.3-5.fc39.x86_64.rpm 5.8 MB/s | 1.1 MB 00:00 (92/152): crypto-policies-20231204-1.git1e3a2e4 5.1 MB/s | 100 kB 00:00 (93/152): binutils-gold-2.40-14.fc39.x86_64.rpm 2.1 MB/s | 795 kB 00:00 (94/152): debugedit-5.0-12.fc39.x86_64.rpm 4.1 MB/s | 79 kB 00:00 (95/152): curl-8.2.1-4.fc39.x86_64.rpm 9.0 MB/s | 345 kB 00:00 (96/152): elfutils-debuginfod-client-0.191-2.fc 2.1 MB/s | 38 kB 00:00 (97/152): elfutils-default-yama-scope-0.191-2.f 756 kB/s | 13 kB 00:00 (98/152): elfutils-libelf-0.191-2.fc39.x86_64.r 11 MB/s | 209 kB 00:00 (99/152): fedora-release-39-36.noarch.rpm 495 kB/s | 8.6 kB 00:00 (100/152): elfutils-libs-0.191-2.fc39.x86_64.rp 7.3 MB/s | 263 kB 00:00 (101/152): fedora-release-common-39-36.noarch.r 1.1 MB/s | 19 kB 00:00 (102/152): fedora-release-identity-basic-39-36. 542 kB/s | 9.4 kB 00:00 (103/152): forge-srpm-macros-0.2.0-3.fc39.noarc 1.0 MB/s | 19 kB 00:00 (104/152): elfutils-0.191-2.fc39.x86_64.rpm 5.1 MB/s | 559 kB 00:00 (105/152): glibc-common-2.38-16.fc39.x86_64.rpm 5.3 MB/s | 353 kB 00:00 (106/152): glibc-2.38-16.fc39.x86_64.rpm 26 MB/s | 2.2 MB 00:00 (107/152): glibc-minimal-langpack-2.38-16.fc39. 3.4 MB/s | 71 kB 00:00 (108/152): go-srpm-macros-3.4.0-2.fc39.noarch.r 1.5 MB/s | 27 kB 00:00 (109/152): keyutils-libs-1.6.3-1.fc39.x86_64.rp 1.7 MB/s | 31 kB 00:00 (110/152): krb5-libs-1.21.2-3.fc39.x86_64.rpm 19 MB/s | 765 kB 00:00 (111/152): libacl-2.3.1-9.fc39.x86_64.rpm 1.3 MB/s | 23 kB 00:00 (112/152): libblkid-2.39.3-6.fc39.x86_64.rpm 6.0 MB/s | 117 kB 00:00 (113/152): libcap-2.48-9.fc39.x86_64.rpm 3.4 MB/s | 68 kB 00:00 (114/152): libcurl-8.2.1-4.fc39.x86_64.rpm 15 MB/s | 323 kB 00:00 (115/152): glibc-gconv-extra-2.38-16.fc39.x86_6 8.2 MB/s | 1.6 MB 00:00 (116/152): libfdisk-2.39.3-6.fc39.x86_64.rpm 8.1 MB/s | 162 kB 00:00 (117/152): gdb-minimal-14.1-4.fc39.x86_64.rpm 14 MB/s | 4.3 MB 00:00 (118/152): libgcc-13.2.1-7.fc39.x86_64.rpm 6.0 MB/s | 115 kB 00:00 (119/152): libgomp-13.2.1-7.fc39.x86_64.rpm 15 MB/s | 324 kB 00:00 (120/152): libidn2-2.3.7-1.fc39.x86_64.rpm 6.2 MB/s | 119 kB 00:00 (121/152): libmount-2.39.3-6.fc39.x86_64.rpm 7.9 MB/s | 155 kB 00:00 (122/152): libnghttp2-1.55.1-4.fc39.x86_64.rpm 4.1 MB/s | 76 kB 00:00 (123/152): libsmartcols-2.39.3-6.fc39.x86_64.rp 3.7 MB/s | 67 kB 00:00 (124/152): libssh-config-0.10.6-2.fc39.noarch.r 515 kB/s | 9.0 kB 00:00 (125/152): libssh-0.10.6-2.fc39.x86_64.rpm 5.3 MB/s | 212 kB 00:00 (126/152): libtirpc-1.3.4-1.rc3.fc39.x86_64.rpm 5.0 MB/s | 93 kB 00:00 (127/152): libuuid-2.39.3-6.fc39.x86_64.rpm 1.4 MB/s | 28 kB 00:00 (128/152): lua-srpm-macros-1-13.fc39.noarch.rpm 499 kB/s | 8.7 kB 00:00 (129/152): libstdc++-13.2.1-7.fc39.x86_64.rpm 15 MB/s | 867 kB 00:00 (130/152): ncurses-base-6.4-7.20230520.fc39.1.n 4.7 MB/s | 88 kB 00:00 (131/152): ncurses-libs-6.4-7.20230520.fc39.1.x 14 MB/s | 336 kB 00:00 (132/152): p11-kit-trust-0.25.3-1.fc39.x86_64.r 4.9 MB/s | 140 kB 00:00 (133/152): pam-1.5.3-3.fc39.x86_64.rpm 21 MB/s | 542 kB 00:00 (134/152): p11-kit-0.25.3-1.fc39.x86_64.rpm 11 MB/s | 520 kB 00:00 (135/152): pam-libs-1.5.3-3.fc39.x86_64.rpm 3.1 MB/s | 56 kB 00:00 (136/152): publicsuffix-list-dafsa-20240107-1.f 3.1 MB/s | 58 kB 00:00 (137/152): pyproject-srpm-macros-1.12.0-1.fc39. 773 kB/s | 14 kB 00:00 (138/152): qt5-srpm-macros-5.15.12-1.fc39.noarc 476 kB/s | 8.4 kB 00:00 (139/152): qt6-srpm-macros-6.6.2-1.fc39.noarch. 506 kB/s | 8.9 kB 00:00 (140/152): readline-8.2-6.fc39.x86_64.rpm 11 MB/s | 212 kB 00:00 (141/152): redhat-rpm-config-266-1.fc39.noarch. 4.2 MB/s | 78 kB 00:00 (142/152): rpm-4.19.1.1-1.fc39.x86_64.rpm 23 MB/s | 538 kB 00:00 (143/152): rpm-build-4.19.1.1-1.fc39.x86_64.rpm 3.9 MB/s | 78 kB 00:00 (144/152): rpm-build-libs-4.19.1.1-1.fc39.x86_6 4.6 MB/s | 95 kB 00:00 (145/152): rpm-libs-4.19.1.1-1.fc39.x86_64.rpm 15 MB/s | 312 kB 00:00 (146/152): rpmautospec-rpm-macros-0.6.3-1.fc39. 455 kB/s | 10 kB 00:00 (147/152): rust-srpm-macros-26.2-1.fc39.noarch. 711 kB/s | 13 kB 00:00 (148/152): rpm-sequoia-1.6.0-1.fc39.x86_64.rpm 19 MB/s | 848 kB 00:00 (149/152): systemd-libs-254.10-1.fc39.x86_64.rp 19 MB/s | 687 kB 00:00 (150/152): util-linux-core-2.39.3-6.fc39.x86_64 22 MB/s | 508 kB 00:00 (151/152): util-linux-2.39.3-6.fc39.x86_64.rpm 20 MB/s | 1.2 MB 00:00 (152/152): shadow-utils-4.14.0-2.fc39.x86_64.rp 11 MB/s | 1.3 MB 00:00 -------------------------------------------------------------------------------- Total 3.2 MB/s | 52 MB 00:16 fedora 1.6 MB/s | 1.6 kB 00:00 Importing GPG key 0x18B8E74C: Userid : "Fedora (39) " Fingerprint: E8F2 3996 F232 1864 0CB4 4CBE 75CF 5AC4 18B8 E74C From : /usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-39-primary Key imported successfully Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Running scriptlet: filesystem-3.18-6.fc39.x86_64 1/1 Preparing : 1/1 Installing : libgcc-13.2.1-7.fc39.x86_64 1/152 Running scriptlet: libgcc-13.2.1-7.fc39.x86_64 1/152 Installing : crypto-policies-20231204-1.git1e3a2e4.fc39.noarc 2/152 Running scriptlet: crypto-policies-20231204-1.git1e3a2e4.fc39.noarc 2/152 Installing : fedora-release-identity-basic-39-36.noarch 3/152 Installing : fedora-gpg-keys-39-1.noarch 4/152 Installing : fedora-repos-39-1.noarch 5/152 Installing : fedora-release-common-39-36.noarch 6/152 Installing : fedora-release-39-36.noarch 7/152 Installing : setup-2.14.4-1.fc39.noarch 8/152 warning: /etc/hosts created as /etc/hosts.rpmnew Running scriptlet: setup-2.14.4-1.fc39.noarch 8/152 Installing : filesystem-3.18-6.fc39.x86_64 9/152 Installing : basesystem-11-18.fc39.noarch 10/152 Installing : rust-srpm-macros-26.2-1.fc39.noarch 11/152 Installing : qt6-srpm-macros-6.6.2-1.fc39.noarch 12/152 Installing : qt5-srpm-macros-5.15.12-1.fc39.noarch 13/152 Installing : publicsuffix-list-dafsa-20240107-1.fc39.noarch 14/152 Installing : ncurses-base-6.4-7.20230520.fc39.1.noarch 15/152 Installing : glibc-gconv-extra-2.38-16.fc39.x86_64 16/152 Running scriptlet: glibc-gconv-extra-2.38-16.fc39.x86_64 16/152 Installing : glibc-minimal-langpack-2.38-16.fc39.x86_64 17/152 Installing : glibc-common-2.38-16.fc39.x86_64 18/152 Running scriptlet: glibc-2.38-16.fc39.x86_64 19/152 Installing : glibc-2.38-16.fc39.x86_64 19/152 Running scriptlet: glibc-2.38-16.fc39.x86_64 19/152 Installing : ncurses-libs-6.4-7.20230520.fc39.1.x86_64 20/152 Installing : bash-5.2.26-1.fc39.x86_64 21/152 Running scriptlet: bash-5.2.26-1.fc39.x86_64 21/152 Installing : zlib-1.2.13-4.fc39.x86_64 22/152 Installing : xz-libs-5.4.4-1.fc39.x86_64 23/152 Installing : bzip2-libs-1.0.8-16.fc39.x86_64 24/152 Installing : libzstd-1.5.5-4.fc39.x86_64 25/152 Installing : elfutils-libelf-0.191-2.fc39.x86_64 26/152 Installing : popt-1.19-3.fc39.x86_64 27/152 Installing : libstdc++-13.2.1-7.fc39.x86_64 28/152 Installing : libuuid-2.39.3-6.fc39.x86_64 29/152 Installing : libblkid-2.39.3-6.fc39.x86_64 30/152 Installing : readline-8.2-6.fc39.x86_64 31/152 Installing : gmp-1:6.2.1-5.fc39.x86_64 32/152 Installing : libattr-2.5.1-8.fc39.x86_64 33/152 Installing : libacl-2.3.1-9.fc39.x86_64 34/152 Installing : libxcrypt-4.4.36-2.fc39.x86_64 35/152 Installing : libcap-2.48-9.fc39.x86_64 36/152 Installing : libeconf-0.5.2-1.fc39.x86_64 37/152 Installing : lz4-libs-1.9.4-4.fc39.x86_64 38/152 Installing : systemd-libs-254.10-1.fc39.x86_64 39/152 Installing : mpfr-4.2.0-3.fc39.x86_64 40/152 Installing : dwz-0.15-3.fc39.x86_64 41/152 Installing : unzip-6.0-62.fc39.x86_64 42/152 Installing : file-libs-5.44-5.fc39.x86_64 43/152 Installing : file-5.44-5.fc39.x86_64 44/152 Installing : jansson-2.13.1-7.fc39.x86_64 45/152 Installing : libcap-ng-0.8.3-8.fc39.x86_64 46/152 Installing : audit-libs-3.1.2-8.fc39.x86_64 47/152 Installing : pam-libs-1.5.3-3.fc39.x86_64 48/152 Installing : libcom_err-1.47.0-2.fc39.x86_64 49/152 Installing : libsepol-3.5-2.fc39.x86_64 50/152 Installing : libtasn1-4.19.0-3.fc39.x86_64 51/152 Installing : libunistring-1.1-5.fc39.x86_64 52/152 Installing : libidn2-2.3.7-1.fc39.x86_64 53/152 Installing : lua-libs-5.4.6-3.fc39.x86_64 54/152 Installing : alternatives-1.26-1.fc39.x86_64 55/152 Installing : libsmartcols-2.39.3-6.fc39.x86_64 56/152 Installing : libpsl-0.21.2-4.fc39.x86_64 57/152 Installing : zip-3.0-39.fc39.x86_64 58/152 Installing : zstd-1.5.5-4.fc39.x86_64 59/152 Installing : libfdisk-2.39.3-6.fc39.x86_64 60/152 Installing : bzip2-1.0.8-16.fc39.x86_64 61/152 Installing : libxml2-2.10.4-3.fc39.x86_64 62/152 Installing : sqlite-libs-3.42.0-7.fc39.x86_64 63/152 Installing : ed-1.19-4.fc39.x86_64 64/152 Installing : elfutils-default-yama-scope-0.191-2.fc39.noarch 65/152 Running scriptlet: elfutils-default-yama-scope-0.191-2.fc39.noarch 65/152 Installing : cpio-2.14-4.fc39.x86_64 66/152 Installing : diffutils-3.10-3.fc39.x86_64 67/152 Installing : gdbm-libs-1:1.23-4.fc39.x86_64 68/152 Installing : cyrus-sasl-lib-2.1.28-11.fc39.x86_64 69/152 Installing : libbrotli-1.1.0-1.fc39.x86_64 70/152 Installing : libdb-5.3.28-56.fc39.x86_64 71/152 Installing : libffi-3.4.4-4.fc39.x86_64 72/152 Installing : p11-kit-0.25.3-1.fc39.x86_64 73/152 Installing : p11-kit-trust-0.25.3-1.fc39.x86_64 74/152 Running scriptlet: p11-kit-trust-0.25.3-1.fc39.x86_64 74/152 Installing : libpkgconf-1.9.5-2.fc39.x86_64 75/152 Installing : pkgconf-1.9.5-2.fc39.x86_64 76/152 Installing : libsigsegv-2.14-5.fc39.x86_64 77/152 Installing : gawk-5.2.2-2.fc39.x86_64 78/152 Installing : libverto-0.3.2-6.fc39.x86_64 79/152 Installing : xxhash-libs-0.8.2-1.fc39.x86_64 80/152 Installing : keyutils-libs-1.6.3-1.fc39.x86_64 81/152 Installing : libgomp-13.2.1-7.fc39.x86_64 82/152 Installing : libnghttp2-1.55.1-4.fc39.x86_64 83/152 Installing : libssh-config-0.10.6-2.fc39.noarch 84/152 Installing : coreutils-common-9.3-5.fc39.x86_64 85/152 Installing : ansible-srpm-macros-1-12.fc39.noarch 86/152 Installing : pkgconf-m4-1.9.5-2.fc39.noarch 87/152 Installing : pkgconf-pkg-config-1.9.5-2.fc39.x86_64 88/152 Installing : perl-srpm-macros-1-51.fc39.noarch 89/152 Installing : pcre2-syntax-10.42-1.fc39.2.noarch 90/152 Installing : pcre2-10.42-1.fc39.2.x86_64 91/152 Installing : libselinux-3.5-5.fc39.x86_64 92/152 Installing : sed-4.8-14.fc39.x86_64 93/152 Installing : grep-3.11-3.fc39.x86_64 94/152 Installing : findutils-1:4.9.0-5.fc39.x86_64 95/152 Installing : xz-5.4.4-1.fc39.x86_64 96/152 Installing : libmount-2.39.3-6.fc39.x86_64 97/152 Installing : util-linux-core-2.39.3-6.fc39.x86_64 98/152 Installing : openssl-libs-1:3.1.1-4.fc39.x86_64 99/152 Installing : coreutils-9.3-5.fc39.x86_64 100/152 Running scriptlet: ca-certificates-2023.2.60_v7.0.306-2.fc39.noarch 101/152 Installing : ca-certificates-2023.2.60_v7.0.306-2.fc39.noarch 101/152 Running scriptlet: ca-certificates-2023.2.60_v7.0.306-2.fc39.noarch 101/152 Installing : krb5-libs-1.21.2-3.fc39.x86_64 102/152 Installing : libtirpc-1.3.4-1.rc3.fc39.x86_64 103/152 Running scriptlet: authselect-libs-1.4.3-1.fc39.x86_64 104/152 Installing : authselect-libs-1.4.3-1.fc39.x86_64 104/152 Installing : gzip-1.12-6.fc39.x86_64 105/152 Installing : libarchive-3.7.1-1.fc39.x86_64 106/152 Installing : cracklib-2.9.11-2.fc39.x86_64 107/152 Installing : libpwquality-1.4.5-6.fc39.x86_64 108/152 Installing : authselect-1.4.3-1.fc39.x86_64 109/152 Installing : libnsl2-2.0.0-6.fc39.x86_64 110/152 Installing : pam-1.5.3-3.fc39.x86_64 111/152 Installing : libssh-0.10.6-2.fc39.x86_64 112/152 Installing : libevent-2.1.12-9.fc39.x86_64 113/152 Installing : openldap-2.6.6-1.fc39.x86_64 114/152 Installing : libcurl-8.2.1-4.fc39.x86_64 115/152 Installing : elfutils-libs-0.191-2.fc39.x86_64 116/152 Installing : elfutils-debuginfod-client-0.191-2.fc39.x86_64 117/152 Installing : binutils-gold-2.40-14.fc39.x86_64 118/152 Running scriptlet: binutils-gold-2.40-14.fc39.x86_64 118/152 Installing : binutils-2.40-14.fc39.x86_64 119/152 Running scriptlet: binutils-2.40-14.fc39.x86_64 119/152 Installing : elfutils-0.191-2.fc39.x86_64 120/152 Installing : gdb-minimal-14.1-4.fc39.x86_64 121/152 Installing : debugedit-5.0-12.fc39.x86_64 122/152 Installing : curl-8.2.1-4.fc39.x86_64 123/152 Installing : rpm-sequoia-1.6.0-1.fc39.x86_64 124/152 Installing : rpm-libs-4.19.1.1-1.fc39.x86_64 125/152 Running scriptlet: rpm-4.19.1.1-1.fc39.x86_64 126/152 Installing : rpm-4.19.1.1-1.fc39.x86_64 126/152 Installing : efi-srpm-macros-5-9.fc39.noarch 127/152 Installing : lua-srpm-macros-1-13.fc39.noarch 128/152 Installing : rpmautospec-rpm-macros-0.6.3-1.fc39.noarch 129/152 Installing : rpm-build-libs-4.19.1.1-1.fc39.x86_64 130/152 Installing : libsemanage-3.5-4.fc39.x86_64 131/152 Installing : shadow-utils-2:4.14.0-2.fc39.x86_64 132/152 Running scriptlet: libutempter-1.2.1-10.fc39.x86_64 133/152 Installing : libutempter-1.2.1-10.fc39.x86_64 133/152 Installing : patch-2.7.6-22.fc39.x86_64 134/152 Installing : tar-2:1.35-2.fc39.x86_64 135/152 Installing : package-notes-srpm-macros-0.5-9.fc39.noarch 136/152 Installing : openblas-srpm-macros-2-14.fc39.noarch 137/152 Installing : ocaml-srpm-macros-8-2.fc39.noarch 138/152 Installing : kernel-srpm-macros-1.0-20.fc39.noarch 139/152 Installing : gnat-srpm-macros-6-3.fc39.noarch 140/152 Installing : ghc-srpm-macros-1.6.1-2.fc39.noarch 141/152 Installing : fpc-srpm-macros-1.3-8.fc39.noarch 142/152 Installing : fonts-srpm-macros-1:2.0.5-12.fc39.noarch 143/152 Installing : python-srpm-macros-3.12-4.fc39.noarch 144/152 Installing : forge-srpm-macros-0.2.0-3.fc39.noarch 145/152 Installing : go-srpm-macros-3.4.0-2.fc39.noarch 146/152 Installing : redhat-rpm-config-266-1.fc39.noarch 147/152 Installing : rpm-build-4.19.1.1-1.fc39.x86_64 148/152 Installing : pyproject-srpm-macros-1.12.0-1.fc39.noarch 149/152 Installing : util-linux-2.39.3-6.fc39.x86_64 150/152 Running scriptlet: util-linux-2.39.3-6.fc39.x86_64 150/152 Installing : which-2.21-40.fc39.x86_64 151/152 Installing : info-7.0.3-3.fc39.x86_64 152/152 Running scriptlet: filesystem-3.18-6.fc39.x86_64 152/152 Running scriptlet: ca-certificates-2023.2.60_v7.0.306-2.fc39.noarch 152/152 Running scriptlet: authselect-libs-1.4.3-1.fc39.x86_64 152/152 Running scriptlet: rpm-4.19.1.1-1.fc39.x86_64 152/152 Running scriptlet: info-7.0.3-3.fc39.x86_64 152/152 Verifying : authselect-1.4.3-1.fc39.x86_64 1/152 Verifying : authselect-libs-1.4.3-1.fc39.x86_64 2/152 Verifying : basesystem-11-18.fc39.noarch 3/152 Verifying : bzip2-1.0.8-16.fc39.x86_64 4/152 Verifying : bzip2-libs-1.0.8-16.fc39.x86_64 5/152 Verifying : ca-certificates-2023.2.60_v7.0.306-2.fc39.noarch 6/152 Verifying : cpio-2.14-4.fc39.x86_64 7/152 Verifying : cracklib-2.9.11-2.fc39.x86_64 8/152 Verifying : cyrus-sasl-lib-2.1.28-11.fc39.x86_64 9/152 Verifying : diffutils-3.10-3.fc39.x86_64 10/152 Verifying : dwz-0.15-3.fc39.x86_64 11/152 Verifying : ed-1.19-4.fc39.x86_64 12/152 Verifying : efi-srpm-macros-5-9.fc39.noarch 13/152 Verifying : fedora-gpg-keys-39-1.noarch 14/152 Verifying : fedora-repos-39-1.noarch 15/152 Verifying : file-5.44-5.fc39.x86_64 16/152 Verifying : file-libs-5.44-5.fc39.x86_64 17/152 Verifying : filesystem-3.18-6.fc39.x86_64 18/152 Verifying : findutils-1:4.9.0-5.fc39.x86_64 19/152 Verifying : fonts-srpm-macros-1:2.0.5-12.fc39.noarch 20/152 Verifying : fpc-srpm-macros-1.3-8.fc39.noarch 21/152 Verifying : gawk-5.2.2-2.fc39.x86_64 22/152 Verifying : gdbm-libs-1:1.23-4.fc39.x86_64 23/152 Verifying : ghc-srpm-macros-1.6.1-2.fc39.noarch 24/152 Verifying : gmp-1:6.2.1-5.fc39.x86_64 25/152 Verifying : gnat-srpm-macros-6-3.fc39.noarch 26/152 Verifying : grep-3.11-3.fc39.x86_64 27/152 Verifying : gzip-1.12-6.fc39.x86_64 28/152 Verifying : info-7.0.3-3.fc39.x86_64 29/152 Verifying : jansson-2.13.1-7.fc39.x86_64 30/152 Verifying : kernel-srpm-macros-1.0-20.fc39.noarch 31/152 Verifying : libarchive-3.7.1-1.fc39.x86_64 32/152 Verifying : libattr-2.5.1-8.fc39.x86_64 33/152 Verifying : libbrotli-1.1.0-1.fc39.x86_64 34/152 Verifying : libcap-ng-0.8.3-8.fc39.x86_64 35/152 Verifying : libcom_err-1.47.0-2.fc39.x86_64 36/152 Verifying : libdb-5.3.28-56.fc39.x86_64 37/152 Verifying : libeconf-0.5.2-1.fc39.x86_64 38/152 Verifying : libevent-2.1.12-9.fc39.x86_64 39/152 Verifying : libffi-3.4.4-4.fc39.x86_64 40/152 Verifying : libnsl2-2.0.0-6.fc39.x86_64 41/152 Verifying : libpkgconf-1.9.5-2.fc39.x86_64 42/152 Verifying : libpsl-0.21.2-4.fc39.x86_64 43/152 Verifying : libpwquality-1.4.5-6.fc39.x86_64 44/152 Verifying : libselinux-3.5-5.fc39.x86_64 45/152 Verifying : libsemanage-3.5-4.fc39.x86_64 46/152 Verifying : libsepol-3.5-2.fc39.x86_64 47/152 Verifying : libsigsegv-2.14-5.fc39.x86_64 48/152 Verifying : libtasn1-4.19.0-3.fc39.x86_64 49/152 Verifying : libunistring-1.1-5.fc39.x86_64 50/152 Verifying : libutempter-1.2.1-10.fc39.x86_64 51/152 Verifying : libverto-0.3.2-6.fc39.x86_64 52/152 Verifying : libxcrypt-4.4.36-2.fc39.x86_64 53/152 Verifying : libxml2-2.10.4-3.fc39.x86_64 54/152 Verifying : libzstd-1.5.5-4.fc39.x86_64 55/152 Verifying : lua-libs-5.4.6-3.fc39.x86_64 56/152 Verifying : lz4-libs-1.9.4-4.fc39.x86_64 57/152 Verifying : mpfr-4.2.0-3.fc39.x86_64 58/152 Verifying : ocaml-srpm-macros-8-2.fc39.noarch 59/152 Verifying : openblas-srpm-macros-2-14.fc39.noarch 60/152 Verifying : openldap-2.6.6-1.fc39.x86_64 61/152 Verifying : openssl-libs-1:3.1.1-4.fc39.x86_64 62/152 Verifying : package-notes-srpm-macros-0.5-9.fc39.noarch 63/152 Verifying : patch-2.7.6-22.fc39.x86_64 64/152 Verifying : pcre2-10.42-1.fc39.2.x86_64 65/152 Verifying : pcre2-syntax-10.42-1.fc39.2.noarch 66/152 Verifying : perl-srpm-macros-1-51.fc39.noarch 67/152 Verifying : pkgconf-1.9.5-2.fc39.x86_64 68/152 Verifying : pkgconf-m4-1.9.5-2.fc39.noarch 69/152 Verifying : pkgconf-pkg-config-1.9.5-2.fc39.x86_64 70/152 Verifying : popt-1.19-3.fc39.x86_64 71/152 Verifying : python-srpm-macros-3.12-4.fc39.noarch 72/152 Verifying : sed-4.8-14.fc39.x86_64 73/152 Verifying : setup-2.14.4-1.fc39.noarch 74/152 Verifying : sqlite-libs-3.42.0-7.fc39.x86_64 75/152 Verifying : tar-2:1.35-2.fc39.x86_64 76/152 Verifying : unzip-6.0-62.fc39.x86_64 77/152 Verifying : which-2.21-40.fc39.x86_64 78/152 Verifying : xxhash-libs-0.8.2-1.fc39.x86_64 79/152 Verifying : xz-5.4.4-1.fc39.x86_64 80/152 Verifying : xz-libs-5.4.4-1.fc39.x86_64 81/152 Verifying : zip-3.0-39.fc39.x86_64 82/152 Verifying : zlib-1.2.13-4.fc39.x86_64 83/152 Verifying : zstd-1.5.5-4.fc39.x86_64 84/152 Verifying : alternatives-1.26-1.fc39.x86_64 85/152 Verifying : ansible-srpm-macros-1-12.fc39.noarch 86/152 Verifying : audit-libs-3.1.2-8.fc39.x86_64 87/152 Verifying : bash-5.2.26-1.fc39.x86_64 88/152 Verifying : binutils-2.40-14.fc39.x86_64 89/152 Verifying : binutils-gold-2.40-14.fc39.x86_64 90/152 Verifying : coreutils-9.3-5.fc39.x86_64 91/152 Verifying : coreutils-common-9.3-5.fc39.x86_64 92/152 Verifying : crypto-policies-20231204-1.git1e3a2e4.fc39.noarc 93/152 Verifying : curl-8.2.1-4.fc39.x86_64 94/152 Verifying : debugedit-5.0-12.fc39.x86_64 95/152 Verifying : elfutils-0.191-2.fc39.x86_64 96/152 Verifying : elfutils-debuginfod-client-0.191-2.fc39.x86_64 97/152 Verifying : elfutils-default-yama-scope-0.191-2.fc39.noarch 98/152 Verifying : elfutils-libelf-0.191-2.fc39.x86_64 99/152 Verifying : elfutils-libs-0.191-2.fc39.x86_64 100/152 Verifying : fedora-release-39-36.noarch 101/152 Verifying : fedora-release-common-39-36.noarch 102/152 Verifying : fedora-release-identity-basic-39-36.noarch 103/152 Verifying : forge-srpm-macros-0.2.0-3.fc39.noarch 104/152 Verifying : gdb-minimal-14.1-4.fc39.x86_64 105/152 Verifying : glibc-2.38-16.fc39.x86_64 106/152 Verifying : glibc-common-2.38-16.fc39.x86_64 107/152 Verifying : glibc-gconv-extra-2.38-16.fc39.x86_64 108/152 Verifying : glibc-minimal-langpack-2.38-16.fc39.x86_64 109/152 Verifying : go-srpm-macros-3.4.0-2.fc39.noarch 110/152 Verifying : keyutils-libs-1.6.3-1.fc39.x86_64 111/152 Verifying : krb5-libs-1.21.2-3.fc39.x86_64 112/152 Verifying : libacl-2.3.1-9.fc39.x86_64 113/152 Verifying : libblkid-2.39.3-6.fc39.x86_64 114/152 Verifying : libcap-2.48-9.fc39.x86_64 115/152 Verifying : libcurl-8.2.1-4.fc39.x86_64 116/152 Verifying : libfdisk-2.39.3-6.fc39.x86_64 117/152 Verifying : libgcc-13.2.1-7.fc39.x86_64 118/152 Verifying : libgomp-13.2.1-7.fc39.x86_64 119/152 Verifying : libidn2-2.3.7-1.fc39.x86_64 120/152 Verifying : libmount-2.39.3-6.fc39.x86_64 121/152 Verifying : libnghttp2-1.55.1-4.fc39.x86_64 122/152 Verifying : libsmartcols-2.39.3-6.fc39.x86_64 123/152 Verifying : libssh-0.10.6-2.fc39.x86_64 124/152 Verifying : libssh-config-0.10.6-2.fc39.noarch 125/152 Verifying : libstdc++-13.2.1-7.fc39.x86_64 126/152 Verifying : libtirpc-1.3.4-1.rc3.fc39.x86_64 127/152 Verifying : libuuid-2.39.3-6.fc39.x86_64 128/152 Verifying : lua-srpm-macros-1-13.fc39.noarch 129/152 Verifying : ncurses-base-6.4-7.20230520.fc39.1.noarch 130/152 Verifying : ncurses-libs-6.4-7.20230520.fc39.1.x86_64 131/152 Verifying : p11-kit-0.25.3-1.fc39.x86_64 132/152 Verifying : p11-kit-trust-0.25.3-1.fc39.x86_64 133/152 Verifying : pam-1.5.3-3.fc39.x86_64 134/152 Verifying : pam-libs-1.5.3-3.fc39.x86_64 135/152 Verifying : publicsuffix-list-dafsa-20240107-1.fc39.noarch 136/152 Verifying : pyproject-srpm-macros-1.12.0-1.fc39.noarch 137/152 Verifying : qt5-srpm-macros-5.15.12-1.fc39.noarch 138/152 Verifying : qt6-srpm-macros-6.6.2-1.fc39.noarch 139/152 Verifying : readline-8.2-6.fc39.x86_64 140/152 Verifying : redhat-rpm-config-266-1.fc39.noarch 141/152 Verifying : rpm-4.19.1.1-1.fc39.x86_64 142/152 Verifying : rpm-build-4.19.1.1-1.fc39.x86_64 143/152 Verifying : rpm-build-libs-4.19.1.1-1.fc39.x86_64 144/152 Verifying : rpm-libs-4.19.1.1-1.fc39.x86_64 145/152 Verifying : rpm-sequoia-1.6.0-1.fc39.x86_64 146/152 Verifying : rpmautospec-rpm-macros-0.6.3-1.fc39.noarch 147/152 Verifying : rust-srpm-macros-26.2-1.fc39.noarch 148/152 Verifying : shadow-utils-2:4.14.0-2.fc39.x86_64 149/152 Verifying : systemd-libs-254.10-1.fc39.x86_64 150/152 Verifying : util-linux-2.39.3-6.fc39.x86_64 151/152 Verifying : util-linux-core-2.39.3-6.fc39.x86_64 152/152 Installed: alternatives-1.26-1.fc39.x86_64 ansible-srpm-macros-1-12.fc39.noarch audit-libs-3.1.2-8.fc39.x86_64 authselect-1.4.3-1.fc39.x86_64 authselect-libs-1.4.3-1.fc39.x86_64 basesystem-11-18.fc39.noarch bash-5.2.26-1.fc39.x86_64 binutils-2.40-14.fc39.x86_64 binutils-gold-2.40-14.fc39.x86_64 bzip2-1.0.8-16.fc39.x86_64 bzip2-libs-1.0.8-16.fc39.x86_64 ca-certificates-2023.2.60_v7.0.306-2.fc39.noarch coreutils-9.3-5.fc39.x86_64 coreutils-common-9.3-5.fc39.x86_64 cpio-2.14-4.fc39.x86_64 cracklib-2.9.11-2.fc39.x86_64 crypto-policies-20231204-1.git1e3a2e4.fc39.noarch curl-8.2.1-4.fc39.x86_64 cyrus-sasl-lib-2.1.28-11.fc39.x86_64 debugedit-5.0-12.fc39.x86_64 diffutils-3.10-3.fc39.x86_64 dwz-0.15-3.fc39.x86_64 ed-1.19-4.fc39.x86_64 efi-srpm-macros-5-9.fc39.noarch elfutils-0.191-2.fc39.x86_64 elfutils-debuginfod-client-0.191-2.fc39.x86_64 elfutils-default-yama-scope-0.191-2.fc39.noarch elfutils-libelf-0.191-2.fc39.x86_64 elfutils-libs-0.191-2.fc39.x86_64 fedora-gpg-keys-39-1.noarch fedora-release-39-36.noarch fedora-release-common-39-36.noarch fedora-release-identity-basic-39-36.noarch fedora-repos-39-1.noarch file-5.44-5.fc39.x86_64 file-libs-5.44-5.fc39.x86_64 filesystem-3.18-6.fc39.x86_64 findutils-1:4.9.0-5.fc39.x86_64 fonts-srpm-macros-1:2.0.5-12.fc39.noarch forge-srpm-macros-0.2.0-3.fc39.noarch fpc-srpm-macros-1.3-8.fc39.noarch gawk-5.2.2-2.fc39.x86_64 gdb-minimal-14.1-4.fc39.x86_64 gdbm-libs-1:1.23-4.fc39.x86_64 ghc-srpm-macros-1.6.1-2.fc39.noarch glibc-2.38-16.fc39.x86_64 glibc-common-2.38-16.fc39.x86_64 glibc-gconv-extra-2.38-16.fc39.x86_64 glibc-minimal-langpack-2.38-16.fc39.x86_64 gmp-1:6.2.1-5.fc39.x86_64 gnat-srpm-macros-6-3.fc39.noarch go-srpm-macros-3.4.0-2.fc39.noarch grep-3.11-3.fc39.x86_64 gzip-1.12-6.fc39.x86_64 info-7.0.3-3.fc39.x86_64 jansson-2.13.1-7.fc39.x86_64 kernel-srpm-macros-1.0-20.fc39.noarch keyutils-libs-1.6.3-1.fc39.x86_64 krb5-libs-1.21.2-3.fc39.x86_64 libacl-2.3.1-9.fc39.x86_64 libarchive-3.7.1-1.fc39.x86_64 libattr-2.5.1-8.fc39.x86_64 libblkid-2.39.3-6.fc39.x86_64 libbrotli-1.1.0-1.fc39.x86_64 libcap-2.48-9.fc39.x86_64 libcap-ng-0.8.3-8.fc39.x86_64 libcom_err-1.47.0-2.fc39.x86_64 libcurl-8.2.1-4.fc39.x86_64 libdb-5.3.28-56.fc39.x86_64 libeconf-0.5.2-1.fc39.x86_64 libevent-2.1.12-9.fc39.x86_64 libfdisk-2.39.3-6.fc39.x86_64 libffi-3.4.4-4.fc39.x86_64 libgcc-13.2.1-7.fc39.x86_64 libgomp-13.2.1-7.fc39.x86_64 libidn2-2.3.7-1.fc39.x86_64 libmount-2.39.3-6.fc39.x86_64 libnghttp2-1.55.1-4.fc39.x86_64 libnsl2-2.0.0-6.fc39.x86_64 libpkgconf-1.9.5-2.fc39.x86_64 libpsl-0.21.2-4.fc39.x86_64 libpwquality-1.4.5-6.fc39.x86_64 libselinux-3.5-5.fc39.x86_64 libsemanage-3.5-4.fc39.x86_64 libsepol-3.5-2.fc39.x86_64 libsigsegv-2.14-5.fc39.x86_64 libsmartcols-2.39.3-6.fc39.x86_64 libssh-0.10.6-2.fc39.x86_64 libssh-config-0.10.6-2.fc39.noarch libstdc++-13.2.1-7.fc39.x86_64 libtasn1-4.19.0-3.fc39.x86_64 libtirpc-1.3.4-1.rc3.fc39.x86_64 libunistring-1.1-5.fc39.x86_64 libutempter-1.2.1-10.fc39.x86_64 libuuid-2.39.3-6.fc39.x86_64 libverto-0.3.2-6.fc39.x86_64 libxcrypt-4.4.36-2.fc39.x86_64 libxml2-2.10.4-3.fc39.x86_64 libzstd-1.5.5-4.fc39.x86_64 lua-libs-5.4.6-3.fc39.x86_64 lua-srpm-macros-1-13.fc39.noarch lz4-libs-1.9.4-4.fc39.x86_64 mpfr-4.2.0-3.fc39.x86_64 ncurses-base-6.4-7.20230520.fc39.1.noarch ncurses-libs-6.4-7.20230520.fc39.1.x86_64 ocaml-srpm-macros-8-2.fc39.noarch openblas-srpm-macros-2-14.fc39.noarch openldap-2.6.6-1.fc39.x86_64 openssl-libs-1:3.1.1-4.fc39.x86_64 p11-kit-0.25.3-1.fc39.x86_64 p11-kit-trust-0.25.3-1.fc39.x86_64 package-notes-srpm-macros-0.5-9.fc39.noarch pam-1.5.3-3.fc39.x86_64 pam-libs-1.5.3-3.fc39.x86_64 patch-2.7.6-22.fc39.x86_64 pcre2-10.42-1.fc39.2.x86_64 pcre2-syntax-10.42-1.fc39.2.noarch perl-srpm-macros-1-51.fc39.noarch pkgconf-1.9.5-2.fc39.x86_64 pkgconf-m4-1.9.5-2.fc39.noarch pkgconf-pkg-config-1.9.5-2.fc39.x86_64 popt-1.19-3.fc39.x86_64 publicsuffix-list-dafsa-20240107-1.fc39.noarch pyproject-srpm-macros-1.12.0-1.fc39.noarch python-srpm-macros-3.12-4.fc39.noarch qt5-srpm-macros-5.15.12-1.fc39.noarch qt6-srpm-macros-6.6.2-1.fc39.noarch readline-8.2-6.fc39.x86_64 redhat-rpm-config-266-1.fc39.noarch rpm-4.19.1.1-1.fc39.x86_64 rpm-build-4.19.1.1-1.fc39.x86_64 rpm-build-libs-4.19.1.1-1.fc39.x86_64 rpm-libs-4.19.1.1-1.fc39.x86_64 rpm-sequoia-1.6.0-1.fc39.x86_64 rpmautospec-rpm-macros-0.6.3-1.fc39.noarch rust-srpm-macros-26.2-1.fc39.noarch sed-4.8-14.fc39.x86_64 setup-2.14.4-1.fc39.noarch shadow-utils-2:4.14.0-2.fc39.x86_64 sqlite-libs-3.42.0-7.fc39.x86_64 systemd-libs-254.10-1.fc39.x86_64 tar-2:1.35-2.fc39.x86_64 unzip-6.0-62.fc39.x86_64 util-linux-2.39.3-6.fc39.x86_64 util-linux-core-2.39.3-6.fc39.x86_64 which-2.21-40.fc39.x86_64 xxhash-libs-0.8.2-1.fc39.x86_64 xz-5.4.4-1.fc39.x86_64 xz-libs-5.4.4-1.fc39.x86_64 zip-3.0-39.fc39.x86_64 zlib-1.2.13-4.fc39.x86_64 zstd-1.5.5-4.fc39.x86_64 Complete! Finish: installing minimal buildroot with dnf Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: alternatives-1.26-1.fc39.x86_64 ansible-srpm-macros-1-12.fc39.noarch audit-libs-3.1.2-8.fc39.x86_64 authselect-1.4.3-1.fc39.x86_64 authselect-libs-1.4.3-1.fc39.x86_64 basesystem-11-18.fc39.noarch bash-5.2.26-1.fc39.x86_64 binutils-2.40-14.fc39.x86_64 binutils-gold-2.40-14.fc39.x86_64 bzip2-1.0.8-16.fc39.x86_64 bzip2-libs-1.0.8-16.fc39.x86_64 ca-certificates-2023.2.60_v7.0.306-2.fc39.noarch coreutils-9.3-5.fc39.x86_64 coreutils-common-9.3-5.fc39.x86_64 cpio-2.14-4.fc39.x86_64 cracklib-2.9.11-2.fc39.x86_64 crypto-policies-20231204-1.git1e3a2e4.fc39.noarch curl-8.2.1-4.fc39.x86_64 cyrus-sasl-lib-2.1.28-11.fc39.x86_64 debugedit-5.0-12.fc39.x86_64 diffutils-3.10-3.fc39.x86_64 dwz-0.15-3.fc39.x86_64 ed-1.19-4.fc39.x86_64 efi-srpm-macros-5-9.fc39.noarch elfutils-0.191-2.fc39.x86_64 elfutils-debuginfod-client-0.191-2.fc39.x86_64 elfutils-default-yama-scope-0.191-2.fc39.noarch elfutils-libelf-0.191-2.fc39.x86_64 elfutils-libs-0.191-2.fc39.x86_64 fedora-gpg-keys-39-1.noarch fedora-release-39-36.noarch fedora-release-common-39-36.noarch fedora-release-identity-basic-39-36.noarch fedora-repos-39-1.noarch file-5.44-5.fc39.x86_64 file-libs-5.44-5.fc39.x86_64 filesystem-3.18-6.fc39.x86_64 findutils-4.9.0-5.fc39.x86_64 fonts-srpm-macros-2.0.5-12.fc39.noarch forge-srpm-macros-0.2.0-3.fc39.noarch fpc-srpm-macros-1.3-8.fc39.noarch gawk-5.2.2-2.fc39.x86_64 gdb-minimal-14.1-4.fc39.x86_64 gdbm-libs-1.23-4.fc39.x86_64 ghc-srpm-macros-1.6.1-2.fc39.noarch glibc-2.38-16.fc39.x86_64 glibc-common-2.38-16.fc39.x86_64 glibc-gconv-extra-2.38-16.fc39.x86_64 glibc-minimal-langpack-2.38-16.fc39.x86_64 gmp-6.2.1-5.fc39.x86_64 gnat-srpm-macros-6-3.fc39.noarch go-srpm-macros-3.4.0-2.fc39.noarch gpg-pubkey-18b8e74c-62f2920f grep-3.11-3.fc39.x86_64 gzip-1.12-6.fc39.x86_64 info-7.0.3-3.fc39.x86_64 jansson-2.13.1-7.fc39.x86_64 kernel-srpm-macros-1.0-20.fc39.noarch keyutils-libs-1.6.3-1.fc39.x86_64 krb5-libs-1.21.2-3.fc39.x86_64 libacl-2.3.1-9.fc39.x86_64 libarchive-3.7.1-1.fc39.x86_64 libattr-2.5.1-8.fc39.x86_64 libblkid-2.39.3-6.fc39.x86_64 libbrotli-1.1.0-1.fc39.x86_64 libcap-2.48-9.fc39.x86_64 libcap-ng-0.8.3-8.fc39.x86_64 libcom_err-1.47.0-2.fc39.x86_64 libcurl-8.2.1-4.fc39.x86_64 libdb-5.3.28-56.fc39.x86_64 libeconf-0.5.2-1.fc39.x86_64 libevent-2.1.12-9.fc39.x86_64 libfdisk-2.39.3-6.fc39.x86_64 libffi-3.4.4-4.fc39.x86_64 libgcc-13.2.1-7.fc39.x86_64 libgomp-13.2.1-7.fc39.x86_64 libidn2-2.3.7-1.fc39.x86_64 libmount-2.39.3-6.fc39.x86_64 libnghttp2-1.55.1-4.fc39.x86_64 libnsl2-2.0.0-6.fc39.x86_64 libpkgconf-1.9.5-2.fc39.x86_64 libpsl-0.21.2-4.fc39.x86_64 libpwquality-1.4.5-6.fc39.x86_64 libselinux-3.5-5.fc39.x86_64 libsemanage-3.5-4.fc39.x86_64 libsepol-3.5-2.fc39.x86_64 libsigsegv-2.14-5.fc39.x86_64 libsmartcols-2.39.3-6.fc39.x86_64 libssh-0.10.6-2.fc39.x86_64 libssh-config-0.10.6-2.fc39.noarch libstdc++-13.2.1-7.fc39.x86_64 libtasn1-4.19.0-3.fc39.x86_64 libtirpc-1.3.4-1.rc3.fc39.x86_64 libunistring-1.1-5.fc39.x86_64 libutempter-1.2.1-10.fc39.x86_64 libuuid-2.39.3-6.fc39.x86_64 libverto-0.3.2-6.fc39.x86_64 libxcrypt-4.4.36-2.fc39.x86_64 libxml2-2.10.4-3.fc39.x86_64 libzstd-1.5.5-4.fc39.x86_64 lua-libs-5.4.6-3.fc39.x86_64 lua-srpm-macros-1-13.fc39.noarch lz4-libs-1.9.4-4.fc39.x86_64 mpfr-4.2.0-3.fc39.x86_64 ncurses-base-6.4-7.20230520.fc39.1.noarch ncurses-libs-6.4-7.20230520.fc39.1.x86_64 ocaml-srpm-macros-8-2.fc39.noarch openblas-srpm-macros-2-14.fc39.noarch openldap-2.6.6-1.fc39.x86_64 openssl-libs-3.1.1-4.fc39.x86_64 p11-kit-0.25.3-1.fc39.x86_64 p11-kit-trust-0.25.3-1.fc39.x86_64 package-notes-srpm-macros-0.5-9.fc39.noarch pam-1.5.3-3.fc39.x86_64 pam-libs-1.5.3-3.fc39.x86_64 patch-2.7.6-22.fc39.x86_64 pcre2-10.42-1.fc39.2.x86_64 pcre2-syntax-10.42-1.fc39.2.noarch perl-srpm-macros-1-51.fc39.noarch pkgconf-1.9.5-2.fc39.x86_64 pkgconf-m4-1.9.5-2.fc39.noarch pkgconf-pkg-config-1.9.5-2.fc39.x86_64 popt-1.19-3.fc39.x86_64 publicsuffix-list-dafsa-20240107-1.fc39.noarch pyproject-srpm-macros-1.12.0-1.fc39.noarch python-srpm-macros-3.12-4.fc39.noarch qt5-srpm-macros-5.15.12-1.fc39.noarch qt6-srpm-macros-6.6.2-1.fc39.noarch readline-8.2-6.fc39.x86_64 redhat-rpm-config-266-1.fc39.noarch rpm-4.19.1.1-1.fc39.x86_64 rpm-build-4.19.1.1-1.fc39.x86_64 rpm-build-libs-4.19.1.1-1.fc39.x86_64 rpm-libs-4.19.1.1-1.fc39.x86_64 rpm-sequoia-1.6.0-1.fc39.x86_64 rpmautospec-rpm-macros-0.6.3-1.fc39.noarch rust-srpm-macros-26.2-1.fc39.noarch sed-4.8-14.fc39.x86_64 setup-2.14.4-1.fc39.noarch shadow-utils-4.14.0-2.fc39.x86_64 sqlite-libs-3.42.0-7.fc39.x86_64 systemd-libs-254.10-1.fc39.x86_64 tar-1.35-2.fc39.x86_64 unzip-6.0-62.fc39.x86_64 util-linux-2.39.3-6.fc39.x86_64 util-linux-core-2.39.3-6.fc39.x86_64 which-2.21-40.fc39.x86_64 xxhash-libs-0.8.2-1.fc39.x86_64 xz-5.4.4-1.fc39.x86_64 xz-libs-5.4.4-1.fc39.x86_64 zip-3.0-39.fc39.x86_64 zlib-1.2.13-4.fc39.x86_64 zstd-1.5.5-4.fc39.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1711324800 Wrote: /builddir/build/SRPMS/python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm Finish: rpmbuild -bs cp: preserving permissions for ‘/var/lib/copr-rpmbuild/results/chroot_scan/var/lib/mock/fedora-39-x86_64-1711389296.877530/root/var/log’: No such file or directory INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-39-x86_64-1711389296.877530/root/var/log/dnf.log /var/lib/mock/fedora-39-x86_64-1711389296.877530/root/var/log/dnf.librepo.log /var/lib/mock/fedora-39-x86_64-1711389296.877530/root/var/log/dnf.rpm.log Finish: buildsrpm INFO: Done(/var/lib/copr-rpmbuild/workspace/workdir-8s3tfx7_/python-sqlalchemy-utils/python-sqlalchemy-utils.spec) Config(child) 2 minutes 8 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot INFO: Start(/var/lib/copr-rpmbuild/results/python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm) Config(fedora-39-x86_64) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-39-x86_64-bootstrap-1711389296.877530/root. INFO: reusing tmpfs at /var/lib/mock/fedora-39-x86_64-bootstrap-1711389296.877530/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-39-x86_64-1711389296.877530/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-4.19.0-1.fc39.x86_64 rpm-sequoia-1.5.0-1.fc39.x86_64 python3-dnf-4.19.0-1.fc39.noarch python3-dnf-plugins-core-4.5.0-1.fc39.noarch yum-4.19.0-1.fc39.noarch Finish: chroot init Start: build phase for python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm Start: build setup for python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1711324800 Wrote: /builddir/build/SRPMS/python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 42 kB/s | 1.5 kB 00:00 fedora 486 kB/s | 25 kB 00:00 updates 747 kB/s | 22 kB 00:00 Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: python3-colour noarch 0.1.5-16.fc39 fedora 36 k python3-devel x86_64 3.12.2-2.fc39 updates 312 k python3-phonenumbers noarch 8.12.53-4.fc39 fedora 4.7 M python3-pytest noarch 7.3.2-4.fc39 fedora 1.9 M Installing dependencies: expat x86_64 2.6.0-1.fc39 updates 113 k libb2 x86_64 0.98.1-9.fc39 fedora 25 k mpdecimal x86_64 2.5.1-7.fc39 fedora 89 k pyproject-rpm-macros noarch 1.12.0-1.fc39 updates 41 k python-pip-wheel noarch 23.2.1-1.fc39 fedora 1.5 M python-rpm-macros noarch 3.12-4.fc39 fedora 19 k python3 x86_64 3.12.2-2.fc39 updates 27 k python3-iniconfig noarch 1.1.1-14.fc39 fedora 18 k python3-libs x86_64 3.12.2-2.fc39 updates 9.2 M python3-packaging noarch 23.1-4.fc39 fedora 114 k python3-pluggy noarch 1.2.0-1.fc39 fedora 54 k python3-rpm-generators noarch 14-7.fc39 fedora 30 k python3-rpm-macros noarch 3.12-4.fc39 fedora 14 k tzdata noarch 2024a-2.fc39 updates 715 k Transaction Summary ================================================================================ Install 18 Packages Total download size: 19 M Installed size: 104 M Downloading Packages: (1/18): libb2-0.98.1-9.fc39.x86_64.rpm 949 kB/s | 25 kB 00:00 (2/18): mpdecimal-2.5.1-7.fc39.x86_64.rpm 2.1 MB/s | 89 kB 00:00 (3/18): python-rpm-macros-3.12-4.fc39.noarch.rp 495 kB/s | 19 kB 00:00 (4/18): python3-colour-0.1.5-16.fc39.noarch.rpm 1.0 MB/s | 36 kB 00:00 (5/18): python3-iniconfig-1.1.1-14.fc39.noarch. 1.6 MB/s | 18 kB 00:00 (6/18): python-pip-wheel-23.2.1-1.fc39.noarch.r 16 MB/s | 1.5 MB 00:00 (7/18): python3-packaging-23.1-4.fc39.noarch.rp 6.3 MB/s | 114 kB 00:00 (8/18): python3-pluggy-1.2.0-1.fc39.noarch.rpm 5.7 MB/s | 54 kB 00:00 (9/18): python3-pytest-7.3.2-4.fc39.noarch.rpm 64 MB/s | 1.9 MB 00:00 (10/18): python3-rpm-generators-14-7.fc39.noarc 1.1 MB/s | 30 kB 00:00 (11/18): python3-rpm-macros-3.12-4.fc39.noarch. 1.7 MB/s | 14 kB 00:00 (12/18): python3-phonenumbers-8.12.53-4.fc39.no 32 MB/s | 4.7 MB 00:00 (13/18): pyproject-rpm-macros-1.12.0-1.fc39.noa 119 kB/s | 41 kB 00:00 (14/18): expat-2.6.0-1.fc39.x86_64.rpm 311 kB/s | 113 kB 00:00 (15/18): python3-3.12.2-2.fc39.x86_64.rpm 89 kB/s | 27 kB 00:00 (16/18): python3-devel-3.12.2-2.fc39.x86_64.rpm 3.2 MB/s | 312 kB 00:00 (17/18): tzdata-2024a-2.fc39.noarch.rpm 5.2 MB/s | 715 kB 00:00 (18/18): python3-libs-3.12.2-2.fc39.x86_64.rpm 41 MB/s | 9.2 MB 00:00 -------------------------------------------------------------------------------- Total 24 MB/s | 19 MB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : python-rpm-macros-3.12-4.fc39.noarch 1/18 Installing : python3-rpm-macros-3.12-4.fc39.noarch 2/18 Installing : pyproject-rpm-macros-1.12.0-1.fc39.noarch 3/18 Installing : tzdata-2024a-2.fc39.noarch 4/18 Installing : expat-2.6.0-1.fc39.x86_64 5/18 Installing : python-pip-wheel-23.2.1-1.fc39.noarch 6/18 Installing : mpdecimal-2.5.1-7.fc39.x86_64 7/18 Installing : libb2-0.98.1-9.fc39.x86_64 8/18 Installing : python3-3.12.2-2.fc39.x86_64 9/18 Installing : python3-libs-3.12.2-2.fc39.x86_64 10/18 Installing : python3-packaging-23.1-4.fc39.noarch 11/18 Installing : python3-rpm-generators-14-7.fc39.noarch 12/18 Installing : python3-iniconfig-1.1.1-14.fc39.noarch 13/18 Installing : python3-pluggy-1.2.0-1.fc39.noarch 14/18 Installing : python3-pytest-7.3.2-4.fc39.noarch 15/18 Installing : python3-devel-3.12.2-2.fc39.x86_64 16/18 Installing : python3-colour-0.1.5-16.fc39.noarch 17/18 Installing : python3-phonenumbers-8.12.53-4.fc39.noarch 18/18 Running scriptlet: python3-phonenumbers-8.12.53-4.fc39.noarch 18/18 Verifying : libb2-0.98.1-9.fc39.x86_64 1/18 Verifying : mpdecimal-2.5.1-7.fc39.x86_64 2/18 Verifying : python-pip-wheel-23.2.1-1.fc39.noarch 3/18 Verifying : python-rpm-macros-3.12-4.fc39.noarch 4/18 Verifying : python3-colour-0.1.5-16.fc39.noarch 5/18 Verifying : python3-iniconfig-1.1.1-14.fc39.noarch 6/18 Verifying : python3-packaging-23.1-4.fc39.noarch 7/18 Verifying : python3-phonenumbers-8.12.53-4.fc39.noarch 8/18 Verifying : python3-pluggy-1.2.0-1.fc39.noarch 9/18 Verifying : python3-pytest-7.3.2-4.fc39.noarch 10/18 Verifying : python3-rpm-generators-14-7.fc39.noarch 11/18 Verifying : python3-rpm-macros-3.12-4.fc39.noarch 12/18 Verifying : expat-2.6.0-1.fc39.x86_64 13/18 Verifying : pyproject-rpm-macros-1.12.0-1.fc39.noarch 14/18 Verifying : python3-3.12.2-2.fc39.x86_64 15/18 Verifying : python3-devel-3.12.2-2.fc39.x86_64 16/18 Verifying : python3-libs-3.12.2-2.fc39.x86_64 17/18 Verifying : tzdata-2024a-2.fc39.noarch 18/18 Installed: expat-2.6.0-1.fc39.x86_64 libb2-0.98.1-9.fc39.x86_64 mpdecimal-2.5.1-7.fc39.x86_64 pyproject-rpm-macros-1.12.0-1.fc39.noarch python-pip-wheel-23.2.1-1.fc39.noarch python-rpm-macros-3.12-4.fc39.noarch python3-3.12.2-2.fc39.x86_64 python3-colour-0.1.5-16.fc39.noarch python3-devel-3.12.2-2.fc39.x86_64 python3-iniconfig-1.1.1-14.fc39.noarch python3-libs-3.12.2-2.fc39.x86_64 python3-packaging-23.1-4.fc39.noarch python3-phonenumbers-8.12.53-4.fc39.noarch python3-pluggy-1.2.0-1.fc39.noarch python3-pytest-7.3.2-4.fc39.noarch python3-rpm-generators-14-7.fc39.noarch python3-rpm-macros-3.12-4.fc39.noarch tzdata-2024a-2.fc39.noarch Complete! Finish: build setup for python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm Start: rpmbuild python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1711324800 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.dWjC47 + 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 + rm -rf /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1-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 + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/python-sqlalchemy-utils-0.41.1-nosqla2.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.No0Oh5 + 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 -Cstrip=none -Cforce-frame-pointers=yes --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-5.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-5.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-5.fc39.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 37 kB/s | 1.5 kB 00:00 fedora 773 kB/s | 25 kB 00:00 updates 733 kB/s | 22 kB 00:00 Package pyproject-rpm-macros-1.12.0-1.fc39.noarch is already installed. Package python3-colour-0.1.5-16.fc39.noarch is already installed. Package python3-devel-3.12.2-2.fc39.x86_64 is already installed. Package python3-devel-3.12.2-2.fc39.x86_64 is already installed. Package python3-phonenumbers-8.12.53-4.fc39.noarch is already installed. Package python3-pytest-7.3.2-4.fc39.noarch is already installed. Package python3-packaging-23.1-4.fc39.noarch is already installed. Dependencies resolved. ================================================================================ Package Architecture Version Repository Size ================================================================================ Installing: python3-pip noarch 23.2.1-1.fc39 fedora 3.1 M python3-setuptools noarch 67.7.2-7.fc39 fedora 1.5 M python3-wheel noarch 1:0.40.0-4.fc39 fedora 161 k Transaction Summary ================================================================================ Install 3 Packages Total download size: 4.8 M Installed size: 21 M Downloading Packages: (1/3): python3-wheel-0.40.0-4.fc39.noarch.rpm 1.4 MB/s | 161 kB 00:00 (2/3): python3-setuptools-67.7.2-7.fc39.noarch. 7.4 MB/s | 1.5 MB 00:00 (3/3): python3-pip-23.2.1-1.fc39.noarch.rpm 15 MB/s | 3.1 MB 00:00 -------------------------------------------------------------------------------- Total 20 MB/s | 4.8 MB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : python3-setuptools-67.7.2-7.fc39.noarch 1/3 Installing : python3-pip-23.2.1-1.fc39.noarch 2/3 Installing : python3-wheel-1:0.40.0-4.fc39.noarch 3/3 Running scriptlet: python3-wheel-1:0.40.0-4.fc39.noarch 3/3 Verifying : python3-pip-23.2.1-1.fc39.noarch 1/3 Verifying : python3-setuptools-67.7.2-7.fc39.noarch 2/3 Verifying : python3-wheel-1:0.40.0-4.fc39.noarch 3/3 Installed: python3-pip-23.2.1-1.fc39.noarch python3-setuptools-67.7.2-7.fc39.noarch python3-wheel-1:0.40.0-4.fc39.noarch Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1711324800 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.y2uBhj + 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 -Cstrip=none -Cforce-frame-pointers=yes --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-5.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 (<2,>=1.3) from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement not satisfied: SQLAlchemy (<2,>=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-5.fc39.x86_64-pyproject-buildrequires + rm -rfv SQLAlchemy_Utils-0.41.1.dist-info/ removed 'SQLAlchemy_Utils-0.41.1.dist-info/top_level.txt' removed 'SQLAlchemy_Utils-0.41.1.dist-info/METADATA' removed 'SQLAlchemy_Utils-0.41.1.dist-info/LICENSE' 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-5.fc39.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 27 kB/s | 1.5 kB 00:00 fedora 802 kB/s | 25 kB 00:00 updates 715 kB/s | 22 kB 00:00 Package pyproject-rpm-macros-1.12.0-1.fc39.noarch is already installed. Package python3-colour-0.1.5-16.fc39.noarch is already installed. Package python3-devel-3.12.2-2.fc39.x86_64 is already installed. Package python3-devel-3.12.2-2.fc39.x86_64 is already installed. Package python3-phonenumbers-8.12.53-4.fc39.noarch is already installed. Package python3-pytest-7.3.2-4.fc39.noarch is already installed. Package python3-packaging-23.1-4.fc39.noarch is already installed. Package python3-pip-23.2.1-1.fc39.noarch is already installed. Package python3-pytest-7.3.2-4.fc39.noarch is already installed. Package python3-setuptools-67.7.2-7.fc39.noarch is already installed. Package python3-wheel-1:0.40.0-4.fc39.noarch is already installed. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: python3-PyMySQL noarch 1.1.0-3.fc39 fedora 116 k python3-dateutil noarch 1:2.8.2-10.fc39 fedora 355 k python3-docutils noarch 0.19-5.fc39 fedora 1.0 M python3-flake8 noarch 6.0.0-2.fc39 fedora 145 k python3-flexmock noarch 0.11.3-7.fc39 fedora 86 k python3-isort noarch 5.13.2-1.fc39 updates 241 k python3-jinja2 noarch 3.1.3-1.fc39 updates 507 k python3-pg8000 noarch 1.26.1-6.fc39 fedora 75 k python3-psycopg2 x86_64 2.9.6-3.fc39 fedora 208 k python3-psycopg3 noarch 3.1.10-1.fc39 fedora 409 k python3-pygments noarch 2.15.1-4.fc39 fedora 2.4 M python3-pytz noarch 2024.1-1.fc39 updates 64 k python3-sqlalchemy x86_64 1.4.52-1.fc39 updates 2.9 M Installing dependencies: libpq x86_64 15.3-1.fc39 fedora 215 k python3-asn1crypto noarch 1.5.1-6.fc39 fedora 232 k python3-greenlet x86_64 3.0.1-1.fc39 updates 256 k python3-markupsafe x86_64 2.1.3-2.fc39 fedora 30 k python3-mccabe noarch 0.7.0-4.fc39 fedora 22 k python3-pycodestyle noarch 2.10.0-2.fc39 fedora 104 k python3-pyflakes noarch 3.0.1-3.fc39 fedora 91 k python3-scramp noarch 1.4.1-7.fc39 fedora 37 k python3-six noarch 1.16.0-12.fc39 fedora 41 k python3-typing-extensions noarch 4.8.0-1.fc39 fedora 75 k Transaction Summary ================================================================================ Install 23 Packages Total download size: 9.5 M Installed size: 45 M Downloading Packages: (1/23): python3-PyMySQL-1.1.0-3.fc39.noarch.rpm 372 kB/s | 116 kB 00:00 (2/23): libpq-15.3-1.fc39.x86_64.rpm 627 kB/s | 215 kB 00:00 (3/23): python3-asn1crypto-1.5.1-6.fc39.noarch. 643 kB/s | 232 kB 00:00 (4/23): python3-flake8-6.0.0-2.fc39.noarch.rpm 1.8 MB/s | 145 kB 00:00 (5/23): python3-dateutil-2.8.2-10.fc39.noarch.r 2.3 MB/s | 355 kB 00:00 (6/23): python3-flexmock-0.11.3-7.fc39.noarch.r 1.1 MB/s | 86 kB 00:00 (7/23): python3-markupsafe-2.1.3-2.fc39.x86_64. 497 kB/s | 30 kB 00:00 (8/23): python3-docutils-0.19-5.fc39.noarch.rpm 5.4 MB/s | 1.0 MB 00:00 (9/23): python3-mccabe-0.7.0-4.fc39.noarch.rpm 430 kB/s | 22 kB 00:00 (10/23): python3-pg8000-1.26.1-6.fc39.noarch.rp 1.3 MB/s | 75 kB 00:00 (11/23): python3-psycopg2-2.9.6-3.fc39.x86_64.r 3.4 MB/s | 208 kB 00:00 (12/23): python3-pycodestyle-2.10.0-2.fc39.noar 1.6 MB/s | 104 kB 00:00 (13/23): python3-pyflakes-3.0.1-3.fc39.noarch.r 1.5 MB/s | 91 kB 00:00 (14/23): python3-scramp-1.4.1-7.fc39.noarch.rpm 634 kB/s | 37 kB 00:00 (15/23): python3-psycopg3-3.1.10-1.fc39.noarch. 2.2 MB/s | 409 kB 00:00 (16/23): python3-typing-extensions-4.8.0-1.fc39 1.3 MB/s | 75 kB 00:00 (17/23): python3-six-1.16.0-12.fc39.noarch.rpm 380 kB/s | 41 kB 00:00 (18/23): python3-pygments-2.15.1-4.fc39.noarch. 11 MB/s | 2.4 MB 00:00 (19/23): python3-greenlet-3.0.1-1.fc39.x86_64.r 660 kB/s | 256 kB 00:00 (20/23): python3-isort-5.13.2-1.fc39.noarch.rpm 643 kB/s | 241 kB 00:00 (21/23): python3-pytz-2024.1-1.fc39.noarch.rpm 1.4 MB/s | 64 kB 00:00 (22/23): python3-jinja2-3.1.3-1.fc39.noarch.rpm 1.2 MB/s | 507 kB 00:00 (23/23): python3-sqlalchemy-1.4.52-1.fc39.x86_6 21 MB/s | 2.9 MB 00:00 -------------------------------------------------------------------------------- Total 6.8 MB/s | 9.5 MB 00:01 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : python3-six-1.16.0-12.fc39.noarch 1/23 Installing : libpq-15.3-1.fc39.x86_64 2/23 Installing : python3-greenlet-3.0.1-1.fc39.x86_64 3/23 Installing : python3-sqlalchemy-1.4.52-1.fc39.x86_64 4/23 Installing : python3-typing-extensions-4.8.0-1.fc39.noarch 5/23 Installing : python3-pyflakes-3.0.1-3.fc39.noarch 6/23 Installing : python3-pycodestyle-2.10.0-2.fc39.noarch 7/23 Installing : python3-mccabe-0.7.0-4.fc39.noarch 8/23 Installing : python3-markupsafe-2.1.3-2.fc39.x86_64 9/23 Installing : python3-asn1crypto-1.5.1-6.fc39.noarch 10/23 Installing : python3-scramp-1.4.1-7.fc39.noarch 11/23 Installing : python3-pg8000-1.26.1-6.fc39.noarch 12/23 Installing : python3-jinja2-3.1.3-1.fc39.noarch 13/23 Installing : python3-flake8-6.0.0-2.fc39.noarch 14/23 Installing : python3-psycopg3-3.1.10-1.fc39.noarch 15/23 Installing : python3-psycopg2-2.9.6-3.fc39.x86_64 16/23 Installing : python3-dateutil-1:2.8.2-10.fc39.noarch 17/23 Installing : python3-pytz-2024.1-1.fc39.noarch 18/23 Installing : python3-isort-5.13.2-1.fc39.noarch 19/23 Installing : python3-pygments-2.15.1-4.fc39.noarch 20/23 Installing : python3-flexmock-0.11.3-7.fc39.noarch 21/23 Installing : python3-docutils-0.19-5.fc39.noarch 22/23 Installing : python3-PyMySQL-1.1.0-3.fc39.noarch 23/23 Running scriptlet: python3-PyMySQL-1.1.0-3.fc39.noarch 23/23 Verifying : libpq-15.3-1.fc39.x86_64 1/23 Verifying : python3-PyMySQL-1.1.0-3.fc39.noarch 2/23 Verifying : python3-asn1crypto-1.5.1-6.fc39.noarch 3/23 Verifying : python3-dateutil-1:2.8.2-10.fc39.noarch 4/23 Verifying : python3-docutils-0.19-5.fc39.noarch 5/23 Verifying : python3-flake8-6.0.0-2.fc39.noarch 6/23 Verifying : python3-flexmock-0.11.3-7.fc39.noarch 7/23 Verifying : python3-markupsafe-2.1.3-2.fc39.x86_64 8/23 Verifying : python3-mccabe-0.7.0-4.fc39.noarch 9/23 Verifying : python3-pg8000-1.26.1-6.fc39.noarch 10/23 Verifying : python3-psycopg2-2.9.6-3.fc39.x86_64 11/23 Verifying : python3-psycopg3-3.1.10-1.fc39.noarch 12/23 Verifying : python3-pycodestyle-2.10.0-2.fc39.noarch 13/23 Verifying : python3-pyflakes-3.0.1-3.fc39.noarch 14/23 Verifying : python3-pygments-2.15.1-4.fc39.noarch 15/23 Verifying : python3-scramp-1.4.1-7.fc39.noarch 16/23 Verifying : python3-six-1.16.0-12.fc39.noarch 17/23 Verifying : python3-typing-extensions-4.8.0-1.fc39.noarch 18/23 Verifying : python3-greenlet-3.0.1-1.fc39.x86_64 19/23 Verifying : python3-isort-5.13.2-1.fc39.noarch 20/23 Verifying : python3-jinja2-3.1.3-1.fc39.noarch 21/23 Verifying : python3-pytz-2024.1-1.fc39.noarch 22/23 Verifying : python3-sqlalchemy-1.4.52-1.fc39.x86_64 23/23 Installed: libpq-15.3-1.fc39.x86_64 python3-PyMySQL-1.1.0-3.fc39.noarch python3-asn1crypto-1.5.1-6.fc39.noarch python3-dateutil-1:2.8.2-10.fc39.noarch python3-docutils-0.19-5.fc39.noarch python3-flake8-6.0.0-2.fc39.noarch python3-flexmock-0.11.3-7.fc39.noarch python3-greenlet-3.0.1-1.fc39.x86_64 python3-isort-5.13.2-1.fc39.noarch python3-jinja2-3.1.3-1.fc39.noarch python3-markupsafe-2.1.3-2.fc39.x86_64 python3-mccabe-0.7.0-4.fc39.noarch python3-pg8000-1.26.1-6.fc39.noarch python3-psycopg2-2.9.6-3.fc39.x86_64 python3-psycopg3-3.1.10-1.fc39.noarch python3-pycodestyle-2.10.0-2.fc39.noarch python3-pyflakes-3.0.1-3.fc39.noarch python3-pygments-2.15.1-4.fc39.noarch python3-pytz-2024.1-1.fc39.noarch python3-scramp-1.4.1-7.fc39.noarch python3-six-1.16.0-12.fc39.noarch python3-sqlalchemy-1.4.52-1.fc39.x86_64 python3-typing-extensions-4.8.0-1.fc39.noarch Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1711324800 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.WmQZY4 + 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 -Cstrip=none -Cforce-frame-pointers=yes --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-5.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 (<2,>=1.3) from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: SQLAlchemy (<2,>=1.3) (installed: SQLAlchemy 1.4.52) 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.3) 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.10) 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 2024.1) 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.13.2) 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-5.fc39.x86_64-pyproject-buildrequires + rm -rfv SQLAlchemy_Utils-0.41.1.dist-info/ removed 'SQLAlchemy_Utils-0.41.1.dist-info/top_level.txt' removed 'SQLAlchemy_Utils-0.41.1.dist-info/METADATA' removed 'SQLAlchemy_Utils-0.41.1.dist-info/LICENSE' 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-5.fc39.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 45 kB/s | 1.5 kB 00:00 fedora 776 kB/s | 25 kB 00:00 updates 615 kB/s | 22 kB 00:00 Package python3-sqlalchemy-1.4.52-1.fc39.x86_64 is already installed. Package pyproject-rpm-macros-1.12.0-1.fc39.noarch is already installed. Package python3-colour-0.1.5-16.fc39.noarch is already installed. Package python3-devel-3.12.2-2.fc39.x86_64 is already installed. Package python3-devel-3.12.2-2.fc39.x86_64 is already installed. Package python3-phonenumbers-8.12.53-4.fc39.noarch is already installed. Package python3-pytest-7.3.2-4.fc39.noarch is already installed. Package python3-docutils-0.19-5.fc39.noarch is already installed. Package python3-flake8-6.0.0-2.fc39.noarch is already installed. Package python3-flexmock-0.11.3-7.fc39.noarch is already installed. Package python3-isort-5.13.2-1.fc39.noarch is already installed. Package python3-jinja2-3.1.3-1.fc39.noarch is already installed. Package python3-packaging-23.1-4.fc39.noarch is already installed. Package python3-pg8000-1.26.1-6.fc39.noarch is already installed. Package python3-pip-23.2.1-1.fc39.noarch is already installed. Package python3-psycopg3-3.1.10-1.fc39.noarch is already installed. Package python3-psycopg2-2.9.6-3.fc39.x86_64 is already installed. Package python3-pygments-2.15.1-4.fc39.noarch is already installed. Package python3-PyMySQL-1.1.0-3.fc39.noarch is already installed. Package python3-pytest-7.3.2-4.fc39.noarch is already installed. Package python3-dateutil-1:2.8.2-10.fc39.noarch is already installed. Package python3-pytz-2024.1-1.fc39.noarch is already installed. Package python3-setuptools-67.7.2-7.fc39.noarch is already installed. Package python3-wheel-1:0.40.0-4.fc39.noarch is already installed. Dependencies resolved. Nothing to do. Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1711324800 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.MiF7dx + 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 -Cstrip=none -Cforce-frame-pointers=yes --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-5.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 (<2,>=1.3) from hook generated metadata: Requires-Dist (SQLAlchemy-Utils) Requirement satisfied: SQLAlchemy (<2,>=1.3) (installed: SQLAlchemy 1.4.52) 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.3) 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.10) 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 2024.1) 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.13.2) 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-5.fc39.x86_64-pyproject-buildrequires + rm -rfv SQLAlchemy_Utils-0.41.1.dist-info/ removed 'SQLAlchemy_Utils-0.41.1.dist-info/top_level.txt' removed 'SQLAlchemy_Utils-0.41.1.dist-info/METADATA' removed 'SQLAlchemy_Utils-0.41.1.dist-info/LICENSE' 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.VnHu28 + 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 -Cstrip=none -Cforce-frame-pointers=yes -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-oc_kofke/SQLAlchemy_Utils.egg-info writing /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-oc_kofke/SQLAlchemy_Utils.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-oc_kofke/SQLAlchemy_Utils.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-oc_kofke/SQLAlchemy_Utils.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-oc_kofke/SQLAlchemy_Utils.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-oc_kofke/SQLAlchemy_Utils.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-oc_kofke/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-oc_kofke/SQLAlchemy_Utils.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/.pyproject-builddir/pip-modern-metadata-oc_kofke/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/__init__.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/aggregates.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/asserts.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/compat.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/exceptions.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/expressions.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/generic.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/i18n.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/listeners.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/models.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/observer.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/operators.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/path.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/proxy_dict.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/query_chain.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/utils.py -> build/lib/sqlalchemy_utils copying sqlalchemy_utils/view.py -> build/lib/sqlalchemy_utils creating build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/__init__.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/database.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/foreign_keys.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/mock.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/orm.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/render.py -> build/lib/sqlalchemy_utils/functions copying sqlalchemy_utils/functions/sort_query.py -> build/lib/sqlalchemy_utils/functions creating build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/__init__.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/country.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/currency.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/ltree.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/weekday.py -> build/lib/sqlalchemy_utils/primitives copying sqlalchemy_utils/primitives/weekdays.py -> build/lib/sqlalchemy_utils/primitives creating build/lib/sqlalchemy_utils/relationships copying sqlalchemy_utils/relationships/__init__.py -> build/lib/sqlalchemy_utils/relationships copying sqlalchemy_utils/relationships/chained_join.py -> build/lib/sqlalchemy_utils/relationships creating build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/__init__.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/arrow.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/bit.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/choice.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/color.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/country.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/currency.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/email.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/ip_address.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/json.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/locale.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/ltree.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/password.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/pg_composite.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/phone_number.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/range.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/scalar_coercible.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/scalar_list.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/timezone.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/ts_vector.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/url.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/uuid.py -> build/lib/sqlalchemy_utils/types copying sqlalchemy_utils/types/weekdays.py -> build/lib/sqlalchemy_utils/types creating build/lib/sqlalchemy_utils/types/encrypted copying sqlalchemy_utils/types/encrypted/__init__.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/padding.py -> build/lib/sqlalchemy_utils/types/encrypted creating build/lib/sqlalchemy_utils/types/enriched_datetime copying sqlalchemy_utils/types/enriched_datetime/__init__.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/enriched_date_type.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/pendulum_date.py -> build/lib/sqlalchemy_utils/types/enriched_datetime copying sqlalchemy_utils/types/enriched_datetime/pendulum_datetime.py -> build/lib/sqlalchemy_utils/types/enriched_datetime 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 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 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 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 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 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-phbtb2_r/.tmp-o96vc_qp/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=92591 sha256=4710f043ae1f81cd60096440ae8e94125cb401e5027664ebf709d2f3160d19f6 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.8k0Vd9 + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64 ++ dirname /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.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 -Cstrip=none -Cforce-frame-pointers=yes -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 + '[' -z 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-5.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.2.1 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-5.fc39.x86_64/usr/bin ']' + rm -f /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.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-5.fc39.x86_64/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.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-5.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-5.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-5.fc39.x86_64 --record /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.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-5.fc39.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.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-5.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-5.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-5.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-5.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-5.fc39.x86_64-pyproject-files --output-modules /builddir/build/BUILD/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.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-5.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-5.fc39 --unique-debug-suffix -0.41.1-5.fc39.x86_64 --unique-debug-src-base python-sqlalchemy-utils-0.41.1-5.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-5.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.S3XCRX + 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 -Cstrip=none -Cforce-frame-pointers=yes -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-5.fc39.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.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.2, pytest-7.3.2, pluggy-1.2.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 =============================== tests/test_models.py::TestTimestamp::test_created /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1/tests/test_models.py:20: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.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.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.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.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.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.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.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.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.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.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.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, 9 warnings, 108 errors in 54.08s = + : + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-sqlalchemy-utils-0.41.1-5.fc39.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.hGlU2u + umask 022 + cd /builddir/build/BUILD + cd SQLAlchemy-Utils-0.41.1 + DOCDIR=/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64/usr/share/doc/python3-sqlalchemy-utils + export LC_ALL= + LC_ALL= + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.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-5.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.05azvu + umask 022 + cd /builddir/build/BUILD + cd SQLAlchemy-Utils-0.41.1 + LICENSEDIR=/builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64/usr/share/licenses/python3-sqlalchemy-utils + export LC_ALL= + LC_ALL= + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.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-5.fc39.x86_64/usr/share/licenses/python3-sqlalchemy-utils + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-sqlalchemy-utils = 0.41.1-5.fc39 python3-sqlalchemy-utils = 0.41.1-5.fc39 python3.12-sqlalchemy-utils = 0.41.1-5.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: (python3.12dist(sqlalchemy) < 2~~ with python3.12dist(sqlalchemy) >= 1.3) python(abi) = 3.12 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-sqlalchemy-utils-0.41.1-5.fc39.x86_64 Wrote: /builddir/build/SRPMS/python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm Wrote: /builddir/build/RPMS/python3-sqlalchemy-utils-0.41.1-5.fc39.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.XSMkQo + 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-5.fc39.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.OesCAt + umask 022 + cd /builddir/build/BUILD + rm -rf /builddir/build/BUILD/SQLAlchemy-Utils-0.41.1-SPECPARTS + rm -rf SQLAlchemy-Utils-0.41.1 SQLAlchemy-Utils-0.41.1.gemspec + RPM_EC=0 ++ jobs -p + exit 0 Finish: rpmbuild python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm Finish: build phase for python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-39-x86_64-1711389296.877530/root/var/log/dnf.log /var/lib/mock/fedora-39-x86_64-1711389296.877530/root/var/log/dnf.librepo.log /var/lib/mock/fedora-39-x86_64-1711389296.877530/root/var/log/dnf.rpm.log INFO: Done(/var/lib/copr-rpmbuild/results/python-sqlalchemy-utils-0.41.1-5.fc39.src.rpm) Config(child) 1 minutes 19 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run Running RPMResults tool Package info: { "packages": [ { "name": "python3-sqlalchemy-utils", "epoch": null, "version": "0.41.1", "release": "5.fc39", "arch": "noarch" }, { "name": "python-sqlalchemy-utils", "epoch": null, "version": "0.41.1", "release": "5.fc39", "arch": "src" } ] } RPMResults finished