On Tue, 2007-02-27 at 09:37 +0000, Gary S. Thompson wrote:
> Edward d'Auvergne wrote:
>
> >> > P.S. We still need to solve the problem of the relax module search
> >> > path being missing when running individual unit tests.
> >> >
> >> Not a problem! The script unit_test_runner.py tmunges the class path
> >> before unit tests are run so that the relax directory is in the
> >> pythonpath
> >>
> >> # add UnitTestDirectory to python path
> >> backup_python_path = sys.path[:]
> >> #sys.path.insert(1,unit_test_directory)
> >>
> >> # add SystemDirectory to python path
> >> sys.path.pop(0)
> >> sys.path.insert(0,system_directory)
> >
> >
> > I wouldn't consider adding directories to 'sys.path' to be munging.
> > I've used a slightly different approach for the running of the
> > diffusion tensor data structure unit tests so that these can be run by
> > themselves. The file is
> > 'test_suite/unit_tests/data/test_diff_tensor.py' and the code I have
> > used is (excluding the required import statements):
> >
> > # Modify the system path so that the relax modules can be imported
> > (for stand alone execution).
> > path_comps = split(path[0], sep)
> > relax_path = sep + join(*path_comps[0:-3])
> > path.append(relax_path)
> >
> > This simple code allows me to run these unit tests by themselves from
> > anywhere - which is very useful for debugging as the entire unit test
> > suite can be avoided. It would probably be worth either having this
> > code (or similar) at the start of each unit test module. Or we could
> > have the code spun out into it's own file and then imported by each
> > unit test module. What do you think?
> >
> > Cheers,
> >
> > Edward
> >
> > .
> >
> Hi ed
> You shouldn't need to do this path munging on a per test basis just
> run unit_test_runner against a particular unit_test.py file or a
> directory of unit tests and everyting should work
>
> e.g.
>
> ./unit_test_runner.py data/test_diff_tensor.py
>
> or in unit_tests
> ./unit_test_runner.py .
>
>
> the unit test runner should do all the munging finding and loading for you
An alternative would be nice, which would use Gary's unit_test_runner
infrastructure but retain the convention that unit test modules can be
run with the simple command line syntax:
python ./test_my_function.py
Something like:
if __name__ == "__main__":
from unit_test_runner import Run_unit_tests
runner = Run_unit_tests(test_module=__file__, verbose=True)
runner.run()
at the bottom of each unit test module should do it.
Chris
>
>
> regards
> gary
>
> regards
> gary
>
>
>
>
_______________________________________________
relax (http://nmr-relax.com)
This is the relax-devel mailing list
[email protected]
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel