my module and unittest contend over commandline options...
using the unittest module in Python 2.3.5, I've written some test code that ends up with if __name__ == "__main__": unittest.main() Since I want to run this code in various environments, I'd initially added some commandline options, e.g. to specify a configuration file like so test.py -c devtest.conf or test.py -c localtest.conf etc. However, unittest also looks for options on the commandline, and it was complaining about unrecognized options and quitting. I've poked around to see if I could delete the options my earlier code consumed from the commandline buffer, before invoking unittest, but that seems klugy. Instead, I hardwired in a testing config file name, that always has to be local. That works pretty well, but it leaves me wonderfing whether there would have been another clean way to allow both my test code and unittest to have options without interfering with one another. -- http://mail.python.org/mailman/listinfo/python-list
Re: my module and unittest contend over commandline options...
On May 2, 4:54 am, Duncan Booth <[EMAIL PROTECTED]> wrote:
> chrisber<[EMAIL PROTECTED]> wrote:
> > ...it leaves me
> > wonderfing whether there would have been another clean way to allow
> > both my test code and unittest to have options without interfering
> > with one another.
>
> You can pass argv as a parameter to main(), so I think the best bet is
> simply to build up a new argv with the options that you want to pass
> through.
Aha! I scanned through my python 2.4 installataion and found this in
unittest
def __init__(self, module='__main__', defaultTest=None,
argv=None, testRunner=None,
testLoader=defaultTestLoader):
if type(module) == type(''):
self.module = __import__(module)
for part in module.split('.')[1:]:
self.module = getattr(self.module, part)
else:
self.module = module
if argv is None:
argv = sys.argv
so I see what you mean. Thanks.
--
http://mail.python.org/mailman/listinfo/python-list
