I'm trying to use pytest (instead of unittest) to do unit testing for a
web2py app. I've written a script (attached: runtest.py) to launch py.test,
which then finds and executes my test files. I run this launcher script in
a web2py environment like this:
python ~/web/web2py/web2py.py -S paideia -M -R
applications/paideia/bin/runtest.py
The problem is that when I try to import gluon or any of my app's custom
modules (where the classes under test live) I get an import error.
This is particularly strange since my runtest.py explicitly adds the app
modules folder to sys.path (this is mostly cribbed from the testrunner.py
on web2py slices). But my grasp of the w2p environment and running
subprocesses is weak at best. (Case in point, testrunner.py passes
globals() to the test files using execfile(testfile, globals()) but I
haven't figured out yet how to get pytest to pick up those globals, since
it doesn't allow me to execute the test files directly.)
Any help is much appreciated. If we can get this working I think it would
be a help, since some of pytest's functions (e.g., parameterized fixtures
and automatic fixture clean-up) are pretty powerful.
--