"John Machin" <[EMAIL PROTECTED]> writes: > Ben Finney wrote: > > Now that I've got it written as a Python module, I'd like to write > > unit tests for that module, which of course will need to import > > the program module to test it. The unit test can explicitly add > > the directory where the program module lives to 'sys.path' for the > > purpose of importing that module. > > If it can do that, it can copy the MUT to some temp directory, > adding .py to the end of the name of the new file, and put the temp > directory in sys.path .... can't it?
Sounds like a nasty hack (not that fiddling sys.path isn't a hack, but at least that one's addressed in Python 2.5 with relative and absolute imports). The problem with importing the program module from a file in a different directory is that the program won't be able to find its own relative modules. That leads to either *more* sys.path hackery, or importing from a temporary file in the *same* directory. Besides which, that's still two file names for the same module code. The whole point of testing is to know that I'm testing the same module; with a two-file shim, that's one step further away from that ideal. What you describe is possible, but leads to very smelly hacks. I'd like to see what other options there are. -- \ "It's not what you pay a man, but what he costs you that | `\ counts." -- Will Rogers | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list