Package: autodep8
Version: 0.18
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu eoan ubuntu-patch

Dear maintainers,

In Ubuntu, I discovered when dropping python2 support from python-os-api-ref
that autodep8 has some bugginess in how it decides what versions of python
to run tests for.  (The python-os-api-ref Debian maintainer also found this,
but handled it by adding manual tests; we have not synced the Debian
solution because it's a new upstream version of the package and we're in
feature freeze.)

Specifically, python-os-api-ref has the following setup:

Source: python-os-api-ref

Binary: python-os-api-ref-common

Binary: python3-os-api-ref

The correct module to test imports of is os_api_ref, of course, not
os_api_ref_common; and it should be tested only for python3.

The attached patch fixes this, and also adds a test case for this situation.
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slanga...@ubuntu.com                                     vor...@debian.org
diff -Nru autodep8-0.18/support/python/generate 
autodep8-0.18ubuntu2/support/python/generate
--- autodep8-0.18/support/python/generate       2019-01-30 11:17:41.000000000 
-0800
+++ autodep8-0.18ubuntu2/support/python/generate        2019-09-10 
15:16:56.000000000 -0700
@@ -13,10 +13,12 @@
     py3_package=python3-$module
 fi
 
-source_package=$(grep-dctrl -n -s Source -F Source -r '^pypy-.*$' 
debian/control || true)
-if [ -n "$source_package" ] ; then
-    module=${source_package#pypy-}
-    pypy_package=pypy-$module
+if [ -z "$module" ]; then
+    source_package=$(grep-dctrl -n -s Source -F Source -r '^pypy-.*$' 
debian/control || true)
+    if [ -n "$source_package" ] ; then
+        module=${source_package#pypy-}
+        pypy_package=pypy-$module
+    fi
 fi
 
 # Try binary package(s)
@@ -39,7 +41,7 @@
 fi
 
 # Try binary package(s)
-if [ -z "$source_package" ] ; then
+if [ -z "$pypy_package" ]; then
     binary_packages=$(grep-dctrl -n -s Package -F Package -r '^pypy-.*$' 
debian/control || true)
     if [ -n "$binary_packages" ] ; then
         for binary_package in $binary_packages ; do
diff -Nru autodep8-0.18/test/python_test.sh 
autodep8-0.18ubuntu2/test/python_test.sh
--- autodep8-0.18/test/python_test.sh   2019-01-30 11:17:41.000000000 -0800
+++ autodep8-0.18ubuntu2/test/python_test.sh    2019-09-10 15:16:41.000000000 
-0700
@@ -85,6 +85,14 @@
   assertTrue 'have pypy test' 'grep --quiet "pypy -c" stdout'
 }
 
+test_python_ignore_py2_non_module() {
+  has 'debian/control' 'Source: python-foo\n\nPackage: 
python-foo-common\n\nPackage: python3-foo'
+  check_run autodep8
+  assertTrue 'get upstream name' 'grep --quiet "import foo;" stdout'
+  assertFalse 'dont have py2 test' 'grep --quiet "pyversions" stdout'
+  assertTrue 'have py3 test' 'grep --quiet "py3versions" stdout'
+}
+
 test_Testsuite_autopkgtest_pkg_python() {
   has debian/control "Testsuite: autopkgtest-pkg-python"
   check_run autodep8

Reply via email to