[Python-Dev] unittest argv
Guido van Rossum
guido at python.org
Mon May 1 16:48:04 CEST 2006
Wouldn't this be an incompatible change? That would make it a no-no.
Providing a dummy argv[0] isn't so hard is it?
On 4/30/06, John Keyes <john at integralsource.com> wrote:
> Hi,
>
> main() in unittest has an optional parameter called argv. If it is not
> present in the invocation, it defaults to None. Later in the function
> a check is made to see if argv is None and if so sets it to sys.argv.
> I think the default should be changed to sys.argv[1:] (i.e. the
> command line arguments minus the name of the python file
> being executed).
>
> The parseArgs() function then uses getopt to parse argv. It currently
> ignores the first item in the argv list, but this causes a problem when
> it is called from another python function and not from the command
> line. So using the current code if I call:
>
> python mytest.py -v
>
> then argv in parseArgs is ['mytest.py', '-v']
>
> But, if I call:
>
> unittest.main(module=None, argv=['-v','mytest'])
>
> then argv in parseArgs is ['mytest'], as you can see the verbosity option is
> now gone and cannot be used.
>
> Here's a diff to show the code changes I have made:
>
> 744c744
> < argv=None, testRunner=None, testLoader=defaultTestLoader):
> ---
> > argv=sys.argv[1:], testRunner=None, testLoader=defaultTestLoader):
> 751,752d750
> < if argv is None:
> < argv = sys.argv
> 757c755
> < self.progName = os.path.basename(argv[0])
> ---
> > # self.progName = os.path.basename(argv[0])
> 769c767
> < options, args = getopt.getopt(argv[1:], 'hHvq',
> ---
> > options, args = getopt.getopt(argv, 'hHvq',
>
> You may notice I have commented out the self.progName line. This variable
> is not used anywhere in the module so I guess it could be removed. To
> keep it then conditional check on argv would have to remain and be moved after
> the self.progName line.
>
> I hope this makes sense, and it's my first post so go easy on me ;)
>
> Thanks,
> -John K
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/guido%40python.org
>
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list