[SciPy-dev] Making numpy test work in scikits

Matthieu Brucher matthieu.brucher at gmail.com
Fri Jul 20 03:34:55 EDT 2007


Hi,

I have to say that the fact that not all test_*.py are parsed for tests
annoys me in Numpy. If you want to test a file something.py, you have to
create a tests/test_something.py, you can't use an other name. And when you
want to test more than just a part of your code - like for the optimizers, I
want to test several modules together -, those tests are not part of the
test suite that Numpy creates.
Thus, I created a file that executes all test_*.py, but it cannot work with
setuptools.

But I thought that this worked (I think I've used it before) :

def test():
  from numpy.testing import NumpyTest
  return NumpyTest().test()

in the __init__.py of a module that must be tested, doesn't it ?

Matthieu

2007/7/20, David Cournapeau <david at ar.media.kyoto-u.ac.jp>:
>
> Hi,
>
>     I had a hard time to get the usual numpy tests working inside a
> scikits (because of setuptools): I wanted to keep the usual numpy tests
> infrastructure (each package has a tests directory where all the tests
> are), while being able to use them with python setup.py test. Below is a
> an quick explanation how I did it:
>
>     - foo/scikits/foo  -> this  is a typical "scipy package", in the
> sense that you can use the same layout for tests  as in a scipy package.
>     - foo/setup.py -> use the test_suite argument of the setup function,
> with the value "tester"
>     - foo/tester.py -> this defines a function additional_tests, which
> is supposed to return a unittest.TestSuite. I use NumpyTest to find all
> the tests in the package foo, and make a TestSuite from it; I had to use
> a private function, though, but maybe adding public API in numpy would
> be possible. The module tester boils down to this:
>
> from numpy.testing import NumpyTest
>
> def additional_tests():
>     # XXX: does this guarantee that the package is the one in the dev
> trunk, and
>     # not scikits.foo installed somewhere else ?
>     import scikits.foo
>     np = NumpyTest(scikits.foo)
>     return np._test_suite_from_all_tests(np.package, level = 1,
> verbosity = 1)
>
> With this, you can call all the tests with python setup.py test (which
> is the point of all this, actually), but:
>     - I don't know much about unittest, though, so this may be not ideal
> but is the only way I found to make is work without touching anything
> else than the setup.py file.
>     - There may be a way to make this a bit more automatic (I don't like
> the fact that I have to give the name of the package in
> additional_tests, for example)
>     - I didn't find a way to give argumements for tests in command line
> (setuptools does not seem to support it for the test command).
>
>     cheers,
>
>     David
> _______________________________________________
> Scipy-dev mailing list
> Scipy-dev at scipy.org
> http://projects.scipy.org/mailman/listinfo/scipy-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20070720/e6e737dc/attachment.html>


More information about the SciPy-Dev mailing list