my module and unittest contend over commandline options...

2008-05-01 Thread chrisber
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...

2008-05-02 Thread chrisber
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