I have a unittest testfile like this:
----------------------- test_mod.py ---------------------
import sys
sys.path.append('..')
import unittest
import mod
class Test_rmlutils(unittest.TestCase):
def testNormalCase(self):
self.assertEqual(....
if __name__ == '__main__':
unittest.main()
---------------------------------------------------------
It is exactly the same as example 17-2 in "Python in a
Nutshell" (PiaN), except for the first two lines. To
quote PiaN:
"...name the test module...with a prefix such as 'test_',
and put it in a subdirectory named 'test' of the directory
where you keep the sources."
PiaN did not mention the ugly sys.path.append('..') trick
I had to use when following its advice. I need to use it
because mod.py is in the directory above the 'test'
directory.
To run a test from the source directory I have to change
to the 'test' directory and run test_mod.py there from the
commandline. Okay, I can do that from a batchfile:
----------------------- test.bat ------------------------
cd test
test_mod.py
cd ..
---------------------------------------------------------
But: I would like to get rid of the need for
sys.append('..') and I don't see a nice way to do that, do
you? Maybe something from a Python script instead of a
DOS script...I am thinking about importing sys there and
then doing some advanced unittest function like
'runsuite(blah, foo)' but I am still reading the unittest
docs and there must be somebody who did this before?
I guess the author of PiaN does not use a 'test' subdirectory
himself, as it is now the example 17-2 does only work in the
source directory.