[Python-modules-team] Bug#734988: matplotlib: please add autopkgtests
Julian Taylor
jtaylor.debian at googlemail.com
Sat Jan 11 15:22:44 UTC 2014
Package: matplotlib
Version: 1.3.1-1
Severity: wishlist
Tags: patch
matplotlib tends to break very easily, e.g. multiarch tk, tk upgrades or
basically any change in its many many dependencies. In order to help
automatic verification please add autopkgtests.
Attached a patch with some basic tests, they just check functionality of
the tk, qt4 and wxagg backends.
The tk check also runs debug mode which requires adding python-tk-dbg
and python3-tk-dbg build dependencies.
The wxagg backend test crashes under debug mode, I currently do not have
time to investigate that, so it is disabled.
Please note the tests must be made executable after applying the debdiff.
-------------- next part --------------
--- matplotlib-1.3.1/debian/control 2013-10-06 22:36:27.000000000 +0200
+++ matplotlib-1.3.1/debian/control 2014-01-11 16:08:33.000000000 +0100
@@ -42,7 +42,9 @@
python-sphinx (>= 1.0.7+dfsg),
python-support (>= 1.0.0),
python-tk (>= 2.5.2-1.1),
+ python-tk-dbg (>= 2.5.2-1.1),
python3-tk,
+ python3-tk-dbg,
python-tornado,
python3-tornado,
python-tz,
@@ -63,6 +65,7 @@
Homepage: http://matplotlib.org/
Vcs-Svn: svn://anonscm.debian.org/python-modules/packages/matplotlib/trunk/
Vcs-Browser: http://anonscm.debian.org/viewvc/python-modules/packages/matplotlib/trunk/
+XS-Testsuite: autopkgtest
Package: python-matplotlib
Architecture: any
diff -Nru matplotlib-1.3.1/debian/tests/backend-base matplotlib-1.3.1/debian/tests/backend-base
--- matplotlib-1.3.1/debian/tests/backend-base 1970-01-01 01:00:00.000000000 +0100
+++ matplotlib-1.3.1/debian/tests/backend-base 2014-01-09 02:50:58.000000000 +0100
@@ -0,0 +1,34 @@
+#!/bin/sh
+set -efu
+
+DEBUG=${DEBUG:-yes}
+
+export HOME=$ADTTMP
+cd $ADTTMP
+
+echo "=== $BACKEND ==="
+
+cat << EOF > test.py
+import matplotlib
+matplotlib.use("$BACKEND")
+import matplotlib.pyplot as plt
+
+plt.ion()
+plt.plot(range(5), range(5))
+plt.show()
+plt.gca().figure.canvas.draw()
+plt.savefig('test.png')
+EOF
+
+for py in $pys; do
+ echo "=== $py ==="
+ xvfb-run -a -s "-screen 0 1280x1024x24 -noreset" $py test.py
+ rm test.png
+
+ if [ "$DEBUG" = "yes" ]; then
+ echo "=== $py-dbg ==="
+ xvfb-run -a -s "-screen 0 1280x1024x24 -noreset" $py-dbg test.py 2>&1
+ rm test.png
+ fi
+done
+
diff -Nru matplotlib-1.3.1/debian/tests/control matplotlib-1.3.1/debian/tests/control
--- matplotlib-1.3.1/debian/tests/control 1970-01-01 01:00:00.000000000 +0100
+++ matplotlib-1.3.1/debian/tests/control 2014-01-09 02:37:16.000000000 +0100
@@ -0,0 +1,8 @@
+Tests: tkagg
+Depends: xauth, xvfb, python-matplotlib, python-matplotlib-dbg, python-tk, python-tk-dbg, python-numpy, python-numpy-dbg, python3-matplotlib, python3-matplotlib-dbg, python3-tk, python3-tk-dbg, python3-numpy, python3-numpy-dbg
+
+Tests: qt4agg
+Depends: xauth, xvfb, python-matplotlib, python-matplotlib-dbg, python-qt4, python-qt4-dbg, python-numpy, python-numpy-dbg, python3-matplotlib, python3-matplotlib-dbg, python3-pyqt4, python3-pyqt4-dbg, python3-numpy, python3-numpy-dbg
+
+Tests: wxagg
+Depends: xauth, xvfb, python-matplotlib, python-matplotlib-dbg, python-wxgtk2.8, python-wxgtk2.8-dbg, python-numpy, python-numpy-dbg
diff -Nru matplotlib-1.3.1/debian/tests/qt4agg matplotlib-1.3.1/debian/tests/qt4agg
--- matplotlib-1.3.1/debian/tests/qt4agg 1970-01-01 01:00:00.000000000 +0100
+++ matplotlib-1.3.1/debian/tests/qt4agg 2014-01-09 02:30:23.000000000 +0100
@@ -0,0 +1,6 @@
+#!/bin/sh
+set -efu
+
+pys="$(pyversions -r 2>/dev/null) $(py3versions -r 2>/dev/null)"
+
+BACKEND="Qt4Agg" pys=$pys debian/tests/backend-base
diff -Nru matplotlib-1.3.1/debian/tests/tkagg matplotlib-1.3.1/debian/tests/tkagg
--- matplotlib-1.3.1/debian/tests/tkagg 1970-01-01 01:00:00.000000000 +0100
+++ matplotlib-1.3.1/debian/tests/tkagg 2014-01-09 02:30:24.000000000 +0100
@@ -0,0 +1,6 @@
+#!/bin/sh
+set -efu
+
+pys="$(pyversions -r 2>/dev/null) $(py3versions -r 2>/dev/null)"
+
+BACKEND="TkAgg" pys=$pys debian/tests/backend-base
diff -Nru matplotlib-1.3.1/debian/tests/wxagg matplotlib-1.3.1/debian/tests/wxagg
--- matplotlib-1.3.1/debian/tests/wxagg 1970-01-01 01:00:00.000000000 +0100
+++ matplotlib-1.3.1/debian/tests/wxagg 2014-01-09 02:56:15.000000000 +0100
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -efu
+
+pys="$(pyversions -r 2>/dev/null)"
+
+# todo check why debug fails
+BACKEND="WXAgg" pys=$pys DEBUG=no debian/tests/backend-base 2>&1
More information about the Python-modules-team
mailing list