Revision: 2353
Author: pekka.klarck
Date: Thu Oct 22 05:58:58 2009
Log: di
http://code.google.com/p/robotframework/source/detail?r=2353
Modified:
/trunk/src/robot/utils/argumentparser.py
/trunk/utest/utils/test_argumentparser.py
=======================================
--- /trunk/src/robot/utils/argumentparser.py Sun Apr 19 13:26:54 2009
+++ /trunk/src/robot/utils/argumentparser.py Thu Oct 22 05:58:58 2009
@@ -143,13 +143,21 @@
return opts, args
def _parse_args(self, args):
- args = [ a.startswith('--') and a.lower() or a for a in args ]
+ args = [ self._lowercase_long_option(a) for a in args ]
try:
opts, args = getopt.getopt(args, self._short_opts,
self._long_opts)
except getopt.GetoptError, err:
raise DataError(err)
return self._process_opts(opts), self._glob_args(args)
+ def _lowercase_long_option(self, opt):
+ if not opt.startswith('--'):
+ return opt
+ if '=' not in opt:
+ return opt.lower()
+ opt, value = opt.split('=', 1)
+ return '%s=%s' % (opt.lower(), value)
+
def _check_args(self, args):
if not self._arg_limits:
raise FrameworkError('No argument information specified.')
=======================================
--- /trunk/utest/utils/test_argumentparser.py Wed Nov 26 03:43:54 2008
+++ /trunk/utest/utils/test_argumentparser.py Thu Oct 22 05:58:58 2009
@@ -133,6 +133,17 @@
opts, args = self.ap.parse_args(inargs.split())
assert_equals(opts['name'], 'Bar')
assert_equals(args, ['arg'])
+
+ def test_case_insensitive_long_options(self):
+ opts, args = self.ap.parse_args('--EsCape X:y --HELP arg'.split())
+ assert_equals(opts['escape'], ['X:y'])
+ assert_equals(opts['help'], True)
+ assert_equals(args, ['arg'])
+
+ def test_case_insensitive_long_options_with_equal_sign(self):
+ opts, args = self.ap.parse_args('--EsCape=X:y --escAPE=ZZ'.split())
+ assert_equals(opts['escape'], ['X:y', 'ZZ'])
+ assert_equals(args, [])
def test_non_ascii_chars(self):
ap = ArgumentParser(USAGE2)