debian/tests/unittest
author Jérémy Bobbio <jeremy.bobbio@irq7.fr>
Mon, 17 Jun 2019 17:25:04 +0200
changeset 12686 74b8bceddee7
parent 12684 d464495452aa
permissions -rw-r--r--
[pkg] Add new autopkgtest for skeleton packaging When running `cubicweb-ctl newcube`, the generated template provides debian packaging. So let's add automated tests for that using autopkgtest. The new test will generated a new cube, build a source tarball, build the package, try to install it, see if the Python 3 module is available and even run autopkgtest against the newly created packages. Along the way it will also print information about the generated package: buildinfo, package content, and lintian report.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12643
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
     1
#!/bin/sh
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
     2
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
     3
set -e
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
     4
set -x
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
     5
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
     6
### Setup tests
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
     7
12683
d77afae12d45 [pkg] Stop running unit tests from skeleton
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents: 12643
diff changeset
     8
find cubicweb -type d -name 'test' -a '!' -wholename 'cubicweb/skeleton/*' | while read dir; do
12643
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
     9
	mkdir -p "$AUTOPKGTEST_TMP"/$(dirname "$dir")
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    10
	cp -r "$dir" "$AUTOPKGTEST_TMP/$dir"
12684
d464495452aa [pkg] Run all unit tests in autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents: 12683
diff changeset
    11
	cp tox.ini "$AUTOPKGTEST_TMP"
12643
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    12
done
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    13
chown -R nobody:nogroup "$AUTOPKGTEST_TMP"
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    14
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    15
### Find PostgreSQL binaries
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    16
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    17
POSTGRESQL_BINDIR=$(find /usr/lib/postgresql -type f -name 'initdb' -printf "%h\n" | head -n 1)
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    18
test "$POSTGRESQL_BINDIR" || { echo "Unable to find 'initdb'" >&2; exit 1; }
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    19
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    20
### Run tests
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    21
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    22
for py in $(py3versions -r 2>/dev/null); do
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    23
	cd "$AUTOPKGTEST_TMP"
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    24
	echo "Testing with $py:"
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    25
	su nobody --shell /bin/sh \
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    26
		-c "env PATH='$PATH:$POSTGRESQL_BINDIR' $py -m pytest -v"
c0ff60cd4c1f [pkg] Run test suite as part of autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents:
diff changeset
    27
done