summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/languages/python
diff options
context:
space:
mode:
Diffstat (limited to 't/recipes/checks/languages/python')
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/debian/py3dist-overrides2
-rw-r--r--t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/from.py7
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/import.py3
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/debian/install11
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap-1.1.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/doxygen.css1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/feedparser.py1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.min.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.css1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/rss_parse.php1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/streams.php0
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/tiny_mce_popup.js1
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/feedparser/files-embedded/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/changelog.in78
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/control42
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/doc-base11
-rwxr-xr-xt/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/rules231
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/ .tif2
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/".tif1
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/Maelstrom Sound1
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/feedparser.py16
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/post-test3
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/clean5
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/dirs15
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/install61
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/manpages0
-rwxr-xr-xt/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/rules18
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar1
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar.pod18
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/eval/hints3
-rw-r--r--t/recipes/checks/languages/python/files-foo-in-bar/eval/post-test2
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/debian/control.in53
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/debian/python-kinterbasdb.install7
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/debian/rules19
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/fill-values5
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/orig/Makefile7
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/orig/lib.c4
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/orig/objects.inv199
-rw-r--r--t/recipes/checks/languages/python/files-python-general/build-spec/orig/python.egg1
-rw-r--r--t/recipes/checks/languages/python/files-python-general/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/files-python-general/eval/hints7
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/install9
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/rules5
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/__init__.py0
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/site.py0
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/tests.py0
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/hints9
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/debian/install13
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/debian/rules5
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/build-spec/orig/python-foo1
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/files-python-modules/eval/hints16
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/install4
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/bad0
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good0
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good.py0
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/homepage/pypi/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/python/homepage/pypi/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/homepage/pypi/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/missing-sources/fake.py1
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pycompat0
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pyversions1
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/fill-values4
-rwxr-xr-xt/recipes/checks/languages/python/obsolete/cruft-python/build-spec/pre-build31
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/obsolete/cruft-python/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/changelog.in6
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/compat.in1
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/control52
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/copyright10
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-noscripts.templates3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postinst10
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postrm7
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.templates3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.postrm7
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.preinst13
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.templates3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.config24
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.postinst10
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates101
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.de3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.in0
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.postinst9
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.templates3
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/POTFILES.in2
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/de.po66
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/fr.po60
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/lang.po15
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/nds.po15
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/output1
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/pt_BR.po15
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/sample-file.po1
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/templates.pot61
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pycompat1
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pyversions1
-rwxr-xr-xt/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/rules64
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/fill-values6
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/post-test1
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/orig/some-file2
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/python-ancient-python-version-field/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/desc5
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/hints0
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/orig/pyproject.toml7
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/orig/pyproject.toml17
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/debian/control.in61
-rw-r--r--t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/hints3
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/control.in19
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/build-spec/orig/some-file2
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-malformed-py-version/eval/hints4
-rw-r--r--t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/debian/control.in67
-rw-r--r--t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/changelog.in10
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/hints0
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/changelog.in9
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/control.in27
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-new-python2-package/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/install1
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/build-spec/orig/some-file2
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/eval/desc4
-rw-r--r--t/recipes/checks/languages/python/python-old-python-version-field/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/debian/control.in38
-rw-r--r--t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/hints6
-rw-r--r--t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/control.in16
-rwxr-xr-xt/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/rules10
-rw-r--r--t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-python2-apps/build-spec/debian/control.in87
-rw-r--r--t/recipes/checks/languages/python/python-python2-apps/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-python2-apps/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-python2-apps/eval/hints6
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/debian/control.in84
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/desc3
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-python2-no-python3/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-source-package-encodes-python-version/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-valid-pdm/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/build-spec/orig/pyproject.toml17
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-valid-poetry/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/build-spec/debian/control.in18
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/build-spec/orig/pyproject.toml3
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-wrong-pdm/eval/hints2
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/build-spec/debian/control.in19
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/build-spec/fill-values4
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/build-spec/orig/pyproject.toml17
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/python-wrong-poetry/eval/hints1
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/control.in16
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/install1
-rwxr-xr-xt/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/rules4
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad11
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad21
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good11
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good21
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/fill-values3
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/desc2
-rw-r--r--t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/hints2
275 files changed, 2791 insertions, 0 deletions
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/build-spec/fill-values b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/build-spec/fill-values
new file mode 100644
index 0000000..84051f4
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/build-spec/fill-values
@@ -0,0 +1,4 @@
+Testname: what-is-python-build-depends
+Skeleton: source-native
+Extra-Build-Depends: python-dev-is-python3
+Descriptions: Build-Depends on python-is-python3-dev
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/desc b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/desc
new file mode 100644
index 0000000..e2cbf55
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/desc
@@ -0,0 +1,3 @@
+Testname: what-is-python-build-depends
+Check: languages/python/bogus-prerequisites
+See-Also: Debian Bug #973011
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/hints b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/hints
new file mode 100644
index 0000000..c331f2b
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-build-depends/eval/hints
@@ -0,0 +1 @@
+what-is-python-build-depends (source): bogus-python-prerequisite Build-Depends (satisfies python-dev-is-python3:any)
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/debian/control.in b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/debian/control.in
new file mode 100644
index 0000000..30a24a9
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: [% $priority %]
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: [% $rules_requires_root %]
+Homepage: [% $homepage %]
+
+Package: [% $source %]
+Architecture: [% $package_architecture %]
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, python-is-python3
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/fill-values b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/fill-values
new file mode 100644
index 0000000..1b3816c
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/build-spec/fill-values
@@ -0,0 +1,3 @@
+Testname: what-is-python-depends
+Skeleton: upload-native
+Descriptions: Depends on python-is-python3
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/desc b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/desc
new file mode 100644
index 0000000..34cd4e1
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/desc
@@ -0,0 +1,3 @@
+Testname: what-is-python-depends
+Check: languages/python/bogus-prerequisites
+See-Also: Debian Bug #973011
diff --git a/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/hints b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/hints
new file mode 100644
index 0000000..0425694
--- /dev/null
+++ b/t/recipes/checks/languages/python/bogus-prerequisites/what-is-python-depends/eval/hints
@@ -0,0 +1 @@
+what-is-python-depends (binary): bogus-python-prerequisite Depends (satisfies python-is-python3:any)
diff --git a/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/debian/py3dist-overrides b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/debian/py3dist-overrides
new file mode 100644
index 0000000..9e1c71d
--- /dev/null
+++ b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/debian/py3dist-overrides
@@ -0,0 +1,2 @@
+gi.repository.Gst gir1.2-gst-plugins-base-1.0
+gi.repository.Gst gir1.2-gstreamer-1.0
diff --git a/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/fill-values b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/fill-values
new file mode 100644
index 0000000..881cb56
--- /dev/null
+++ b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: duplicate-identifier
+Description: Duplicate identifier in d/py3dist-overrides
diff --git a/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/desc b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/desc
new file mode 100644
index 0000000..2c1e04d
--- /dev/null
+++ b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/desc
@@ -0,0 +1,2 @@
+Testname: duplicate-identifier
+Check: languages/python/dist-overrides
diff --git a/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/hints b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/hints
new file mode 100644
index 0000000..c90c63d
--- /dev/null
+++ b/t/recipes/checks/languages/python/dist-overrides/duplicate-identifier/eval/hints
@@ -0,0 +1 @@
+duplicate-identifier (source): duplicate-p3dist-override gi.repository.Gst
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/debian/control.in b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/debian/control.in
new file mode 100644
index 0000000..8d38d33
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/fill-values b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/fill-values
new file mode 100644
index 0000000..bc3d5c9
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-imports-distutils
+Description: Check packages that have python files importing distutils
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/from.py b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/from.py
new file mode 100644
index 0000000..2c545b0
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/from.py
@@ -0,0 +1,7 @@
+#!/usr/bin/python3
+
+import os
+import time
+import argparse
+
+from distutils.version import StrictVersion
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/import.py b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/import.py
new file mode 100644
index 0000000..52f9843
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/build-spec/orig/import.py
@@ -0,0 +1,3 @@
+#!/usr/bin/python3
+
+import distutils
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/desc b/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/desc
new file mode 100644
index 0000000..cf33da9
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-imports-distutils
+Check: languages/python/distutils
diff --git a/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/hints b/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/hints
new file mode 100644
index 0000000..92c2b6b
--- /dev/null
+++ b/t/recipes/checks/languages/python/distutils/python-imports-distutils/eval/hints
@@ -0,0 +1,2 @@
+python-imports-distutils (source): uses-python-distutils [import.py:3]
+python-imports-distutils (source): uses-python-distutils [from.py:7]
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/debian/install b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/debian/install
new file mode 100644
index 0000000..c18d2a0
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/debian/install
@@ -0,0 +1,11 @@
+jquery* usr/share/php
+mocha.* usr/share/javascript/mocha
+bootstrap-* usr/share/php
+bootstrap.js usr/share/xul-ext/lintian
+feedparser.py usr/share/php
+streams.php usr/share/php
+streams.php usr/share/php/pomo
+rss_parse.php usr/share/php
+tiny_mce_popup.js usr/share/php
+jquery.js usr/share/doxygen-test/
+doxygen.css usr/share/doxygen-test
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/fill-values b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/fill-values
new file mode 100644
index 0000000..8c48bea
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-embedded
+Description: Check for detection of embedded PEAR modules
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap-1.1.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap-1.1.js
new file mode 100644
index 0000000..d9c3762
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap-1.1.js
@@ -0,0 +1 @@
+This is an embedded javascript library from Twitter that uses "var Carousel";
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap.js
new file mode 100644
index 0000000..896075b
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/bootstrap.js
@@ -0,0 +1 @@
+// https://developer.mozilla.org/en-US/docs/Extensions/bootstrap.js false positive
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/doxygen.css b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/doxygen.css
new file mode 100644
index 0000000..43dd760
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/doxygen.css
@@ -0,0 +1 @@
+Dummy CSS file so that we do not emit embedded-javascript-library in jQuery docs.
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/feedparser.py b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/feedparser.py
new file mode 100644
index 0000000..c6a4922
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/feedparser.py
@@ -0,0 +1 @@
+This is not the "Universal feed parser", but it will do for this test. :)
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.min.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.min.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/jquery.min.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.css b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.css
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.css
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/mocha.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/rss_parse.php b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/rss_parse.php
new file mode 100644
index 0000000..95afc6a
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/rss_parse.php
@@ -0,0 +1 @@
+This is not a php file.
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/streams.php b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/streams.php
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/streams.php
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/tiny_mce_popup.js b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/tiny_mce_popup.js
new file mode 100644
index 0000000..6d56007
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/build-spec/orig/tiny_mce_popup.js
@@ -0,0 +1 @@
+This is an embedded javascript library
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/eval/desc b/t/recipes/checks/languages/python/feedparser/files-embedded/eval/desc
new file mode 100644
index 0000000..ccb08e2
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/eval/desc
@@ -0,0 +1,3 @@
+Testname: files-embedded
+See-Also: <g8t2fb$r9t$4@ger.gmane.org>
+Check: languages/python/feedparser
diff --git a/t/recipes/checks/languages/python/feedparser/files-embedded/eval/hints b/t/recipes/checks/languages/python/feedparser/files-embedded/eval/hints
new file mode 100644
index 0000000..47bca39
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/files-embedded/eval/hints
@@ -0,0 +1 @@
+files-embedded (binary): embedded-feedparser-library [usr/share/php/feedparser.py]
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/changelog.in b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/changelog.in
new file mode 100644
index 0000000..b79c4ca
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/changelog.in
@@ -0,0 +1,78 @@
+filenames ([% $version %]) [% $distribution %]; urgency=low
+
+ * /me is doing a correct NMU of this package, bumping the epoch too.
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Sun, 18 Apr 2004 02:04:39 +0200
+
+filenames (11) unstable; urgency=low
+
+ * Add a README.macos.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Mon, 12 Apr 2004 23:35:24 +0200
+
+filenames (10) unstable; urgency=low
+
+ * Some new files to check the checks for the use of /usr/*/X11 and
+ /usr/X11R6/*.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 17:35:20 +0200
+
+filenames (9) unstable; urgency=low
+
+ * Add a two *.ali files, one with the right permission, one with
+ the more common, but false one.
+
+ -- Marc 'HE' Brockschmidt <he@debian.org> Sun, 11 Apr 2004 00:18:16 +0200
+
+filenames (8) unstable; urgency=low
+
+ * Add a real ancient file
+
+ -- Frank Lichtenheld <djpig@debian.org> Thu, 8 Apr 2004 22:22:40 +0200
+
+filenames (7) unstable; urgency=low
+
+ * Add a dozen symlinks, some correct, some not
+
+ -- Jeroen van Wolffelaar <jeroen@wolffelaar.nl> Fri, 27 Feb 2004 01:28:42 +0100
+
+filenames (6) unstable; urgency=low
+
+ * Add perl files to check if
+ package-installs-nonbinary-perl-in-usr-lib-perl5 is correctly
+ issued even after attempting to suppress it in some cases
+
+ -- Frank Lichtenheld <djpig@debian.org> Fri, 27 Feb 2004 00:49:44 +0100
+
+filenames (5) unstable; urgency=low
+
+ * Added check for too long symlink
+
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Wed, 3 Jan 2001 13:20:31 -0800
+
+filenames (4) unstable; urgency=low
+
+ * Add /usr/lib/menu/menu file to test the bad-menu-file-name tag.
+ * Add /usr/lib/menu/README to test the new execption for it.
+
+ -- Richard Braakman <dark@xs4all.nl> Thu, 22 Oct 1998 15:42:52 +0200
+
+filenames (3) unstable; urgency=low
+
+ * Don't rely on the installer's umask.
+
+ -- Richard Braakman <dark@xs4all.nl> Thu, 20 Aug 1998 12:45:47 +0200
+
+filenames (2) unstable; urgency=low
+
+ * Noted more limitations on what filenames lintian handles.
+ * Added Changes.gz in /usr/doc/filenames and made a symlink from changelog.gz
+ to Changes.gz.
+
+ -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:46:11 +0200
+
+filenames (1) unstable; urgency=low
+
+ * Initial version
+
+ -- Richard Braakman <dark@xs4all.nl> Sat, 4 Jul 1998 15:25:01 +0200
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/control b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/control
new file mode 100644
index 0000000..1ff9c50
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/control
@@ -0,0 +1,42 @@
+Source: filenames
+Maintainer: Lintian Maintainer <lintian-maint@debian.org>
+Standards-Version: 3.1.1
+Rules-Requires-Root: binary-targets
+
+Package: filenames
+Architecture: any
+Description: see how lintian reacts to weird filenames
+ This package contains files with the most evil names I could find,
+ except for ones that lintian is explicitly not designed to handle.
+ .
+ Lintian does not handle filenames containing newlines, or filenames
+ that contain the strings " link to ", " -> ", or ": ". The last one
+ is used as a separator by the file command, the others are used as
+ separators by tar.
+ .
+ Lintian also does not handle filenames that contain backslashes, or
+ other characters that are mangled by tar's -tv output.
+
+Package: filename-games
+Architecture: all
+Depends: filenames
+Section: games
+Description: Test game filename/location checks
+ This package contains files with slightly less evil names than
+ filenames.
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
+
+Package: more-filename-games
+Architecture: all
+Depends: filenames, filename-games
+Section: games
+Priority: optional
+Description: More test for game filename/location checks
+ This package contains no evil names, only evil locations.
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package.
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/doc-base b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/doc-base
new file mode 100644
index 0000000..e5a611b
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/doc-base
@@ -0,0 +1,11 @@
+Document: testing
+Title: Working doc-base control file
+Author: Russ Allbery
+Abstract: This control file ensures that we don't get false positives for
+ correct doc-base files.
+ .
+ There isn't anything wrong with this one.
+Section: Education
+
+Format: Text
+Files: /usr/share/doc/filenames/README.macosx
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/rules b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/rules
new file mode 100755
index 0000000..0b9e87c
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/debian/rules
@@ -0,0 +1,231 @@
+#!/usr/bin/make -f
+
+# Copyright (C) 1998 Richard Braakman
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, you can find it on the World Wide
+# Web at https://www.gnu.org/copyleft/gpl.html, or write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+VENDORARCH := $(shell perl -MConfig -wE'say substr($$Config{vendorarch},1)')
+
+clean:
+ mkdir -p .svn CVS "{arch}" .arch-ids .bzr
+ touch data/.cvsignore data/svn-commit.tmp data/svk-commitsEr9P.tmp
+ touch data/.arch-inventory
+ touch 'data/.#Maelstrom Sound.1.1.1' 'data/Maelstrom Sounce.r121'
+ touch 'data/Maelstrom Sound.mine'
+ touch "data/'\\ "
+ touch filenames.c~
+
+build-arch:
+
+build-indep:
+
+build: build-arch build-indep
+
+
+binary-arch:
+
+binary-indep:
+ install -d debian/tmp/DEBIAN
+ cp -a data debian/tmp/files
+ chmod -R go=rX debian/tmp/files
+
+ install -d debian/tmp/usr/lib/filenames
+ install -m 555 -d debian/tmp/usr/lib/filenames/readonly
+ touch debian/tmp/usr/lib/filenames/readonly/test
+
+ install -d debian/tmp/usr/lib/menu
+ install -d debian/tmp/usr/share/menu
+ touch debian/tmp/usr/lib/menu/README
+ touch debian/tmp/usr/share/menu/README
+ touch debian/tmp/usr/lib/menu/menu
+ touch debian/tmp/usr/share/menu/menu
+ chmod 644 debian/tmp/usr/lib/menu/*
+
+ install -d debian/tmp/$(VENDORARCH)/foo
+ mkdir debian/tmp/$(VENDORARCH)/.svn
+ mkdir debian/tmp/$(VENDORARCH)/CVS
+ mkdir "debian/tmp/$(VENDORARCH)/{arch}"
+ mkdir debian/tmp/$(VENDORARCH)/.arch-ids
+ mkdir debian/tmp/$(VENDORARCH)/.bzr
+ mkdir debian/tmp/$(VENDORARCH)/.be
+ mkdir debian/tmp/$(VENDORARCH)/.ditrack
+ install -d debian/tmp/usr/share/perl5
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.gitignore
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hgignore
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hgtags
+ echo foo > debian/tmp/$(VENDORARCH)/foo/.hg_archival.txt
+
+ touch debian/tmp/$(VENDORARCH)/foo/.packlist
+ chmod 644 debian/tmp/$(VENDORARCH)/foo/.packlist
+ touch debian/tmp/$(VENDORARCH)/foo/bar.pm
+ TZ=UTC touch -t 197501010101 debian/tmp/$(VENDORARCH)/foo/ancient.pm
+ chmod 644 debian/tmp/$(VENDORARCH)/foo/bar.pm
+
+ install -d debian/tmp/usr/share/pixmaps
+ install -d debian/tmp/usr/share/pixmaps/foo
+ touch debian/tmp/usr/share/pixmaps/license.jpeg
+ touch debian/tmp/usr/share/pixmaps/licence.jpg
+ touch debian/tmp/usr/share/pixmaps/copying.xpm
+ touch debian/tmp/usr/share/pixmaps/foo/COPYING.svg
+ touch debian/tmp/usr/share/pixmaps/foo/copying.png
+ touch debian/tmp/usr/share/pixmaps/license.txt
+ touch debian/tmp/usr/share/pixmaps/license.foo
+ touch debian/tmp/usr/share/pixmaps/COPYING
+
+ install -d debian/tmp/usr/share/linda/overrides
+ echo 'foo' > debian/tmp/usr/share/linda/overrides/filenames
+
+ install -d debian/tmp/usr/share/doc/filenames
+ touch debian/tmp/usr/share/doc/filenames/README.macosx
+
+ echo foo > debian/tmp/usr/share/doc/filenames/bokmål
+ echo foo > debian/tmp/usr/share/doc/filenames/bokm\\Ã¥l
+ echo foo > debian/tmp/usr/share/doc/filenames/bokmål
+ echo foo > debian/tmp/usr/share/doc/filenames/bokm\\ål
+
+ echo foo > debian/tmp/usr/share/doc/filenames/Thumbs.db
+ echo foo > debian/tmp/usr/share/doc/filenames/.DS_Store
+ echo foo > debian/tmp/usr/share/doc/filenames/._NEWS.Debian
+
+ touch debian/tmp/usr/share/doc/filenames/news.debian
+ gzip -n debian/tmp/usr/share/doc/filenames/news.debian
+ touch debian/tmp/usr/share/doc/filenames/NEWS.Debian
+
+ echo foo > debian/tmp/usr/share/doc/filenames/link-one
+ ln debian/tmp/usr/share/doc/filenames/link-one \
+ debian/tmp/usr/share/doc/filenames/link-two
+
+ install -d debian/tmp/usr/share/doc/filenames/examples
+ touch debian/tmp/usr/share/doc/filenames/examples/__init__.py
+ touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example
+ touch debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2
+ gzip -n debian/tmp/usr/share/doc/filenames/examples/very_interesting_example2
+
+ install -d debian/tmp/usr/lib/ada/adalib/
+ touch debian/tmp/usr/lib/ada/adalib/test.ali debian/tmp/usr/lib/ada/adalib/test2.ali
+ chmod 0644 debian/tmp/usr/lib/ada/adalib/test.ali
+ chmod 0444 debian/tmp/usr/lib/ada/adalib/test2.ali
+
+ install -d debian/tmp/usr/bin/X11/
+ touch debian/tmp/usr/bin/X11/testxbin
+ install -d debian/tmp/usr/X11R6/bin
+ touch debian/tmp/usr/X11R6/bin/testxbin2
+ install -d debian/tmp/usr/include/X11
+ touch debian/tmp/usr/include/X11/foo.h
+
+ install -d debian/tmp/usr/bin/mh
+ touch debian/tmp/usr/bin/mh/read
+ chmod 755 debian/tmp/usr/bin/mh/read
+ install -d debian/tmp/usr/bin/bin
+ touch debian/tmp/usr/bin/bin/bad
+ chmod 755 debian/tmp/usr/bin/bin/bad
+
+ install -m 644 debian/changelog debian/tmp/usr/share/doc/filenames/Changes
+ gzip -n -9 debian/tmp/usr/share/doc/filenames/Changes
+ ln -s Changes.gz debian/tmp/usr/share/doc/filenames/changelog.gz
+
+ install -d debian/tmp/var/www
+ echo foo > debian/tmp/var/www/foo
+
+ install -d debian/tmp/srv/foo
+ touch debian/tmp/srv/foo/bar
+ install -d debian/tmp/opt/foo
+ touch debian/tmp/opt/foo/bar
+
+ install -d debian/tmp/etc/gconf/schemas
+ touch debian/tmp/etc/gconf/schemas/test.schema
+
+ install -d debian/tmp/usr/lib/sgml
+ touch debian/tmp/usr/lib/sgml/package
+
+ install -d debian/tmp/usr/share/gnome/apps/System
+ touch debian/tmp/usr/share/gnome/apps/System/foo.desktop
+
+ install -d debian/tmp/usr/share/filenames
+ touch debian/tmp/usr/share/filenames/jquery.js
+ touch debian/tmp/usr/share/filenames/jquery.lite.js
+ touch debian/tmp/usr/share/filenames/jquery.min.js
+ touch debian/tmp/usr/share/filenames/jquery.pack.js
+ touch debian/tmp/usr/share/filenames/mochikit.js
+ touch debian/tmp/usr/share/filenames/prototype-1.2.3.4.js
+ touch debian/tmp/usr/share/filenames/prototype.js
+ touch debian/tmp/usr/share/filenames/prototype.js.gz
+ touch debian/tmp/usr/share/filenames/scriptaculous.js
+ touch debian/tmp/usr/share/filenames/yahoo-dom-event.js
+ touch debian/tmp/usr/share/filenames/yahoo-min.js
+
+ ln -s '../filenames/doc/version6.txt.gz' debian/tmp/usr/share/doc/filenames/version.txt.gz
+ ln -s ../../share/symlink debian/tmp/usr/lib/filenames/symlink1ok
+ ln -s ../../../etc/symlink debian/tmp/usr/lib/filenames/symlink1wrong
+ ln -s ../../../../etc/symlink debian/tmp/usr/lib/filenames/symlink2wrong
+ ln -s /etc/symlink debian/tmp/usr/lib/filenames/symlink2ok
+ ln -s /usr/lib/filenames/symlink2 debian/tmp/usr/lib/filenames/symlink3wrong
+ ln -s test debian/tmp/usr/lib/filenames/symlink3ok
+ ln -s ../filenames/symlink2 debian/tmp/usr/lib/filenames/symlink4wrong
+ ln -s ../menu/../somethingelse debian/tmp/usr/lib/filenames/symlink5wrong
+ ln -s ../menu/somethingelse debian/tmp/usr/lib/filenames/symlink4ok
+ ln -s ./file4 debian/tmp/usr/lib/filenames/symlink6wrong
+ ln -s ../menu/./something debian/tmp/usr/lib/filenames/symlink7wrong
+ ln -s ../menu//something debian/tmp/usr/lib/filenames/symlink8wrong
+ ln -s ../menu/something/ debian/tmp/usr/lib/filenames/symlink9wrong
+ ln -s .. debian/tmp/usr/lib/filenames/symlink5ok+warn
+ ln -s . debian/tmp/usr/lib/filenames/symlink6ok+warn
+ ln -s / debian/tmp/usr/lib/filenames/symlink7ok+warn
+ ln -s ../../.. debian/tmp/usr/lib/filenames/symlink10wrong
+
+# devhelp tests. Files in /usr/share/gtk-doc/html or /usr/share/devhelp/books
+# are okay. Files elsewhere are okay iff their parent path is symlinked into
+# one of those paths.
+ install -d debian/tmp/usr/share/devhelp/books/filenames
+ echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/a.devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
+ gzip -n -9 debian/tmp/usr/share/devhelp/books/filenames/.devhelp2
+ install -d debian/tmp/usr/share/gtk-doc/html/filenames
+ echo 'Not really XML' > debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
+ gzip -n -9 debian/tmp/usr/share/gtk-doc/html/filenames/b.devhelp
+ install -d debian/tmp/usr/share/doc/filenames/good-devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/good-devhelp/.devhelp2
+ install -d debian/tmp/usr/share/doc/filenames/bad-devhelp
+ echo 'Not really XML' > debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
+ gzip -n -9 debian/tmp/usr/share/doc/filenames/bad-devhelp/c.devhelp
+ ln -s ../../doc/filenames/good-devhelp debian/tmp/usr/share/gtk-doc/html/good
+ ln -s ../doc/filenames/bad-devhelp debian/tmp/usr/share/gtk-doc/html/bad
+
+ install -d debian/tmp/usr/share/doc-base
+ install -m 644 debian/doc-base debian/tmp/usr/share/doc-base/filenames
+
+ dpkg-gencontrol -pfilenames -Pdebian/tmp
+ dpkg --build debian/tmp ..
+
+ install -d debian/filename-games debian/filename-games/DEBIAN
+ install -d debian/filename-games/usr debian/filename-games/usr/games debian/filename-games/usr/bin
+ echo '#! /bin/sh' > debian/filename-games/usr/bin/test-game
+ chmod 755 debian/filename-games/usr/bin/test-game
+ dpkg-gencontrol -pfilename-games -Pdebian/filename-games
+ dpkg --build debian/filename-games ..
+
+ install -d debian/more-filename-games debian/more-filename-games/DEBIAN
+ install -d debian/more-filename-games/usr debian/more-filename-games/usr/games debian/more-filename-games/usr/bin
+ echo '#! /bin/sh' > debian/more-filename-games/usr/bin/another-test-game
+ echo '#! /bin/sh' > debian/more-filename-games/usr/games/yet-another-test-game
+ chmod 755 debian/more-filename-games/usr/bin/another-test-game debian/more-filename-games/usr/games/yet-another-test-game
+ dpkg-gencontrol -pmore-filename-games -Pdebian/more-filename-games
+ dpkg --build debian/more-filename-games ..
+
+binary: binary-arch binary-indep
+
+.PHONY: build-indep build-arch build binary-arch binary-indep binary clean
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/fill-values b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/fill-values
new file mode 100644
index 0000000..062a1ea
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-non-native
+Testname: legacy-filenames
+Source: filenames
+Version: 1:12-0.1
+Description: Legacy test "filenames"
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/ .tif b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/ .tif
new file mode 100644
index 0000000..07fd914
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/ .tif
@@ -0,0 +1,2 @@
+This filename was inspired by the ".tif used by fnlib. The real package
+uses space.tif.
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/".tif b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/".tif
new file mode 100644
index 0000000..e005775
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/".tif
@@ -0,0 +1 @@
+This filename is really used, by fnlib.
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/Maelstrom Sound b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/Maelstrom Sound
new file mode 100644
index 0000000..4110410
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/Maelstrom Sound
@@ -0,0 +1 @@
+This filename occurs in the maelstrom package.
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/feedparser.py b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/feedparser.py
new file mode 100644
index 0000000..c1c2c2e
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/build-spec/orig/data/feedparser.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+"""Universal feed parser
+
+Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds
+
+Visit http://feedparser.org/ for the latest version
+Visit http://feedparser.org/docs/ for the latest documentation
+
+Required: Python 2.1 or later
+Recommended: Python 2.3 or later
+Recommended: CJKCodecs and iconv_codec <http://cjkpython.i18n.org/>
+"""
+
+__version__ = "4.1"# + "$Revision: 1.92 $"[11:15] + "-cvs"
+
+# (snip)
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/desc b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/desc
new file mode 100644
index 0000000..a78a963
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/desc
@@ -0,0 +1,2 @@
+Testname: legacy-filenames
+Check: languages/python/feedparser
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/hints b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/hints
new file mode 100644
index 0000000..0616e5f
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/hints
@@ -0,0 +1 @@
+filenames (binary): embedded-feedparser-library [files/feedparser.py]
diff --git a/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/post-test b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/post-test
new file mode 100644
index 0000000..571e35d
--- /dev/null
+++ b/t/recipes/checks/languages/python/feedparser/legacy-filenames/eval/post-test
@@ -0,0 +1,3 @@
+s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/
+s,usr/lib/([^\/]*/)?perl[0-9]*(/[0-9]*\.[0-9]*)?/,usr/lib/ma-dir/perl/version/,g
+/package-installs-packlist/ d
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/clean b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/clean
new file mode 100644
index 0000000..be4ae72
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/clean
@@ -0,0 +1,5 @@
+bar.1*
+Bar.pm
+bar.png
+perllocal.pod
+preferences
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/dirs b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/dirs
new file mode 100644
index 0000000..e8759c9
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/dirs
@@ -0,0 +1,15 @@
+etc/apt/preferences.d
+etc/apt
+etc/init
+bin/foo
+mnt/foo
+tmp/foo
+usr/bin/foo
+usr/foo
+usr/lib/debug
+usr/local/foo
+usr/lib/site-python/foo
+usr/share/doc/files-foo-in-bar/examples/examples
+var/foo
+var/lock/foo
+var/run/foo
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/install b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/install
new file mode 100644
index 0000000..ba46865
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/install
@@ -0,0 +1,61 @@
+bar bin/foo
+bar emul
+bar etc/apt/preferences.d
+bar etc/apt/sources.list.d
+bar etc/apt/trusted.gpg.d
+bar etc/gconf/schemas/
+bar etc/init
+bar etc/rc.boot
+bar etc/rc.d
+bar etc/udev/rules.d
+bar lib32
+bar lib64
+bar libx32
+bar mnt/foo
+bar run/foo
+bar srv/foo
+bar tmp/foo
+bar usr/bin/foo
+bar usr/foo
+bar usr/lib/debug/
+bar usr/lib32
+bar usr/lib64
+bar usr/libexec
+bar usr/libx32
+bar usr/lib/perl/
+bar usr/lib/python2.7/
+bar usr/lib/sgml
+bar usr/lib/site-python/foo
+bar usr/local/foo
+bar usr/share
+bar usr/share/doc
+bar usr/share/doc/files-foo-in-bar/.xvpics/
+bar usr/share/doc/files-foo-in-bar/.thumbnails/
+bar usr/share/doc/files-foo-in-bar/examples/examples
+bar usr/share/mime/foo/
+bar usr/share/mime/packages/
+bar usr/share/perl/
+bar usr/share/vim/vimcurrent/
+bar usr/share/vim/vim73/
+bar usr/X11R6/bin
+bar usr/X11R6/lib/X11/fonts/
+bar var/foo
+bar var/lock/foo
+bar var/run/foo
+bar var/www/foo
+bar home/johndoe
+bar root
+bar etc/opt
+bar var/cache/pbuilder/build
+bar var/lib/sbuild
+bar var/lib/buildd
+bar build/dir/foo
+bar tmp/buildd/dir/foo
+bar etc/dhcp3
+
+Bar.pm usr/lib/perl5/Foo
+bar.png usr/lib/files-foo-in-bar
+
+perllocal.pod usr/lib/perl-foo
+.packlist usr/lib/perl5
+preferences etc/apt
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/manpages b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/manpages
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/manpages
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/rules b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/rules
new file mode 100755
index 0000000..69a61df
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/debian/rules
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+%:
+ dh $@
+
+override_dh_auto_build:
+ pod2man --section 1 bar.pod > bar.1
+ gzip -n --best bar.1
+ cp bar Bar.pm
+ cp bar bar.png
+ cp bar perllocal.pod
+ touch .packlist
+ touch preferences
+
+override_dh_auto_install:
+ dh_install bar.1.gz usr/X11R6/man/man1/
+
+# skip
+override_dh_usrlocal override_dh_gconf:
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/fill-values b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/fill-values
new file mode 100644
index 0000000..17ea927
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-foo-in-bar
+Description: Test tags about files or dirs in given paths
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar
new file mode 100644
index 0000000..980a0d5
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar
@@ -0,0 +1 @@
+Hello World!
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar.pod b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar.pod
new file mode 100644
index 0000000..4144a36
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/build-spec/orig/bar.pod
@@ -0,0 +1,18 @@
+
+=head1 NAME
+
+bar - does stuff
+
+=head1 SYNOPSIS
+
+bar
+
+=head1 DESCRIPTION
+
+Does nothing.
+
+=head1 AUTHOR
+
+Niels Thykier <niels@thykier.net>
+
+=cut
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/eval/desc b/t/recipes/checks/languages/python/files-foo-in-bar/eval/desc
new file mode 100644
index 0000000..d76975b
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-foo-in-bar
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/eval/hints b/t/recipes/checks/languages/python/files-foo-in-bar/eval/hints
new file mode 100644
index 0000000..e8f7115
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/eval/hints
@@ -0,0 +1,3 @@
+files-foo-in-bar (binary): third-party-package-in-python-dir [usr/lib/python2.7/bar]
+files-foo-in-bar (binary): file-in-usr-lib-site-python [usr/lib/site-python/foo/bar]
+files-foo-in-bar (binary): file-in-usr-lib-site-python [usr/lib/site-python/foo/]
diff --git a/t/recipes/checks/languages/python/files-foo-in-bar/eval/post-test b/t/recipes/checks/languages/python/files-foo-in-bar/eval/post-test
new file mode 100644
index 0000000..5af7ea2
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-foo-in-bar/eval/post-test
@@ -0,0 +1,2 @@
+# Ignore all duplicate-files tags
+/[^ ]* \([^)]*\): duplicate-files .*/ d
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/debian/compat.in b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/debian/control.in b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/control.in
new file mode 100644
index 0000000..cbad865
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/control.in
@@ -0,0 +1,53 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], dpkg-dev (>= 1.16.1~)
+Rules-Requires-Root: no
+
+Package: python-kinterbasdb
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: python-kinterbasdb-dbg
+Architecture: any
+Section: debug
+Depends: ${misc:Depends}, python-kinterbasdb (= ${binary:Version}),
+ ${shlibs:Depends}
+Description: [% $description %] - debug
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ This is a fake debug package.
+
+Package: python3-modulename
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: [% $description %] (Python 3.x)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3.x version.
+
+Package: python3-modulename-dbg
+Architecture: any
+Section: debug
+Depends: ${misc:Depends}, python3-modulename (= ${binary:Version}),
+ ${shlibs:Depends}
+Description: [% $description %] - debug (Python 3.x) version
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ This is a fake Python 3.x debug package.
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/debian/python-kinterbasdb.install b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/python-kinterbasdb.install
new file mode 100644
index 0000000..ad14f96
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/python-kinterbasdb.install
@@ -0,0 +1,7 @@
+code.pyc usr/share/python-kinterbasdb/
+code.pyo usr/share/python-kinterbasdb/
+code.pyc usr/share/python-kinterbasdb/__pycache__/
+code.pyo usr/share/python-kinterbasdb/__pycache__/
+objects.inv usr/share/doc/python-kinterbasdb/docs/
+python.egg usr/share/python-kinterbasdb/
+python-module.so usr/lib/pyshared/python2.7
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/debian/rules b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/rules
new file mode 100644
index 0000000..1648ccd
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/debian/rules
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+DPKG_EXPORT_BUILDFLAGS:=1
+include /usr/share/dpkg/buildflags.mk
+
+DOCS:=debian/python-kinterbasdb/usr/share/doc/python-kinterbasdb/docs
+%:
+ dh $@
+
+override_dh_strip:
+ dh_strip -ppython-kinterbasdb --dbg-package=python-kinterbasdb-dbg
+ dh_strip --remaining-packages
+
+override_dh_compress:
+ dh_compress
+ # Manually compress it, since debhelper will fix #608907
+ # in the "near" future.
+ [ -f "$(DOCS)/objects.inv.gz" ] || gzip -n --best "$(DOCS)/objects.inv"
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/fill-values b/t/recipes/checks/languages/python/files-python-general/build-spec/fill-values
new file mode 100644
index 0000000..4177acc
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/fill-values
@@ -0,0 +1,5 @@
+Skeleton: upload-native
+Testname: files-python-general
+Dh-Compat-Level: 7
+Description: Test general Python related tags
+Default-Build-Depends: debhelper (>= [% $dh_compat_level %]~)
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/orig/Makefile b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..e246faf
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/Makefile
@@ -0,0 +1,7 @@
+all: lib.c
+ echo 'Hallo World' > code.pyc
+ echo 'Hallo World' > code.pyo
+ gcc $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -fPIC -shared -o python-module.so lib.c
+
+distclean:
+ rm -f code.pyc code.pyo python-module.so
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/orig/lib.c b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/lib.c
new file mode 100644
index 0000000..30d6ed5
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/lib.c
@@ -0,0 +1,4 @@
+int do_something(int (*a)(char *)){
+ char test[10];
+ return a(test);
+}
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/orig/objects.inv b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/objects.inv
new file mode 100644
index 0000000..2dcebcb
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/objects.inv
@@ -0,0 +1,199 @@
+# Sphinx inventory version 1
+# Project: KInterbasDB
+# Version: 3.3
+kinterbasdb.typeconv_23plus_lowmem mod beyond-python-db-api.html
+kinterbasdb mod index.html
+kinterbasdb.typeconv_naked mod beyond-python-db-api.html
+kinterbasdb.typeconv_fixed_fixedpoint mod beyond-python-db-api.html
+kinterbasdb.typeconv_23plus mod beyond-python-db-api.html
+kinterbasdb.typeconv_fixed_decimal mod beyond-python-db-api.html
+kinterbasdb.typeconv_fixed_stdlib mod beyond-python-db-api.html
+kinterbasdb.typeconv_datetime_stdlib mod beyond-python-db-api.html
+kinterbasdb.typeconv_text_unicode mod beyond-python-db-api.html
+kinterbasdb.typeconv_datetime_mx mod beyond-python-db-api.html
+kinterbasdb.typeconv_backcompat mod beyond-python-db-api.html
+kinterbasdb.services mod beyond-python-db-api.html
+kinterbasdb.typeconv_24plus mod beyond-python-db-api.html
+kinterbasdb.services.Connection.getArchitecture method beyond-python-db-api.html
+kinterbasdb.connect function python-db-api-compliance.html
+kinterbasdb.Cursor.transaction attribute beyond-python-db-api.html
+Cursor.executemany method Python-DB-API-2.0.html
+kinterbasdb.TableReservation.render method beyond-python-db-api.html
+Error exception Python-DB-API-2.0.html
+kinterbasdb.PreparedStatement.description attribute beyond-python-db-api.html
+kinterbasdb.DATETIME data python-db-api-compliance.html
+kinterbasdb.Connection.prepare method beyond-python-db-api.html
+kinterbasdb.PreparedStatement.sql attribute beyond-python-db-api.html
+kinterbasdb.Transaction.cursors attribute beyond-python-db-api.html
+kinterbasdb.Connection.trans method beyond-python-db-api.html
+kinterbasdb.services.Conenction.setWriteMode method beyond-python-db-api.html
+kinterbasdb.Connection.event_conduit method beyond-python-db-api.html
+kinterbasdb.BlobReader.chunks method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.prepare method beyond-python-db-api.html
+kinterbasdb.TableReservation class beyond-python-db-api.html
+Cursor.close method Python-DB-API-2.0.html
+kinterbasdb.Transaction.n_physical attribute beyond-python-db-api.html
+TimestampFromTicks function Python-DB-API-2.0.html
+kinterbasdb.CT_NONTRANSPARENT data beyond-python-db-api.html
+kinterbasdb.TPB.isolation_level attribute beyond-python-db-api.html
+kinterbasdb.Transaction.close method beyond-python-db-api.html
+kinterbasdb.PreparedStatement.n_output_params attribute beyond-python-db-api.html
+Cursor.nextset method Python-DB-API-2.0.html
+DATETIME data Python-DB-API-2.0.html
+kinterbasdb.Cursor.rowcount attribute python-db-api-compliance.html
+kinterbasdb.Connection.database_info method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.remove method beyond-python-db-api.html
+kinterbasdb.TPB.render method beyond-python-db-api.html
+kinterbasdb.services.Conenction.modifyUser method beyond-python-db-api.html
+kinterbasdb.services.Conenction.rollbackLimboTransaction method beyond-python-db-api.html
+kinterbasdb.Transaction.__init__ method beyond-python-db-api.html
+kinterbasdb.services.Connection.getHomeDir method beyond-python-db-api.html
+kinterbasdb.Cursor.setinputsizes method python-db-api-compliance.html
+paramstyle data Python-DB-API-2.0.html
+kinterbasdb.TPB.lock_timeout attribute beyond-python-db-api.html
+Connection.rollback method Python-DB-API-2.0.html
+kinterbasdb.EventConduit.close method beyond-python-db-api.html
+kinterbasdb.Cursor.arraysize attribute python-db-api-compliance.html
+DatabaseError exception Python-DB-API-2.0.html
+kinterbasdb.Cursor.description attribute python-db-api-compliance.html
+kinterbasdb.EventConduit.flush method beyond-python-db-api.html
+kinterbasdb.services.Connection.close method beyond-python-db-api.html
+kinterbasdb.services.Conenction.activateShadowFile method beyond-python-db-api.html
+kinterbasdb.Cursor.setoutputsize method python-db-api-compliance.html
+kinterbasdb.ConnectionGroup.commit method beyond-python-db-api.html
+kinterbasdb.services.Conenction.setSQLDialect method beyond-python-db-api.html
+connect function Python-DB-API-2.0.html
+Cursor.setinputsizes method Python-DB-API-2.0.html
+kinterbasdb.Connection.dialect attribute python-db-api-compliance.html
+kinterbasdb.Connection.execute_immediate method python-db-api-compliance.html
+kinterbasdb.create_database function beyond-python-db-api.html
+kinterbasdb.Connection.get_type_trans_in method beyond-python-db-api.html
+kinterbasdb.TPB class beyond-python-db-api.html
+kinterbasdb.services.connect function beyond-python-db-api.html
+kinterbasdb.Transaction.commit method beyond-python-db-api.html
+kinterbasdb.Connection.charset attribute python-db-api-compliance.html
+TimeFromTicks function Python-DB-API-2.0.html
+kinterbasdb.Connection.savepoint method beyond-python-db-api.html
+kinterbasdb.Cursor.fetchallmap method python-db-api-compliance.html
+kinterbasdb.PreparedStatement.statement_type attribute beyond-python-db-api.html
+kinterbasdb.Cursor class beyond-python-db-api.html
+kinterbasdb.services.Conenction.setShouldReservePageSpace method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup class beyond-python-db-api.html
+Cursor.callproc method Python-DB-API-2.0.html
+kinterbasdb.services.Connection class beyond-python-db-api.html
+kinterbasdb.services.Connection.getServiceManagerVersion method beyond-python-db-api.html
+IntegrityError exception Python-DB-API-2.0.html
+kinterbasdb.Transaction class beyond-python-db-api.html
+Cursor class Python-DB-API-2.0.html
+kinterbasdb.Connection.drop_database method beyond-python-db-api.html
+Connection.commit method Python-DB-API-2.0.html
+kinterbasdb.services.Conenction.userExists method beyond-python-db-api.html
+kinterbasdb.Cursor.fetchone method python-db-api-compliance.html
+kinterbasdb.Connection.transactions attribute beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.disband method beyond-python-db-api.html
+InterfaceError exception Python-DB-API-2.0.html
+kinterbasdb.Transaction.connection attribute beyond-python-db-api.html
+kinterbasdb.Connection.rollback method python-db-api-compliance.html
+kinterbasdb.services.Connection.getStatistics method beyond-python-db-api.html
+kinterbasdb.TPB.access_mode attribute beyond-python-db-api.html
+kinterbasdb.services.Connection.getCapabilityMask method beyond-python-db-api.html
+kinterbasdb.Connection.precision_mode attribute python-db-api-compliance.html
+kinterbasdb.Connection.transaction_info method beyond-python-db-api.html
+kinterbasdb.EventConduit class beyond-python-db-api.html
+BINARY data Python-DB-API-2.0.html
+kinterbasdb.Connection.db_info method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.add method beyond-python-db-api.html
+Binary function Python-DB-API-2.0.html
+kinterbasdb.init function beyond-python-db-api.html
+Cursor.setoutputsize method Python-DB-API-2.0.html
+kinterbasdb.CT_COMMIT data beyond-python-db-api.html
+kinterbasdb.services.Connection.getConnectionCount method beyond-python-db-api.html
+kinterbasdb.services.Connection.getLockFileDir method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.contains method beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.rollback method beyond-python-db-api.html
+kinterbasdb.Connection.set_type_trans_in method beyond-python-db-api.html
+kinterbasdb.Transaction.trans_info method beyond-python-db-api.html
+Cursor.rowcount attribute Python-DB-API-2.0.html
+threadsafety data Python-DB-API-2.0.html
+kinterbasdb.services.Connection.restore method beyond-python-db-api.html
+Warning exception Python-DB-API-2.0.html
+kinterbasdb.services.Connection.getSecurityDatabasePath method beyond-python-db-api.html
+Timestamp function Python-DB-API-2.0.html
+kinterbasdb.Cursor.fetchmanymap method python-db-api-compliance.html
+kinterbasdb.Transaction.closed attribute beyond-python-db-api.html
+kinterbasdb.Cursor.fetchonemap method python-db-api-compliance.html
+Date function Python-DB-API-2.0.html
+kinterbasdb.ConnectionGroup.count method beyond-python-db-api.html
+kinterbasdb.services.Connection.setSweepInterval method beyond-python-db-api.html
+ProgrammingError exception Python-DB-API-2.0.html
+kinterbasdb.Transaction.begin method beyond-python-db-api.html
+kinterbasdb.CT_ROLLBACK data beyond-python-db-api.html
+kinterbasdb.Cursor.set_type_trans_in method beyond-python-db-api.html
+kinterbasdb.services.Conenction.shutdown method beyond-python-db-api.html
+kinterbasdb.services.Connection.getAttachedDatabaseNames method beyond-python-db-api.html
+kinterbasdb.Cursor.fetchall method python-db-api-compliance.html
+kinterbasdb.services.Connection.backup method beyond-python-db-api.html
+Connection class Python-DB-API-2.0.html
+kinterbasdb.ConnectionGroup.begin method beyond-python-db-api.html
+Time function Python-DB-API-2.0.html
+kinterbasdb.services.Connection.getMessageFileDir method beyond-python-db-api.html
+kinterbasdb.Transaction.resolution attribute beyond-python-db-api.html
+Connection.cursor method Python-DB-API-2.0.html
+kinterbasdb.ConnectionGroup.__init__ method beyond-python-db-api.html
+kinterbasdb.Cursor.itermap method python-db-api-compliance.html
+kinterbasdb.services.User class beyond-python-db-api.html
+DataError exception Python-DB-API-2.0.html
+kinterbasdb.CT_VETO data beyond-python-db-api.html
+kinterbasdb.services.Conenction.bringOnline method beyond-python-db-api.html
+apilevel data Python-DB-API-2.0.html
+kinterbasdb.Cursor.get_type_trans_in method beyond-python-db-api.html
+InternalError exception Python-DB-API-2.0.html
+NUMBER data Python-DB-API-2.0.html
+kinterbasdb.services.Conenction.repair method beyond-python-db-api.html
+Cursor.fetchall method Python-DB-API-2.0.html
+kinterbasdb.Transaction.prepare method beyond-python-db-api.html
+kinterbasdb.Transaction.rollback method beyond-python-db-api.html
+kinterbasdb.services.Conenction.setAccessMode method beyond-python-db-api.html
+Cursor.fetchmany method Python-DB-API-2.0.html
+kinterbasdb.services.Connection.getServerVersion method beyond-python-db-api.html
+kinterbasdb.Transaction.cursor method beyond-python-db-api.html
+kinterbasdb.services.Conenction.commitLimboTransaction method beyond-python-db-api.html
+kinterbasdb.Cursor.fetchmany method python-db-api-compliance.html
+Cursor.execute method Python-DB-API-2.0.html
+kinterbasdb.services.Conenction.removeUser method beyond-python-db-api.html
+kinterbasdb.Cursor.name attribute beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.clear method beyond-python-db-api.html
+kinterbasdb.Connection class beyond-python-db-api.html
+kinterbasdb.Connection.main_transaction attribute beyond-python-db-api.html
+kinterbasdb.Cursor.prep method beyond-python-db-api.html
+kinterbasdb.Cursor.nextset method python-db-api-compliance.html
+kinterbasdb.BlobReader class beyond-python-db-api.html
+kinterbasdb.TPB.lock_resolution attribute beyond-python-db-api.html
+kinterbasdb.services.Conenction.getLimboTransactionIDs method beyond-python-db-api.html
+STRING data Python-DB-API-2.0.html
+Cursor.description attribute Python-DB-API-2.0.html
+NotSupportedError exception Python-DB-API-2.0.html
+kinterbasdb.PreparedStatement class beyond-python-db-api.html
+kinterbasdb.ConnectionGroup.members method beyond-python-db-api.html
+kinterbasdb.services.Conenction.addUser method beyond-python-db-api.html
+kinterbasdb.PreparedStatement.n_input_params attribute beyond-python-db-api.html
+kinterbasdb.services.Conenction.setDefaultPageBuffers method beyond-python-db-api.html
+kinterbasdb.Connection.server_version attribute python-db-api-compliance.html
+Connection.close method Python-DB-API-2.0.html
+kinterbasdb.Connection.trans_info method beyond-python-db-api.html
+kinterbasdb.Cursor.iter method python-db-api-compliance.html
+DateFromTicks function Python-DB-API-2.0.html
+kinterbasdb.EventConduit.wait method beyond-python-db-api.html
+kinterbasdb.EventConduit.__init__ method beyond-python-db-api.html
+Cursor.fetchone method Python-DB-API-2.0.html
+kinterbasdb.Transaction.savepoint method beyond-python-db-api.html
+kinterbasdb.services.Conenction.getUsers method beyond-python-db-api.html
+kinterbasdb.TPB.table_reservation attribute beyond-python-db-api.html
+kinterbasdb.Transaction.transaction_info method beyond-python-db-api.html
+kinterbasdb.PreparedStatement.plan attribute beyond-python-db-api.html
+kinterbasdb.services.Connection.getLog method beyond-python-db-api.html
+ROWID data Python-DB-API-2.0.html
+kinterbasdb.Connection.begin method beyond-python-db-api.html
+kinterbasdb.services.Connection.sweep method beyond-python-db-api.html
+kinterbasdb.Connection.commit method python-db-api-compliance.html
+OperationalError exception Python-DB-API-2.0.html
diff --git a/t/recipes/checks/languages/python/files-python-general/build-spec/orig/python.egg b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/python.egg
new file mode 100644
index 0000000..336f590
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/build-spec/orig/python.egg
@@ -0,0 +1 @@
+Hallo World
diff --git a/t/recipes/checks/languages/python/files-python-general/eval/desc b/t/recipes/checks/languages/python/files-python-general/eval/desc
new file mode 100644
index 0000000..ec10a93
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/eval/desc
@@ -0,0 +1,3 @@
+Testname: files-python-general
+See-Also: Debian Bug#608810, Debian Bug#756005
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-python-general/eval/hints b/t/recipes/checks/languages/python/files-python-general/eval/hints
new file mode 100644
index 0000000..a9db459
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-general/eval/hints
@@ -0,0 +1,7 @@
+files-python-general (source): python-foo-but-no-python3-foo python-kinterbasdb-dbg
+files-python-general (source): python-foo-but-no-python3-foo python-kinterbasdb
+python-kinterbasdb-dbg (binary): python-debug-in-wrong-location better: usr/lib/debug/usr/lib/pymodules/python2.7/python-module.so [usr/lib/debug/usr/lib/pyshared/python2.7/python-module.so]
+python-kinterbasdb (binary): package-installs-python-pycache-dir [usr/share/python-kinterbasdb/__pycache__/]
+python-kinterbasdb (binary): package-installs-python-egg [usr/share/python-kinterbasdb/python.egg]
+python-kinterbasdb (binary): package-installs-python-bytecode [usr/share/python-kinterbasdb/code.pyo]
+python-kinterbasdb (binary): package-installs-python-bytecode [usr/share/python-kinterbasdb/code.pyc]
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/control.in b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/control.in
new file mode 100644
index 0000000..29bb9c6
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-foo
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends},
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/install b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/install
new file mode 100644
index 0000000..ddf8315
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/install
@@ -0,0 +1,9 @@
+site.py /usr/lib/python3/dist-packages
+tests.py /usr/lib/python3/dist-packages
+__init__.py /usr/lib/python3/dist-packages/doc/
+__init__.py /usr/lib/python3/dist-packages/docs/
+__init__.py /usr/lib/python3/dist-packages/test/
+__init__.py /usr/lib/python3/dist-packages/tests/
+__init__.py /usr/lib/python3/dist-packages/example/
+__init__.py /usr/lib/python3/dist-packages/examples/
+__init__.py /usr/lib/python3/dist-packages/false_positive/
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/rules b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/rules
new file mode 100644
index 0000000..abde6ef
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@
+
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/fill-values b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/fill-values
new file mode 100644
index 0000000..57ceb09
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-python-module-has-overly-generic-name
+Description: Test tags for Python modules with overly generic names
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/__init__.py b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/__init__.py
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/site.py b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/site.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/site.py
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/tests.py b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/tests.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/build-spec/orig/tests.py
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/desc b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/desc
new file mode 100644
index 0000000..e2c469a
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/desc
@@ -0,0 +1,4 @@
+Testname: files-python-module-has-overly-generic-name
+Test-Against:
+ unknown-file-in-python-module-directory
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/hints b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/hints
new file mode 100644
index 0000000..b3b6ee6
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-module-has-overly-generic-name/eval/hints
@@ -0,0 +1,9 @@
+python3-foo (binary): python-package-missing-depends-on-python
+python3-foo (binary): python-module-has-overly-generic-name (tests) [usr/lib/python3/dist-packages/tests/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (tests) [usr/lib/python3/dist-packages/tests.py]
+python3-foo (binary): python-module-has-overly-generic-name (test) [usr/lib/python3/dist-packages/test/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (site) [usr/lib/python3/dist-packages/site.py]
+python3-foo (binary): python-module-has-overly-generic-name (examples) [usr/lib/python3/dist-packages/examples/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (example) [usr/lib/python3/dist-packages/example/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (docs) [usr/lib/python3/dist-packages/docs/__init__.py]
+python3-foo (binary): python-module-has-overly-generic-name (doc) [usr/lib/python3/dist-packages/doc/__init__.py]
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/control.in b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/control.in
new file mode 100644
index 0000000..a4f2d34
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-foo
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends},
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/install b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/install
new file mode 100644
index 0000000..165f0c2
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/install
@@ -0,0 +1,13 @@
+# GOOD
+python-foo /usr/lib/python2.5/site-packages/
+python-foo /usr/lib/python2.6/dist-packages/
+python-foo /usr/lib/python2.7/dist-packages/
+python-foo /usr/lib/python3/dist-packages/
+
+# BAD
+python-foo usr/lib/python2.5/dist-packages/
+python-foo usr/lib/python2.6/site-packages/
+python-foo usr/lib/python2.7/site-packages/
+python-foo usr/lib/python3.2/dist-packages/
+python-foo usr/lib/python3.2/site-packages/
+
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/rules b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/rules
new file mode 100644
index 0000000..abde6ef
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/debian/rules
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@
+
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/fill-values b/t/recipes/checks/languages/python/files-python-modules/build-spec/fill-values
new file mode 100644
index 0000000..a4afe04
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-python-modules
+Description: Test tags for misplaced Python modules
diff --git a/t/recipes/checks/languages/python/files-python-modules/build-spec/orig/python-foo b/t/recipes/checks/languages/python/files-python-modules/build-spec/orig/python-foo
new file mode 100644
index 0000000..336f590
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/build-spec/orig/python-foo
@@ -0,0 +1 @@
+Hallo World
diff --git a/t/recipes/checks/languages/python/files-python-modules/eval/desc b/t/recipes/checks/languages/python/files-python-modules/eval/desc
new file mode 100644
index 0000000..25b7e1b
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-python-modules
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-python-modules/eval/hints b/t/recipes/checks/languages/python/files-python-modules/eval/hints
new file mode 100644
index 0000000..cfc6801
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-python-modules/eval/hints
@@ -0,0 +1,16 @@
+files-python-modules (source): python-foo-but-no-python3-foo python-foo
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python3/dist-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python3.2/site-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python3.2/dist-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.7/site-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.7/dist-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.6/site-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.6/dist-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.5/site-packages/python-foo]
+python-foo (binary): unknown-file-in-python-module-directory [usr/lib/python2.5/dist-packages/python-foo]
+python-foo (binary): python-package-missing-depends-on-python
+python-foo (binary): python-module-in-wrong-location usr/lib/python3.2/site-packages/python-foo -> usr/lib/python3/dist-packages/python-foo
+python-foo (binary): python-module-in-wrong-location usr/lib/python3.2/dist-packages/python-foo -> usr/lib/python3/dist-packages/python-foo
+python-foo (binary): python-module-in-wrong-location usr/lib/python2.7/site-packages/python-foo -> usr/lib/python2.7/dist-packages/python-foo
+python-foo (binary): python-module-in-wrong-location usr/lib/python2.6/site-packages/python-foo -> usr/lib/python2.6/dist-packages/python-foo
+python-foo (binary): python-module-in-wrong-location usr/lib/python2.5/dist-packages/python-foo -> usr/lib/python2.5/site-packages/python-foo
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/control.in b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/control.in
new file mode 100644
index 0000000..dce800f
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-foo
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, python3:any
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/install b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/install
new file mode 100644
index 0000000..a073f04
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/debian/install
@@ -0,0 +1,4 @@
+bad /usr/lib/python3/dist-packages
+good /usr/lib/python3/dist-packages/subdir
+good.py /usr/lib/python3/dist-packages
+good.py /usr/lib/python3/dist-packages/subdir
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/fill-values b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/fill-values
new file mode 100644
index 0000000..af35625
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: files-unknown-file-in-python-module-directory
+Description: Test for invalid files in Python module directory
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/bad b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/bad
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/bad
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good.py b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/build-spec/orig/good.py
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/desc b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/desc
new file mode 100644
index 0000000..3ef5d5c
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/desc
@@ -0,0 +1,2 @@
+Testname: files-unknown-file-in-python-module-directory
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/hints b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/hints
new file mode 100644
index 0000000..f6b2598
--- /dev/null
+++ b/t/recipes/checks/languages/python/files-unknown-file-in-python-module-directory/eval/hints
@@ -0,0 +1 @@
+python3-foo (binary): unknown-file-in-python-module-directory [usr/lib/python3/dist-packages/bad]
diff --git a/t/recipes/checks/languages/python/homepage/pypi/build-spec/fill-values b/t/recipes/checks/languages/python/homepage/pypi/build-spec/fill-values
new file mode 100644
index 0000000..215d964
--- /dev/null
+++ b/t/recipes/checks/languages/python/homepage/pypi/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: source-native
+Testname: pypi
+Description: Homepage points to PyPI
+Homepage: https://pypi.org/project/some-name/
diff --git a/t/recipes/checks/languages/python/homepage/pypi/eval/desc b/t/recipes/checks/languages/python/homepage/pypi/eval/desc
new file mode 100644
index 0000000..87224e0
--- /dev/null
+++ b/t/recipes/checks/languages/python/homepage/pypi/eval/desc
@@ -0,0 +1,4 @@
+Testname: pypi
+Check: languages/python/homepage
+See-Also:
+ Bug#981932
diff --git a/t/recipes/checks/languages/python/homepage/pypi/eval/hints b/t/recipes/checks/languages/python/homepage/pypi/eval/hints
new file mode 100644
index 0000000..9dde452
--- /dev/null
+++ b/t/recipes/checks/languages/python/homepage/pypi/eval/hints
@@ -0,0 +1 @@
+pypi (source): pypi-homepage https://pypi.org/project/some-name/
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/missing-sources/fake.py b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/missing-sources/fake.py
new file mode 100644
index 0000000..6e883de
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/missing-sources/fake.py
@@ -0,0 +1 @@
+# a fake module source \ No newline at end of file
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pycompat b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pycompat
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pycompat
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pyversions b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pyversions
new file mode 100644
index 0000000..6f290b0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/debian/pyversions
@@ -0,0 +1 @@
+>= 2.7
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/fill-values b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/fill-values
new file mode 100644
index 0000000..37c65d1
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: cruft-python
+Description: Misc errors related to Python
+Extra-Build-Depends: python
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/pre-build b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/pre-build
new file mode 100755
index 0000000..a5ee0a0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/build-spec/pre-build
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# Create all the various junk that shouldn't exist in the diff so that we can
+# trigger all the tags.
+
+set -e
+dir="$1"
+fake="$dir/debian/missing-sources/fake.py"
+
+cp "$fake" "$dir"
+echo 'import fake' > "${dir}/main.py"
+unset PYTHONDONTWRITEBYTECODE
+PYTHONPATH="${dir}" python "${dir}/main.py" > /dev/null
+PYTHONPATH="${dir}" python -O "${dir}/main.py" > /dev/null
+# now remove source
+rm -f "${dir}"/main.py
+rm -f "${dir}"/fake.py
+
+cp "$fake" "$dir/fake2.py"
+echo 'import fake2' > "${dir}/main.py"
+unset PYTHONDONTWRITEBYTECODE
+PYTHONPATH="${dir}" python "${dir}/main.py" > /dev/null
+PYTHONPATH="${dir}" python -O "${dir}/main.py" > /dev/null
+# now remove source
+rm -f "${dir}"/main.py
+rm -f "${dir}"/fake2.py
+
+
+
+
+
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/eval/desc b/t/recipes/checks/languages/python/obsolete/cruft-python/eval/desc
new file mode 100644
index 0000000..19f9ef0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/eval/desc
@@ -0,0 +1,2 @@
+Testname: cruft-python
+Check: languages/python/obsolete
diff --git a/t/recipes/checks/languages/python/obsolete/cruft-python/eval/hints b/t/recipes/checks/languages/python/obsolete/cruft-python/eval/hints
new file mode 100644
index 0000000..fc427e1
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/cruft-python/eval/hints
@@ -0,0 +1,2 @@
+cruft-python (source): debian-pyversions-is-obsolete
+cruft-python (source): debian-pycompat-is-obsolete
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/changelog.in b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/changelog.in
new file mode 100644
index 0000000..f5e308e
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/changelog.in
@@ -0,0 +1,6 @@
+debconf ([% $version %]) [% $distribution %]; urgency=low
+
+ * Initial Release
+ * Changelog line with exactly 80 characters which tests the line-too-long tag.
+
+ -- Lintian Maintainers <debian-lint-maint@debian.org> Wed, 3 May 2006 18:07:19 -0500
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/compat.in b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/compat.in
new file mode 100644
index 0000000..640a566
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/compat.in
@@ -0,0 +1 @@
+[% $dh_compat_level %]
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/control b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/control
new file mode 100644
index 0000000..bf9f4e9
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/control
@@ -0,0 +1,52 @@
+Source: debconf
+Section: utils
+Priority: optional
+Build-Depends: debhelper (>= 4), dpatch
+Maintainer: Lintian Maintainers <debian-lint-maint@debian.org>
+Standards-Version: 3.7.2
+
+Package: debconf-test
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Test package for the debconf checks of lintian (dummy)
+
+Package: debconf-test-noscripts
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Test package for the debconf checks of lintian (noscripts)
+ Package missing postinst/postrm/config.
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: debconf-test-preinst
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Test package for the debconf checks of lintian (preinst)
+ Package uses debconf only in preinst.
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: debconf-test-postinst
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Test package for the debconf checks of lintian (postinst)
+ Package uses debconf only in postinst.
+ .
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: debconf-udeb
+Section: debian-installer
+XC-Package-Type: udeb
+XB-Installer-Menu-Item: 100
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: Test udeb package for the debconf checks of lintian (dummy)
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/copyright b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/copyright
new file mode 100644
index 0000000..84843ee
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/copyright
@@ -0,0 +1,10 @@
+Copyright (C) 2004 Frank Lichtenheld <djpig@debian.org>
+
+Test for really old FSF address:
+
+Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
+MA 02139, USA.
+
+Test for a dh-make boilerplate:
+# Please also look if there are files or directories which have a
+# different copyright/license attached and list them here.
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-noscripts.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-noscripts.templates
new file mode 100644
index 0000000..93f8071
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-noscripts.templates
@@ -0,0 +1,3 @@
+Template: debconf/test
+Type: text
+_description: Foo bar (1)
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postinst b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postinst
new file mode 100644
index 0000000..56ab871
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postinst
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -e
+
+. /usr/share/debconf/confmodule
+
+db_input medium debconf/test
+
+#DEBHELPER#
+
+true
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postrm b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postrm
new file mode 100644
index 0000000..cbf5e3b
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.postrm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ db_purge
+fi
+#DEBHELPER#
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.templates
new file mode 100644
index 0000000..2a2a8ab
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-postinst.templates
@@ -0,0 +1,3 @@
+Template: debconf/test
+Type: text
+_description: Enter something:
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.postrm b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.postrm
new file mode 100644
index 0000000..cbf5e3b
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.postrm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ db_purge
+fi
+#DEBHELPER#
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.preinst b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.preinst
new file mode 100644
index 0000000..bf6f074
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.preinst
@@ -0,0 +1,13 @@
+#!/bin/sh
+set -e
+
+# Obsolete name for the confmodule
+. /usr/share/debconf/confmodule.sh
+
+. /usr/share/debconf/confmodule
+
+db_input medium debconf/test
+
+#DEBHELPER#
+
+true
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.templates
new file mode 100644
index 0000000..2a2a8ab
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test-preinst.templates
@@ -0,0 +1,3 @@
+Template: debconf/test
+Type: text
+_description: Enter something:
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.config b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.config
new file mode 100644
index 0000000..9e32d06
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.config
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+db_settitle "Funky lintian test"
+
+# Bad priorities.
+db_text LOW debconf/test
+db_input normal debconf/test
+
+# Valid priorities.
+db_text \
+high debconf/test
+foo=medium
+db_input $foo debconf/test
+db_input "$foo" debconf/test
+db_input 'medium' debconf/test
+
+# debconf/transtring should not be flagged as unused
+# (it's aliased to debconf/alias, which is used)
+db_register debconf/transtring debconf/alias
+db_input medium debconf/alias
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.postinst b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.postinst
new file mode 100644
index 0000000..b387037
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.postinst
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+# Not supposed to do this here.
+db_input medium debconf/test
+
+true
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates
new file mode 100644
index 0000000..811bb6c
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates
@@ -0,0 +1,101 @@
+Template: debconf/test
+Type: text
+_description: Foo bar (1)
+
+Template: debconf/testmulti
+Type: multiselect
+__Choices: foo, bar, boo
+_Description: test comma usages in choices fields
+
+Template: debconf/testmulti-escape
+Type: multiselect
+_Choices: foo\, bar, boo
+_Description: test escaped comma usages in choices fields:
+
+Template: debconf/testboolean
+Type: boolean
+_Description: Enter yes or no:
+ Do you want to answer this question?
+
+Template: debconf/teststring
+Type: string
+_Description: This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+ This template goes on and on.
+
+Template: debconf/testnote
+Type: note
+Description: This should be a title and not a really long sentence that ends in a regular period.
+
+Template: debconf/1st-person
+Type: select
+__Choices: one, two
+_Description: Select one of these:
+ I am a stupid test of first-person syntax that tells you to select yes
+ even though yes isn't an option in this prompt.
+
+Template: debconf/internal
+Type: boolean
+Description: For internal use only
+ We are testing that style checks are not applied to templates that are
+ marked as internal.
+
+Template: debconf/no-description
+Type: string
+
+Template: debconf/translate
+Type: boolean
+_Default: false
+_Description: Should this really be translated?
+
+Template: debconf/transtring
+Type: string
+_Default: 1
+_Description: Count of templates:
+ The number of useless numbers that a translator would have to translate
+ for this template.
+
+Template: debconf/language
+__Choices: English, Spanish, German, French
+# This is the default choice. Translators should put their own language,
+# if available, here instead, but the value MUST be the English version
+# of the value for the package scripts to work properly.
+_Default: English[ translators, see the comment in the PO files]
+_Description: The default language, an example of a default that should
+ be translated.
+
+Template: debconf/error
+Type: error
+_Description: An error occurred
+ This is a sample Debconf error template.
+
+Template: debconf/should-be-boolean
+Type: select
+__Choices: yes, no
+_Description: Choose:
+ Pick yes or no.
+
+Template: debconf/should-be-no-longer-a-problem
+Type: boolean
+_Description: Decide, lintian
+ Using "no longer" should no longer be detected as
+ making-assumptions-about-interfaces-in-templates by lintian.
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.de b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.de
new file mode 100644
index 0000000..f9ea121
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.de
@@ -0,0 +1,3 @@
+Template: debconf/testmulti
+Type: multiselect
+Choices: foo, bar\, boo, boo
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.in b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-test.templates.in
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.postinst b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.postinst
new file mode 100644
index 0000000..4ce41f0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.postinst
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+ldconfig
+
+true
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.templates b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.templates
new file mode 100644
index 0000000..5d7cf5a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/debconf-udeb.templates
@@ -0,0 +1,3 @@
+Template: debian-installer/debconf-udeb/title
+Type: text
+_description: This is just a test
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/POTFILES.in b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/POTFILES.in
new file mode 100644
index 0000000..d0c82f0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/POTFILES.in
@@ -0,0 +1,2 @@
+[type: gettext/rfc822deb] debconf-test.templates
+[type: gettext/rfc822deb] debconf-udeb.templates
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/de.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/de.po
new file mode 100644
index 0000000..86c5796
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/de.po
@@ -0,0 +1,66 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2004-12-06 01:01+0100\n"
+"Last-Translator: Frank Lichtenheld <djpig@debian.org>\n"
+"Language-Team: debian-l10n-german@l.d.o\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "foo"
+msgstr "foo"
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "bar"
+msgstr "bar, boo"
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "boo"
+msgstr "boo"
+
+#. Type: multiselect
+#. Description
+#: ../debconf-test.templates:8
+msgid "test comma usages in choices fields"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:11
+msgid "foo\\, bar, boo"
+msgstr "foo, bar, boo"
+
+#. Type: text
+#. description
+#: ../debconf-udeb.templates:3
+msgid "This is just a test"
+msgstr "Dies ist nur ein Test"
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/fr.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/fr.po
new file mode 100644
index 0000000..c74deb2
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/fr.po
@@ -0,0 +1,60 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2005-10-13 15:03+0200\n"
+"Last-Translator: Frank Lichtenheld <djpig@debian.org>\n"
+"Language-Team: debian-l10n-german@l.d.o\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "foo"
+msgstr "foo"
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "bar"
+msgstr "bar, boo"
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "boo"
+msgstr "boo"
+
+#. Type: multiselect
+#. Description
+#: ../debconf-test.templates:8
+msgid "test comma usages in choices fields"
+msgstr ""
+
+#. Type: text
+#. description
+#: ../debconf-udeb.templates:3
+msgid "This is just a test"
+msgstr "
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/lang.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/lang.po
new file mode 100644
index 0000000..7ac498a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/lang.po
@@ -0,0 +1,15 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2005-10-13 15:03+0200\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/nds.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/nds.po
new file mode 100644
index 0000000..7ac498a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/nds.po
@@ -0,0 +1,15 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2005-10-13 15:03+0200\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/output b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/output
new file mode 100644
index 0000000..c3df1a5
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/output
@@ -0,0 +1 @@
+2 utf8
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/pt_BR.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/pt_BR.po
new file mode 100644
index 0000000..7ac498a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/pt_BR.po
@@ -0,0 +1,15 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: debconf-test 1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: 2005-10-13 15:03+0200\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/sample-file.po b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/sample-file.po
new file mode 100644
index 0000000..8dcc0ff
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/sample-file.po
@@ -0,0 +1 @@
+This is some file that isn't actually a valid .po file.
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/templates.pot b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/templates.pot
new file mode 100644
index 0000000..914c77f
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/po/templates.pot
@@ -0,0 +1,61 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-12-06 00:51+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. description
+#: ../debconf-test.templates:3
+msgid "Foo bar (2)"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "foo"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "bar"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../debconf-test.templates:7
+msgid "boo"
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../debconf-test.templates:8
+msgid "test comma usages in choices fields"
+msgstr ""
+
+#. Type: text
+#. description
+#: ../debconf-udeb.templates:3
+msgid "This is just a test"
+msgstr ""
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pycompat b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pycompat
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pycompat
@@ -0,0 +1 @@
+2
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pyversions b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pyversions
new file mode 100644
index 0000000..6f290b0
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/pyversions
@@ -0,0 +1 @@
+>= 2.7
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/rules b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/rules
new file mode 100755
index 0000000..933901a
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/debian/rules
@@ -0,0 +1,64 @@
+#!/usr/bin/make -f
+
+deb_dir = debian/debconf
+udeb_dir = debian/debconf-udeb
+build_dirs = $(deb_dir) $(udeb_dir)
+
+build-indep:
+# There are no architecture-independent files to be built
+# by this package. If there were any they would be made
+# here.
+
+build-arch:
+ dh_testdir
+ touch build
+
+build: build-indep build-arch
+
+clean:
+ dh_testdir
+ dh_testroot
+ -rm -f build
+
+ dh_clean
+
+binary-indep: build
+# There are no architecture-independent files to be uploaded
+# generated by this package. If there were any they would be
+# made here.
+
+binary-arch: build
+ dh_testdir
+ dh_testroot
+ dh_prep
+ dh_installdirs -a
+
+ dh_installchangelogs -a
+ dh_installdocs -a
+ dh_installdebconf -pdebconf-test
+ dh_installdebconf -pdebconf-test-noscripts --noscripts
+ dh_installdebconf -pdebconf-test-preinst --noscripts
+ dh_installdebconf -pdebconf-test-postinst --noscripts
+ dh_installdebconf -pdebconf-udeb
+
+
+
+
+ dh_compress -a
+ dh_fixperms -a
+
+# The shlibs stuff doesn't matter here so do it in a weird order to
+# test warnings.
+ dh_installdeb -a
+ dh_shlibdeps -a
+ dh_makeshlibs -a
+ dh_gencontrol -a
+ dh_md5sums
+ dh_builddeb -a
+ dh_makeshlibs -a
+
+# Below here is fairly generic really
+
+binary: binary-indep binary-arch
+
+.PHONY: build-arch build-indep build binary binary-arch binary-indep clean checkroot
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/fill-values b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/fill-values
new file mode 100644
index 0000000..186615f
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/build-spec/fill-values
@@ -0,0 +1,6 @@
+Skeleton: upload-native
+Testname: legacy-debconf
+Source: debconf
+Version: 1~rc1
+Description: Legacy test "debconf"
+Default-Build-Depends: debhelper (>= [% $dh_compat_level %]~)
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/desc b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/desc
new file mode 100644
index 0000000..360e9fa
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/desc
@@ -0,0 +1,2 @@
+Testname: legacy-debconf
+Check: languages/python/obsolete
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/hints b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/hints
new file mode 100644
index 0000000..b01d66c
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/hints
@@ -0,0 +1,2 @@
+debconf (source): debian-pyversions-is-obsolete [debian/pyversions]
+debconf (source): debian-pycompat-is-obsolete [debian/pycompat]
diff --git a/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/post-test b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/post-test
new file mode 100644
index 0000000..faeef0b
--- /dev/null
+++ b/t/recipes/checks/languages/python/obsolete/legacy-debconf/eval/post-test
@@ -0,0 +1 @@
+s/\(current is ([0-9]+\.)+[0-9]\)/(current is CURRENT)/
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/control.in
new file mode 100644
index 0000000..92bcd84
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+X-Python3-Version: >= 3.4
+XS-Python-Version: >= 2.7
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: not-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/install b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/install
new file mode 100644
index 0000000..6c37889
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/debian/install
@@ -0,0 +1 @@
+some-file usr/share/lintian
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/fill-values b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/fill-values
new file mode 100644
index 0000000..555004a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-ancient-python-version-field
+Description: Test for ancient python-version fields
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/orig/some-file b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/orig/some-file
new file mode 100644
index 0000000..7bf08f7
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/build-spec/orig/some-file
@@ -0,0 +1,2 @@
+This file is installed into /usr/share/lintian just to ensure that this
+package doesn't look like a metapackage for the dependency checks.
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/desc b/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/desc
new file mode 100644
index 0000000..fd951d4
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/desc
@@ -0,0 +1,4 @@
+Testname: python-ancient-python-version-field
+Test-Against:
+ old-python-version-field
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/hints b/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/hints
new file mode 100644
index 0000000..3170d17
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-ancient-python-version-field/eval/hints
@@ -0,0 +1,2 @@
+python-ancient-python-version-field (source): ancient-python-version-field XS-Python-Version 2.7
+python-ancient-python-version-field (source): ancient-python-version-field X-Python3-Version 3.4
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/debian/control.in
new file mode 100644
index 0000000..cdf3e6a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python-sphinx | python3-sphinx
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, python3
+Description: Test package
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/fill-values b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/fill-values
new file mode 100644
index 0000000..9d30d65
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-build-depends-on-sphinx-alternative
+Description: Check packages that Build-Depend on python-sphinx | python3-sphinx
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/desc b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/desc
new file mode 100644
index 0000000..367bf9d
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-build-depends-on-sphinx-alternative
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/hints b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/hints
new file mode 100644
index 0000000..2ebac75
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-alternative/eval/hints
@@ -0,0 +1 @@
+python-build-depends-on-sphinx-alternative (source): alternatively-build-depends-on-python-sphinx-and-python3-sphinx
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/debian/control.in
new file mode 100644
index 0000000..b32c5cc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-sphinx
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, ${python3::Depends}
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/fill-values b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/fill-values
new file mode 100644
index 0000000..6acca95
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-build-depends-on-sphinx-unrel
+Description: Check packages that Build-Depend on python-sphinx
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/desc b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/desc
new file mode 100644
index 0000000..60e2314
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/desc
@@ -0,0 +1,5 @@
+Testname: python-build-depends-on-sphinx-unrel
+Test-Against:
+ alternatively-build-depends-on-python-sphinx-and-python3-sphinx
+ build-depends-on-python-sphinx-only
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/hints b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/hints
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx-unrel/eval/hints
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/debian/control.in
new file mode 100644
index 0000000..0e34e9f
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python-sphinx
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Test package
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/fill-values b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/fill-values
new file mode 100644
index 0000000..cbaf987
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-build-depends-on-sphinx
+Description: Check packages that Build-Depend on python-sphinx
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/desc b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/desc
new file mode 100644
index 0000000..c50652c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/desc
@@ -0,0 +1,4 @@
+Testname: python-build-depends-on-sphinx
+Test-Against:
+ alternatively-build-depends-on-python-sphinx-and-python3-sphinx
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/hints b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/hints
new file mode 100644
index 0000000..100246a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-build-depends-on-sphinx/eval/hints
@@ -0,0 +1 @@
+python-build-depends-on-sphinx (source): build-depends-on-python-sphinx-only
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/fill-values
new file mode 100644
index 0000000..4d980c0
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-flit
+Description: Check for a package not built using pyproject flit, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..96d29cf
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/build-spec/orig/pyproject.toml
@@ -0,0 +1,7 @@
+[build-system]
+requires = ["flit_core"]
+build-backend = "flit_core.buildapi"
+
+[tool.flit.metadata]
+module = "foo"
+author = "Louis-Philippe Véronneau"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/desc
new file mode 100644
index 0000000..7a67830
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-flit
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/hints
new file mode 100644
index 0000000..287ec5f
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-flit/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-flit (source): missing-prerequisite-for-pyproject-backend flit_core.buildapi (does not satisfy flit:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/fill-values
new file mode 100644
index 0000000..32b8599
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-hatchling
+Description: Check for a package not built using pyproject hatchling, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..99e23bc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["hatchling"]
+build-backend = "hatchling.build"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/desc
new file mode 100644
index 0000000..d041bcf
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-hatchling
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/hints
new file mode 100644
index 0000000..5fc6c8c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-hatchling/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-hatchling (source): missing-prerequisite-for-pyproject-backend hatchling.build (does not satisfy python3-hatchling:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/fill-values
new file mode 100644
index 0000000..6c65bb6
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-mesonpy
+Description: Check for a package not built using pyproject meson, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..4c6d158
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ['meson-python']
+build-backend = 'mesonpy'
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/desc
new file mode 100644
index 0000000..e94e8b9
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-mesonpy
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/hints
new file mode 100644
index 0000000..9d0bcdb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-mesonpy/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-mesonpy (source): missing-prerequisite-for-pyproject-backend mesonpy (does not satisfy python3-mesonpy:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/fill-values
new file mode 100644
index 0000000..ef4a012
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-pdm-pep517
+Description: Check for a package not built using pyproject pdm-pep517, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..161e831
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = []
+build-backend = "pdm.pep517.api"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/desc
new file mode 100644
index 0000000..c6fbaba
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-pdm-pep517
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/hints
new file mode 100644
index 0000000..aef0fb0
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-pdm-pep517/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-pdm-pep517 (source): missing-prerequisite-for-pyproject-backend pdm.pep517.api (does not satisfy python3-pdm-pep517:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/fill-values
new file mode 100644
index 0000000..06efd81
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-poetry
+Description: Check for a package not built using pyproject poetry, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..cb6ebaa
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/build-spec/orig/pyproject.toml
@@ -0,0 +1,17 @@
+[build-system]
+requires = ["poetry>=0.12"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+name = "foo"
+description = "an example module"
+version = "0.1"
+authors = ["Stefano Rivera <stefanor@debian.org>"]
+license = "Expat"
+
+[tool.poetry.dependencies]
+tomli = "^1.0.0"
+importlib-metadata = { version="*", python = "<3.5" }
+
+[tool.poetry.scripts]
+foo = 'foo:main'
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/desc
new file mode 100644
index 0000000..c1b69de
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-poetry
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/hints
new file mode 100644
index 0000000..3fd8894
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-poetry/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-poetry (source): missing-prerequisite-for-pyproject-backend poetry.core.masonry.api (does not satisfy python3-poetry-core:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/fill-values
new file mode 100644
index 0000000..e63a7eb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-setuptools
+Description: Check for a package not built using pyproject setuptools, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..e0f6edc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["setuptools", "wheel", "sphinx"]
+build-backend = "setuptools.build_meta"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/desc
new file mode 100644
index 0000000..15f5c76
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-setuptools
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/hints
new file mode 100644
index 0000000..ab706cd
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-setuptools/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-setuptools (source): missing-prerequisite-for-pyproject-backend setuptools.build_meta (does not satisfy python3-setuptools:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/debian/control.in
new file mode 100644
index 0000000..18cc016
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/fill-values b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/fill-values
new file mode 100644
index 0000000..abb7502
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-could-use-pyproject-sipbuild
+Description: Check for a package not built using pyproject sipbuild, but that could.
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..dcd9dba
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["sip >=5, <6"]
+build-backend = "sipbuild.api"
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/desc b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/desc
new file mode 100644
index 0000000..76fb8d3
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-could-use-pyproject-sipbuild
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/hints b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/hints
new file mode 100644
index 0000000..11629dd
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-could-use-pyproject-sipbuild/eval/hints
@@ -0,0 +1 @@
+python-could-use-pyproject-sipbuild (source): missing-prerequisite-for-pyproject-backend sipbuild.api (does not satisfy python3-sipbuild:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/debian/control.in
new file mode 100644
index 0000000..2017443
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, python:any, python3:any, python2.7
+Description: Depends on both Python 2.x and Python 3.x
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/fill-values b/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/fill-values
new file mode 100644
index 0000000..d1ade98
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-depends-python2-and-python3/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-depends-python2-and-python3
+Description: Check for packages that depend on Python 2.x and Python 3.x
diff --git a/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/desc b/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/desc
new file mode 100644
index 0000000..a2ba88e
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-depends-python2-and-python3
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/hints b/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/hints
new file mode 100644
index 0000000..618976a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-depends-python2-and-python3/eval/hints
@@ -0,0 +1 @@
+python3-python-depends-python2-and-python3 (binary): depends-on-python2-and-python3 Depends (satisfies python2.7:any, python3:any)
diff --git a/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/debian/control.in
new file mode 100644
index 0000000..81556b8
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/debian/control.in
@@ -0,0 +1,61 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-django-positive
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package without corresponding python-django dependency
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: python2-django-positive
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package without corresponding python-django dependency (explicit)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Explicit Python 2 variant.
+
+Package: python3-django-positive
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Python 3 package without corresponding python3-django dependency
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
+
+Package: python-django-false-positive
+Architecture: all
+Depends: ${misc:Depends}, python2.7, python-django
+Description: Python 2 package with corresponding python3-django dependency
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ This is a false positive.
+
+Package: python3-django-false-positive
+Architecture: all
+Pre-Depends: python3-django
+Depends: ${misc:Depends}, python3
+Description: Python 3 package with corresponding python3-django dependency
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant of the false positive.
diff --git a/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/fill-values b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/fill-values
new file mode 100644
index 0000000..3c28985
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-django-package-does-not-depend-on-django
+Description: Check for Django packages that do not specify a Django Depends
diff --git a/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/desc b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/desc
new file mode 100644
index 0000000..09cdb4a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-django-package-does-not-depend-on-django
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/hints b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/hints
new file mode 100644
index 0000000..5041e0b
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-django-package-does-not-depend-on-django/eval/hints
@@ -0,0 +1,3 @@
+python3-django-positive (binary): django-package-does-not-depend-on-django python3-django
+python2-django-positive (binary): django-package-does-not-depend-on-django python-django
+python-django-positive (binary): django-package-does-not-depend-on-django python-django
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/control.in
new file mode 100644
index 0000000..96ba835
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/control.in
@@ -0,0 +1,19 @@
+Source: [% $source %]
+Priority: optional
+Section: java
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+XS-Python-Version: current 2.7
+X-Python3-Version: invalid
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: not-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/install b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/install
new file mode 100644
index 0000000..6c37889
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/debian/install
@@ -0,0 +1 @@
+some-file usr/share/lintian
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/fill-values b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/fill-values
new file mode 100644
index 0000000..92f69c4
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-malformed-py-version
+Description: Test for malformed python-version field
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/orig/some-file b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/orig/some-file
new file mode 100644
index 0000000..7bf08f7
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/build-spec/orig/some-file
@@ -0,0 +1,2 @@
+This file is installed into /usr/share/lintian just to ensure that this
+package doesn't look like a metapackage for the dependency checks.
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/eval/desc b/t/recipes/checks/languages/python/python-malformed-py-version/eval/desc
new file mode 100644
index 0000000..a7d43a8
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-malformed-py-version
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-malformed-py-version/eval/hints b/t/recipes/checks/languages/python/python-malformed-py-version/eval/hints
new file mode 100644
index 0000000..0d9b010
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-malformed-py-version/eval/hints
@@ -0,0 +1,4 @@
+python-malformed-py-version (source): python-version-current-is-deprecated XS-Python-Version
+python-malformed-py-version (source): malformed-python-version XS-Python-Version current 2.7
+python-malformed-py-version (source): malformed-python-version X-Python3-Version invalid
+python-malformed-py-version (source): ancient-python-version-field XS-Python-Version 2.7
diff --git a/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/debian/control.in
new file mode 100644
index 0000000..0c0f9db
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/debian/control.in
@@ -0,0 +1,67 @@
+Source: [% $source %]
+Priority: optional
+Section: [% $section %]
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: Mismatched substvar for Python 2.X
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ For Python 2.X.
+
+Package: python3-[% $source %]
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python:Depends}
+Description: Mismatched substvar for Python 3.X
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ For Python 3.X.
+
+Package: python-[% $source %]-nonrel
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python:Depends}
+Description: False positive for Python 2.X
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ False positive package For Python 2.X.
+
+Package: python3-[% $source %]-nonrel
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: False positive Python 3.X
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ False positive package for Python 3.X.
+
+Package: python-[% $source %]-tools
+Section: python
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: Generic tools package
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Generic -tools packages are allowed.
diff --git a/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/fill-values b/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/fill-values
new file mode 100644
index 0000000..1132b5e
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-mismatched-python-substvar/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-mismatched-python-substvar
+Description: Check for Python packages with mismatched substvars.
diff --git a/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/desc b/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/desc
new file mode 100644
index 0000000..f0867d1
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-mismatched-python-substvar
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/hints b/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/hints
new file mode 100644
index 0000000..f6cc507
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-mismatched-python-substvar/eval/hints
@@ -0,0 +1,2 @@
+python-mismatched-python-substvar (source): mismatched-python-substvar python3-python-mismatched-python-substvar ${python:Depends}
+python-mismatched-python-substvar (source): mismatched-python-substvar python-python-mismatched-python-substvar ${python3:Depends}
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/changelog.in b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/changelog.in
new file mode 100644
index 0000000..0da0986
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/changelog.in
@@ -0,0 +1,10 @@
+[% $source %] ([% $version %]) [% $distribution %]; urgency=low
+
+ * Lintian Test Suite.
+ * Test: [% $testname %]
+ * python-[% $source %] is packaged because...
+
+ * Suppress "should close ITP bug" messages. (Closes: #123456)
+
+ -- [% $author %] [% $date %]
+
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/control.in
new file mode 100644
index 0000000..9cb5bbc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package with no corresponding Python 3 package
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Python 2 package with corresponding Python 3 package
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/fill-values b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/fill-values
new file mode 100644
index 0000000..fee0239
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-new-python2-package-unrel
+Description: Check various Python 2 issues (false positives)
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/desc b/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/desc
new file mode 100644
index 0000000..4625837
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/desc
@@ -0,0 +1,4 @@
+Testname: python-new-python2-package-unrel
+Test-Against:
+ new-package-should-not-package-python2-module
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/hints b/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/hints
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package-unrel/eval/hints
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/changelog.in b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/changelog.in
new file mode 100644
index 0000000..7cab2cb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/changelog.in
@@ -0,0 +1,9 @@
+[% $source %] ([% $version %]) [% $distribution %]; urgency=low
+
+ * Lintian Test Suite.
+ * Test: [% $testname %]
+
+ * Suppress "should close ITP bug" messages. (Closes: #123456)
+
+ -- [% $author %] [% $date %]
+
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/control.in
new file mode 100644
index 0000000..9cb5bbc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/debian/control.in
@@ -0,0 +1,27 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package with no corresponding Python 3 package
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Python 2 package with corresponding Python 3 package
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/build-spec/fill-values b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/fill-values
new file mode 100644
index 0000000..6442cdb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-new-python2-package
+Description: Check various Python 2 issues
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/eval/desc b/t/recipes/checks/languages/python/python-new-python2-package/eval/desc
new file mode 100644
index 0000000..c97d25b
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-new-python2-package
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-new-python2-package/eval/hints b/t/recipes/checks/languages/python/python-new-python2-package/eval/hints
new file mode 100644
index 0000000..185e930
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-new-python2-package/eval/hints
@@ -0,0 +1 @@
+python-python-new-python2-package (binary): new-package-should-not-package-python2-module python-python-new-python2-package
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/control.in
new file mode 100644
index 0000000..4727f6c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+X-Python3-Version: >= 3.5
+XS-Python-Version: >= 2.7
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: not-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Description: [% $description %]
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/install b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/install
new file mode 100644
index 0000000..6c37889
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/debian/install
@@ -0,0 +1 @@
+some-file usr/share/lintian
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/fill-values b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/fill-values
new file mode 100644
index 0000000..022bd12
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-old-python-version-field
+Description: Test for old python-version fields
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/orig/some-file b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/orig/some-file
new file mode 100644
index 0000000..7bf08f7
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/build-spec/orig/some-file
@@ -0,0 +1,2 @@
+This file is installed into /usr/share/lintian just to ensure that this
+package doesn't look like a metapackage for the dependency checks.
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/eval/desc b/t/recipes/checks/languages/python/python-old-python-version-field/eval/desc
new file mode 100644
index 0000000..014cb1f
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/eval/desc
@@ -0,0 +1,4 @@
+Testname: python-old-python-version-field
+Test-Against:
+ old-python-version-field
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-old-python-version-field/eval/hints b/t/recipes/checks/languages/python/python-old-python-version-field/eval/hints
new file mode 100644
index 0000000..29a5676
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-old-python-version-field/eval/hints
@@ -0,0 +1,2 @@
+python-old-python-version-field (source): ancient-python-version-field XS-Python-Version 2.7
+python-old-python-version-field (source): ancient-python-version-field X-Python3-Version 3.5
diff --git a/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/debian/control.in
new file mode 100644
index 0000000..624d38c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/debian/control.in
@@ -0,0 +1,38 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-foo
+Architecture: all
+Depends: ${misc:Depends}, python2.7, python3-foo, python3-foo, python3-bar, python-falsepositive
+Description: Python 2 package depending on python3-foo
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: python2-foo
+Architecture: all
+Depends: ${misc:Depends}, python2.7, python3-foo, python2-bar, python2-falsepositive
+Description: Python 2 package depending on python3-foo (explicit)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Explicit Python 2.x variant.
+
+Package: python3-foo
+Architecture: all
+Depends: ${misc:Depends}, python3, python-foo, python2-foo, python2-bar, python3-falsepositive, python-foo-doc, python-foo-common
+Description: Python 3 package depending on python-foo and python2-foo
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/fill-values b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/fill-values
new file mode 100644
index 0000000..f7b42f8
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-package-depends-on-package-from-other-python-variant
+Description: Check for Python packages that depend on variants of themselves
diff --git a/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/desc b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/desc
new file mode 100644
index 0000000..54a6284
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-package-depends-on-package-from-other-python-variant
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/hints b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/hints
new file mode 100644
index 0000000..b424c11
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-depends-on-package-from-other-python-variant/eval/hints
@@ -0,0 +1,6 @@
+python3-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python2-foo
+python3-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python2-bar
+python3-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python-foo
+python2-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python3-foo
+python-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python3-foo
+python-foo (binary): python-package-depends-on-package-from-other-python-variant Depends: python3-bar
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/control.in
new file mode 100644
index 0000000..3f3616f
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}
+Description: Python package with no Python dependencies
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/rules b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/rules
new file mode 100755
index 0000000..ffbb59d
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/debian/rules
@@ -0,0 +1,10 @@
+#!/usr/bin/make -f
+
+TARGET = debian/$(shell dh_listpackages)/usr/lib/python3/dist-packages
+
+%:
+ dh $@
+
+override_dh_auto_install:
+ mkdir -p $(TARGET)
+ touch $(TARGET)/lintian.py
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/fill-values b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/fill-values
new file mode 100644
index 0000000..5898494
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-package-missing-depends-on-python
+Description: Check for packages missing depends on Python
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/desc b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/desc
new file mode 100644
index 0000000..04a6f12
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-package-missing-depends-on-python
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/hints b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/hints
new file mode 100644
index 0000000..be51dd6
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-package-missing-depends-on-python/eval/hints
@@ -0,0 +1 @@
+python3-python-package-missing-depends-on-python (binary): python-package-missing-depends-on-python
diff --git a/t/recipes/checks/languages/python/python-python2-apps/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-python2-apps/build-spec/debian/control.in
new file mode 100644
index 0000000..9fa4e88
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-apps/build-spec/debian/control.in
@@ -0,0 +1,87 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Build-Depends: [% $build_depends %]
+Standards-Version: [% $standards_version %]
+Rules-Requires-Root: no
+
+Package: pkg-depends
+Architecture: all
+Depends: ${misc:Depends}, python2
+Description: Test package with Python 2.x in Depends
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Description: Test package with Python 2.x in Depends.
+
+Package: pkg-pre-depends
+Architecture: all
+Depends: ${misc:Depends}
+Pre-Depends: python2.7
+Description: Test package with Python 2.x in Pre-Suggests
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Description: Test package with Python 2.x in Pre-Depends.
+
+Package: pkg-recommends
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: python2-dev
+Description: Test package with Python 2.x in Recommends
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Description: Test package with Python 2.x in Recommends.
+
+Package: pkg-suggests
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: python2, python2.7
+Description: Test package with Python 2.x in Suggests
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Description: Test package with Python 2.x in Suggests.
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2
+Description: Python 3 module with Python 3.x in Depends
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python module with Python 2.x in Depends.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 module with Python 3.x in Depends.
+
+Package: pkg-depends-any
+Architecture: all
+Depends: ${misc:Depends}, python2:any
+Description: Test package with Python 2.x with :any suffix in Depends
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Description: Test package with Python 2.x with :any suffix in Depends.
diff --git a/t/recipes/checks/languages/python/python-python2-apps/build-spec/fill-values b/t/recipes/checks/languages/python/python-python2-apps/build-spec/fill-values
new file mode 100644
index 0000000..eb6243a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-apps/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-python2-apps
+Description: Check packages that Depend/Suggest etc. on Python 2.x
diff --git a/t/recipes/checks/languages/python/python-python2-apps/eval/desc b/t/recipes/checks/languages/python/python-python2-apps/eval/desc
new file mode 100644
index 0000000..0172879
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-apps/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-python2-apps
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-python2-apps/eval/hints b/t/recipes/checks/languages/python/python-python2-apps/eval/hints
new file mode 100644
index 0000000..b10f957
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-apps/eval/hints
@@ -0,0 +1,6 @@
+pkg-suggests (binary): dependency-on-python-version-marked-for-end-of-life Suggests (satisfies python2:any)
+pkg-suggests (binary): dependency-on-python-version-marked-for-end-of-life Suggests (satisfies python2.7:any)
+pkg-recommends (binary): dependency-on-python-version-marked-for-end-of-life Recommends (satisfies python2-dev:any)
+pkg-pre-depends (binary): dependency-on-python-version-marked-for-end-of-life Pre-Depends (satisfies python2.7:any)
+pkg-depends-any (binary): dependency-on-python-version-marked-for-end-of-life Depends (satisfies python2:any)
+pkg-depends (binary): dependency-on-python-version-marked-for-end-of-life Depends (satisfies python2:any)
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/debian/control.in
new file mode 100644
index 0000000..1b8d6e5
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/debian/control.in
@@ -0,0 +1,84 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package with corresponding Python 3 package
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Python 2 package with corresponding Python 3 package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 package.
+
+Package: python-[% $source %]-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}
+Description: Python 2 package with corresponding Python 3 package (documentation)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ This package contains documentation.
+
+Package: python-[% $source %]-common
+Architecture: all
+Depends: ${misc:Depends}
+Description: Python 2 package with corresponding Python 3 package (common files)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ This package contains files common to both packages.
+
+Package: python-[% $source %]-tools
+Architecture: all
+Depends: ${misc:Depends}
+Description: Python 2 package with corresponding Python 3 package (tools)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ This package contains tools.
+
+Package: python-[% $source %]-2
+Architecture: all
+Depends: ${misc:Depends}
+Description: Python 2 package with corresponding Python 3 package (2)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ This package is another module.
+
+Package: entirely-unrelated-name
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: Python 3 version of python-[% $source %]-2
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ This package is the Python 3 variant of the previous package but with a
+ different name.
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/fill-values b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/fill-values
new file mode 100644
index 0000000..78e15f0
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-python2-no-python3-unrel
+Description: Check for Python packages that only ship a Python 2.x module
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/desc b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/desc
new file mode 100644
index 0000000..fab43d0
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/desc
@@ -0,0 +1,3 @@
+Testname: python-python2-no-python3-unrel
+Test-Against: python-foo-but-no-python3-foo
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/hints b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/hints
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3-unrel/eval/hints
@@ -0,0 +1 @@
+
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/debian/control.in
new file mode 100644
index 0000000..11ed24c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: python-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, python2.7
+Description: Python 2 package with no corresponding Python 3 package
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/fill-values b/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/fill-values
new file mode 100644
index 0000000..e48cc1a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-python2-no-python3
+Description: Check for Python packages that only ship a Python 2.x module
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3/eval/desc b/t/recipes/checks/languages/python/python-python2-no-python3/eval/desc
new file mode 100644
index 0000000..89d3f7a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-python2-no-python3
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-python2-no-python3/eval/hints b/t/recipes/checks/languages/python/python-python2-no-python3/eval/hints
new file mode 100644
index 0000000..03ff5b7
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-python2-no-python3/eval/hints
@@ -0,0 +1 @@
+python-python2-no-python3 (source): python-foo-but-no-python3-foo python-python-python2-no-python3
diff --git a/t/recipes/checks/languages/python/python-source-package-encodes-python-version/build-spec/fill-values b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/build-spec/fill-values
new file mode 100644
index 0000000..7cb70a2
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: upload-native
+Testname: python-source-package-encodes-python-version
+Source: python3-foo
+Description: Check packages that encode their Python version in their name
diff --git a/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/desc b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/desc
new file mode 100644
index 0000000..4d45222
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-source-package-encodes-python-version
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/hints b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/hints
new file mode 100644
index 0000000..1fa0850
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-source-package-encodes-python-version/eval/hints
@@ -0,0 +1 @@
+python3-foo (source): source-package-encodes-python-version
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/debian/control.in
new file mode 100644
index 0000000..049363e
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-pdm-pep517
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/build-spec/fill-values b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/fill-values
new file mode 100644
index 0000000..732f422
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-valid-pdm
+Description: Check packages that build-depend on python3-pdm-pep517.
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..161e831
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = []
+build-backend = "pdm.pep517.api"
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/eval/desc b/t/recipes/checks/languages/python/python-valid-pdm/eval/desc
new file mode 100644
index 0000000..a50cb40
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-valid-pdm
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-valid-pdm/eval/hints b/t/recipes/checks/languages/python/python-valid-pdm/eval/hints
new file mode 100644
index 0000000..2c5e8cb
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-pdm/eval/hints
@@ -0,0 +1 @@
+python-valid-pdm (source): missing-prerequisite-for-pyproject-backend pdm.pep517.api (does not satisfy python3-pdm-pep517:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/debian/control.in
new file mode 100644
index 0000000..cc955c3
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-poetry-core
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/build-spec/fill-values b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/fill-values
new file mode 100644
index 0000000..0cfca42
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-valid-poetry
+Description: Check packages that build-depend on python3-poetry-core.
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..cb6ebaa
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/build-spec/orig/pyproject.toml
@@ -0,0 +1,17 @@
+[build-system]
+requires = ["poetry>=0.12"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+name = "foo"
+description = "an example module"
+version = "0.1"
+authors = ["Stefano Rivera <stefanor@debian.org>"]
+license = "Expat"
+
+[tool.poetry.dependencies]
+tomli = "^1.0.0"
+importlib-metadata = { version="*", python = "<3.5" }
+
+[tool.poetry.scripts]
+foo = 'foo:main'
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/eval/desc b/t/recipes/checks/languages/python/python-valid-poetry/eval/desc
new file mode 100644
index 0000000..5160485
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-valid-poetry
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-valid-poetry/eval/hints b/t/recipes/checks/languages/python/python-valid-poetry/eval/hints
new file mode 100644
index 0000000..1c82652
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-valid-poetry/eval/hints
@@ -0,0 +1 @@
+python-valid-poetry (source): missing-prerequisite-for-pyproject-backend poetry.core.masonry.api (does not satisfy python3-poetry-core:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/debian/control.in
new file mode 100644
index 0000000..1e5863c
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/debian/control.in
@@ -0,0 +1,18 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-pdm
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/fill-values b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/fill-values
new file mode 100644
index 0000000..cc29107
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: source-native
+Testname: python-wrong-pdm
+Description: Check packages that build-depend on python3-pdm.
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..161e831
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/build-spec/orig/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = []
+build-backend = "pdm.pep517.api"
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/eval/desc b/t/recipes/checks/languages/python/python-wrong-pdm/eval/desc
new file mode 100644
index 0000000..3f142dc
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-wrong-pdm
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-wrong-pdm/eval/hints b/t/recipes/checks/languages/python/python-wrong-pdm/eval/hints
new file mode 100644
index 0000000..0c09107
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-pdm/eval/hints
@@ -0,0 +1,2 @@
+python-wrong-pdm (source): uses-pdm-cli [pyproject.toml:3]
+python-wrong-pdm (source): missing-prerequisite-for-pyproject-backend pdm.pep517.api (does not satisfy python3-pdm-pep517:any, pybuild-plugin-pyproject:any) [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/debian/control.in b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/debian/control.in
new file mode 100644
index 0000000..3084d99
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/debian/control.in
@@ -0,0 +1,19 @@
+Source: [% $source %]
+Priority: optional
+Section: python
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %], python3-poetry, pybuild-plugin-pyproject
+Build-Depends-Indep: python3-poetry-core
+Rules-Requires-Root: no
+
+Package: python3-[% $source %]
+Architecture: all
+Depends: ${misc:Depends}, python3
+Description: Test package (Python 3)
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
+ .
+ Python 3 variant.
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/fill-values b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/fill-values
new file mode 100644
index 0000000..135776b
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/fill-values
@@ -0,0 +1,4 @@
+Skeleton: source-native
+Testname: python-wrong-poetry
+Description: Check packages that build-depend on python3-poetry. Also acts as a
+ test for packages that have the pyproject dependencies in Build-Depends-Indep.
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/orig/pyproject.toml b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/orig/pyproject.toml
new file mode 100644
index 0000000..cb6ebaa
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/build-spec/orig/pyproject.toml
@@ -0,0 +1,17 @@
+[build-system]
+requires = ["poetry>=0.12"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+name = "foo"
+description = "an example module"
+version = "0.1"
+authors = ["Stefano Rivera <stefanor@debian.org>"]
+license = "Expat"
+
+[tool.poetry.dependencies]
+tomli = "^1.0.0"
+importlib-metadata = { version="*", python = "<3.5" }
+
+[tool.poetry.scripts]
+foo = 'foo:main'
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/eval/desc b/t/recipes/checks/languages/python/python-wrong-poetry/eval/desc
new file mode 100644
index 0000000..f0b7ac1
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-wrong-poetry
+Check: languages/python
diff --git a/t/recipes/checks/languages/python/python-wrong-poetry/eval/hints b/t/recipes/checks/languages/python/python-wrong-poetry/eval/hints
new file mode 100644
index 0000000..235932a
--- /dev/null
+++ b/t/recipes/checks/languages/python/python-wrong-poetry/eval/hints
@@ -0,0 +1 @@
+python-wrong-poetry (source): uses-poetry-cli [pyproject.toml:3]
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/control.in b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/control.in
new file mode 100644
index 0000000..8c005aa
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/control.in
@@ -0,0 +1,16 @@
+Source: [% $source %]
+Priority: optional
+Section: mail
+Maintainer: [% $author %]
+Standards-Version: [% $standards_version %]
+Build-Depends: [% $build_depends %]
+Rules-Requires-Root: no
+
+Package: prog-[% $source %]
+Architecture: [% $package_architecture %]
+Depends: ${misc:Depends}, ${python3:Depends}
+Description: Package with Python script with bad shebang
+ This is a test package designed to exercise some feature or tag of
+ Lintian. It is part of the Lintian test suite and may do very odd
+ things. It should not be installed like a regular package. It may
+ be an empty package.
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/install b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/install
new file mode 100644
index 0000000..05e2b78
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/install
@@ -0,0 +1 @@
+debian/script-* /usr/bin
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/rules b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/rules
new file mode 100755
index 0000000..2d33f6a
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/rules
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+%:
+ dh $@
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad1 b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad1
new file mode 100644
index 0000000..013e4b7
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad1
@@ -0,0 +1 @@
+#!/usr/bin/python
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad2 b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad2
new file mode 100644
index 0000000..ee3ecd2
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-bad2
@@ -0,0 +1 @@
+#! /usr/bin/env python
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good1 b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good1
new file mode 100644
index 0000000..e5a0d9b
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good1
@@ -0,0 +1 @@
+#!/usr/bin/env python3
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good2 b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good2
new file mode 100644
index 0000000..a93a4bf
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/debian/script-good2
@@ -0,0 +1 @@
+#!/usr/bin/python3
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/fill-values b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/fill-values
new file mode 100644
index 0000000..20ac55b
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/build-spec/fill-values
@@ -0,0 +1,3 @@
+Skeleton: upload-native
+Testname: python-script-uses-unversioned-python-in-shebang
+Description: Check for unversioned python in shebang
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/desc b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/desc
new file mode 100644
index 0000000..e2c3be3
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/desc
@@ -0,0 +1,2 @@
+Testname: python-script-uses-unversioned-python-in-shebang
+Check: languages/python/scripts
diff --git a/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/hints b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/hints
new file mode 100644
index 0000000..15ce9d3
--- /dev/null
+++ b/t/recipes/checks/languages/python/scripts/python-script-uses-unversioned-python-in-shebang/eval/hints
@@ -0,0 +1,2 @@
+prog-python-script-uses-unversioned-python-in-shebang (binary): script-uses-unversioned-python-in-shebang [usr/bin/script-bad2]
+prog-python-script-uses-unversioned-python-in-shebang (binary): script-uses-unversioned-python-in-shebang [usr/bin/script-bad1]