[TIP] tox + py.test: test installed sdist

Alexander Steinert sputnik at termo.net
Thu Jul 7 00:35:04 PDT 2011

holger krekel, Wed 2011-07-06 17:11 CEST:
> > > Most people have their tests and package in subdirs.
> > > If you put test.py into a subdir, does it work?
> > 
> > No. I changed my example to be less minimal and more realistic (see
> > below).The result is the same. (Abs. path to) . is first in sys.path and
> > ./.tox/py26/lib/python2.6/site-packages is last.
> This results from your package/tests/__init__.py file which will
> lead py.test to add the parent dir of package to sys.path
> before importing it.  See the "Note" in this section:
>     http://doc.pytest.org/en/latest/goodpractises.html?highlight=good%20practises#choosing-a-test-layout-import-rules
> If you remove package/tests/__init__.py then your test will pass because
> only 'package/tests' is added to sys.path in order to import test_module.

YMMD! Much too long ago that I read that part of py.test's doc.

> > IMHO, tox should take care that, during tests, modules are imported from
> > the installed sdist. Imagine your setup.py is flaky, say you package
> > no/wrong data files. You would never see that when you run tox.

> I am not sure how tox could check that modules are imported from
> the installed sdist.  I agree, however, that it's too easy to
> test against the inlined package instead of the installed one :/

If I find time, I'll formulate and suggest a note for tox's doc.


More information about the testing-in-python mailing list