[server] prevent returning closed cursor to the database pool
In since c8c6ad8 init_repository use repo.internal_cnx() instead of
repo.system_source.get_connection() so it use the pool and we should not close
cursors from the pool before returning it back. Otherwise we may have
"connection already closed" error.
This bug only trigger when connection-pool-size = 1. Since we are moving to use
a dynamic pooler we need to get this fixed.
This does not occur with sqlite since the connection wrapper instantiate new
cursor everytime, but this occur with other databases.
#!/bin/sh
set -e
set -x
### Setup tests
find cubicweb -type d -name 'test' -a '!' -wholename 'cubicweb/skeleton/*' | while read dir; do
mkdir -p "$AUTOPKGTEST_TMP"/$(dirname "$dir")
cp -r "$dir" "$AUTOPKGTEST_TMP/$dir"
cp tox.ini "$AUTOPKGTEST_TMP"
done
chown -R nobody:nogroup "$AUTOPKGTEST_TMP"
### Find PostgreSQL binaries
POSTGRESQL_BINDIR=$(find /usr/lib/postgresql -type f -name 'initdb' -printf "%h\n" | head -n 1)
test "$POSTGRESQL_BINDIR" || { echo "Unable to find 'initdb'" >&2; exit 1; }
### Run tests
for py in $(py3versions -r 2>/dev/null); do
cd "$AUTOPKGTEST_TMP"
echo "Testing with $py:"
su nobody --shell /bin/sh \
-c "env PATH='$PATH:$POSTGRESQL_BINDIR' $py -m pytest -v"
done