Afternoon
I had reason to come back to looking at this recently; I've reworked the
patch to just support stestr as the test execution system (the other two
seem much less common/unused directly now).
I tested this with the python-oslo.config package - albeit I did have to
strip down the rules file to remove alot of existing packaging scaffolding
using openstack-pkg-tools.
diff -Nru dh-python-6.20231223ubuntu2/dh/pybuild.pm dh-python-6.20231223ubuntu3/dh/pybuild.pm
--- dh-python-6.20231223ubuntu2/dh/pybuild.pm 2023-12-24 00:06:52.000000000 +0000
+++ dh-python-6.20231223ubuntu3/dh/pybuild.pm 2024-03-12 15:33:25.000000000 +0000
@@ -157,7 +157,8 @@
$ENV{'PYBUILD_TEST_NOSE2'} ne '1' and
$ENV{'PYBUILD_TEST_NOSE'} ne '1' and
$ENV{'PYBUILD_TEST_CUSTOM'} ne '1' and
- $ENV{'PYBUILD_TEST_TOX'} ne '1') {
+ $ENV{'PYBUILD_TEST_TOX'} ne '1' and
+ $ENV{'PYBUILD_TEST_STESTR'} ne '1') {
if (grep {$_ eq 'tox'} @deps and $ENV{'PYBUILD_TEST_TOX'} ne '0') {
push @py3opts, '--test-tox'}
elsif (grep {$_ eq 'python3-pytest'} @deps and $ENV{'PYBUILD_TEST_PYTEST'} ne '0') {
@@ -166,6 +167,8 @@
push @py3opts, '--test-nose2'}
elsif (grep {$_ eq 'python3-nose'} @deps and $ENV{'PYBUILD_TEST_NOSE'} ne '0') {
push @py3opts, '--test-nose'}
+ elsif (grep {$_ eq 'python3-stestr'} @deps and $ENV{'PYBUILD_TEST_STESTR'} ne '0') {
+ push @py3opts, '--test-stestr'}
}
my $py3all = 0;
diff -Nru dh-python-6.20231223ubuntu2/dhpython/build/base.py dh-python-6.20231223ubuntu3/dhpython/build/base.py
--- dh-python-6.20231223ubuntu2/dhpython/build/base.py 2023-12-24 00:06:52.000000000 +0000
+++ dh-python-6.20231223ubuntu3/dhpython/build/base.py 2024-03-12 15:33:25.000000000 +0000
@@ -273,6 +273,12 @@
tox_cmd.append('{args}')
return ' '.join(tox_cmd)
+ elif self.cfg.test_stestr:
+ return (
+ 'cd {build_dir};'
+ 'stestr --config {dir}/.stestr.conf init;'
+ 'PYTHON=python{version} stestr --config {dir}/.stestr.conf run'
+ )
elif self.cfg.test_custom:
return 'cd {build_dir}; {args}'
elif args['version'] == '2.7' or args['version'] >> '3.1' or args['interpreter'] == 'pypy':
diff -Nru dh-python-6.20231223ubuntu2/pybuild dh-python-6.20231223ubuntu3/pybuild
--- dh-python-6.20231223ubuntu2/pybuild 2023-12-24 00:06:52.000000000 +0000
+++ dh-python-6.20231223ubuntu3/pybuild 2024-03-12 15:32:49.000000000 +0000
@@ -524,6 +524,9 @@
tests.add_argument('--test-tox', action='store_true',
default=environ.get('PYBUILD_TEST_TOX') == '1',
help='use tox in --test step')
+ tests.add_argument('--test-stestr', action='store_true',
+ default=environ.get('PYBUILD_TEST_STESTR') == '1',
+ help='use stestr in --test step')
tests.add_argument('--test-custom', action='store_true',
default=environ.get('PYBUILD_TEST_CUSTOM') == '1',
help='use custom command in --test step')
@@ -581,7 +584,7 @@
args.versions = versions
if args.test_nose or args.test_nose2 or args.test_pytest or args.test_tox\
- or args.test_custom or args.system == 'custom':
+ or args.test_stestr or args.test_custom or args.system == 'custom':
args.custom_tests = True
else:
args.custom_tests = False
diff -Nru dh-python-6.20231223ubuntu2/pybuild.rst dh-python-6.20231223ubuntu3/pybuild.rst
--- dh-python-6.20231223ubuntu2/pybuild.rst 2023-12-24 00:06:52.000000000 +0000
+++ dh-python-6.20231223ubuntu3/pybuild.rst 2024-03-12 15:33:22.000000000 +0000
@@ -101,6 +101,9 @@
--test-tox
use tox command in test step, remember to add tox
to Build-Depends. Requires tox.ini file
+ --test-stestr
+ use stestr command in test step, remember to add python-stestr and/or
+ python3-stestr to Build-Depends.
--test-custom
use a custom command in the test step. The full test command is then
specified with `--test-args` or by setting the `PYBUILD_TEST_ARGS`