Re: [Distutils] unpacking files from and egg only for testing

[brought back on-list (forgot/didn't notice this list doesn't set Reply-To)] On 5/13/07, Alexander Schmolck <a.schmolck@gmail.com> wrote:
[did you send this off-list on purpose?] "Alexander Michael" <lxander.m@gmail.com> writes:
I don't think setuptools/pkg_resources/eggs are designed to handle running tests like this after (end-user) installation. There is support for running unittests during development as part of package building. Does the end user *need* to run these tests to determine the correct package configuration for their machine?
No.
If not, you should probably wrap up the tests into a test suite and use the setuptools test functionality (<http://peak.telecommunity.com/DevCenter/setuptools#test-build-package-and-ru...>)
I do have a unitest test suite, and I'm also using the test_suite option. However that test suite needs to place several, exiting .m files into tempdir (and tell matlab about their whereabouts in order to run all the tests, but telling matlab is easy). I still don't see a good way do conditionally extract stuff from the egg for testing (I don't think ``test_suite`` does that, unless I'm missing something). I could obviously encode all these files as a python string in the testmodule and then create them manually in the tempdir or something similarly horrible -- sort of like a shell archive, but that strikes me as suboptimal.
We're getting out of my depth here. But it is my understanding that the test command adds the source directory to the sys.path, so that you could acquire undeclared data files the old-fashioned way (i.e. os.path.join(mypackage.__path__, 'test-mex.c'), although you might be able to use pkg_resources which is cleaner. Your test would copy the test data to a tempdir, do its thing, check the result, and clean-up.
along with tempfile (<http://docs.python.org/lib/module-tempfile.html>), otherwise I don't think (but could have missed something) that eggs support running arbitrary code at install time to do such configuration (hence Enthought's postinstall extensions). If the latter, perhaps someone else can be of more help.
participants (1)
-
Alexander Michael