[pkg] Run test suite as part of autopkgtest
Add support for autopkgtest. The test “unittest” will run the test
suite using pytest. As we need PostgreSQL in the test environment
and open network connection, the test is marked with
`isolation-container` and requires at least LXC to be run, e.g:
autopkgtest -s -- lxc -s autopkgtest-sid
#!/bin/sh
set -e
set -x
### Setup tests
find cubicweb -type d -name 'test' | while read dir; do
mkdir -p "$AUTOPKGTEST_TMP"/$(dirname "$dir")
cp -r "$dir" "$AUTOPKGTEST_TMP/$dir"
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