Re: Questions about including tests/ directory into package
> packages=find_packages("src"), > > Setuptools will only find "tinyalign" under the "src" folder, as a > python module to package, which is why that's the only thing that is > going to be packaged. > > IMO, the best approach to this problem is to convince upstream to move > their tests folder into the Python package folder. Best is even to make > upstream get rid of the "src" folder, rename that one "tinyalign" and > put the tests folder in it. In other words, make upstream do: that's not correct: the "src" directory is a very well know best-practice (you can google for it, if you need references), intended to avoid situations where "import mymodule" will have inconsistent results depending on where you run that command and easy of testing. -- Sandro "morph" Tosi My website: http://sandrotosi.me/ Me at Debian: http://wiki.debian.org/SandroTosi Twitter: https://twitter.com/sandrotosi
Re: Questions about including tests/ directory into package
On 3/19/20 7:22 AM, Sao I Kuan wrote: > Hi, > > I'm newcomer to Debian packaging, and trying to add the autopkgtest > test script into python-tinyalign[1]. > > [1] https://salsa.debian.org/med-team/python-tinyalign > > And now I'm facing a (maybe simple) problem. > > The upstream test files are located in tests/ directory, but seems > this directory is excluded during packaging. > I have no idea how to include this tests/ directory. > > 1. Please let me know is there any variable for including the specific > file/directory. > 2. Why and when the tests/ directory excluded? I tried to find the > logic in dh-python [2], but failed. > > [2] https://salsa.debian.org/python-team/tools/dh-python > > 3. Is this a correct approach for including the excluded test materials? > > Always appreciates. > > Sincerely, > > Sao I Kuan > saoik...@gmail.com Hi, Ah... how much I hate python and setuptools for being so liberal and let every developer design its own thing... we end up with no standard, one having to read setup.py, know all the internals of setuptools, and this thread is one more collateral of that. :/ For this specific package, what's being packaged is what's found by setup.py. In that file, you can see: packages=find_packages("src"), Setuptools will only find "tinyalign" under the "src" folder, as a python module to package, which is why that's the only thing that is going to be packaged. IMO, the best approach to this problem is to convince upstream to move their tests folder into the Python package folder. Best is even to make upstream get rid of the "src" folder, rename that one "tinyalign" and put the tests folder in it. In other words, make upstream do: mv src/tinyalign . rmdir src mv tests tinyalign sed -i 's/packages=.*/packages=["tinyalign"],/' setup.py Cheers, Thomas Goirand (zigo)
Re: Questions about including tests/ directory into package
On Fri, Mar 20, 2020 at 2:38 AM Diane Trout wrote: > The way I solved that problem in a similar package was this > > Test-Command: set -e > ; for py in $(py3versions -r 2>/dev/null) > ; do cd tests > ; echo "Testing with $py in $(pwd):" > ; http_proxy= $py -m pytest -v --pyargs > ; done > Depends: @, python3-all, python3-pytest > > The goal of autopkgtests is to test the installed package, when > autopkgtest starts running it defaults to starting in the extracted > copy of the source package. > > The goal is to make sure you test the copy in /usr/lib/python*/dist- > packages. So I assumed if cd-ed into the tests directory the package > source module wouldn't be available to the test runner. > > I did make the assumption that none of the tests messed with the python > path to look in the parent directory... Thanks, Diane. I tried with your given example, it really helped. A lot of appreciates. Thanks for your kind and deep explanation. Sincerely, Sao I Kuan saoik...@gmail.com
Re: Questions about including tests/ directory into package
On Thu, 2020-03-19 at 15:22 +0900, Sao I Kuan wrote: > Hi, > > I'm newcomer to Debian packaging, and trying to add the autopkgtest > test script into python-tinyalign[1]. > > [1] https://salsa.debian.org/med-team/python-tinyalign > > And now I'm facing a (maybe simple) problem. > > The upstream test files are located in tests/ directory, but seems > this directory is excluded during packaging. > I have no idea how to include this tests/ directory. The way I solved that problem in a similar package was this Test-Command: set -e ; for py in $(py3versions -r 2>/dev/null) ; do cd tests ; echo "Testing with $py in $(pwd):" ; http_proxy= $py -m pytest -v --pyargs ; done Depends: @, python3-all, python3-pytest The goal of autopkgtests is to test the installed package, when autopkgtest starts running it defaults to starting in the extracted copy of the source package. The goal is to make sure you test the copy in /usr/lib/python*/dist- packages. So I assumed if cd-ed into the tests directory the package source module wouldn't be available to the test runner. I did make the assumption that none of the tests messed with the python path to look in the parent directory... If that's a problem, maybe copy the contents of tests/ to $AUTOPKGTEST_TMP and run the tests there. Hope that helps, Diane
Questions about including tests/ directory into package
Hi, I'm newcomer to Debian packaging, and trying to add the autopkgtest test script into python-tinyalign[1]. [1] https://salsa.debian.org/med-team/python-tinyalign And now I'm facing a (maybe simple) problem. The upstream test files are located in tests/ directory, but seems this directory is excluded during packaging. I have no idea how to include this tests/ directory. 1. Please let me know is there any variable for including the specific file/directory. 2. Why and when the tests/ directory excluded? I tried to find the logic in dh-python [2], but failed. [2] https://salsa.debian.org/python-team/tools/dh-python 3. Is this a correct approach for including the excluded test materials? Always appreciates. Sincerely, Sao I Kuan saoik...@gmail.com