mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-25 19:21:35 +01:00
cli_function: bool default=True is saner now, leaves negation to --no-
This commit is contained in:
@@ -41,10 +41,7 @@ class _Argument:
|
|||||||
self.kwargs['dest'] = dest
|
self.kwargs['dest'] = dest
|
||||||
if nargs is not None:
|
if nargs is not None:
|
||||||
self.kwargs['nargs'] = nargs
|
self.kwargs['nargs'] = nargs
|
||||||
if default is True:
|
if default is True or default is False:
|
||||||
bool_action = 'store_false'
|
|
||||||
self.is_bool = True
|
|
||||||
elif default is False:
|
|
||||||
bool_action = 'store_true'
|
bool_action = 'store_true'
|
||||||
self.is_bool = True
|
self.is_bool = True
|
||||||
else:
|
else:
|
||||||
@@ -228,9 +225,7 @@ class CliFunction:
|
|||||||
new_longname = '--no' + argument.longname[1:]
|
new_longname = '--no' + argument.longname[1:]
|
||||||
kwargs = argument.kwargs.copy()
|
kwargs = argument.kwargs.copy()
|
||||||
kwargs['default'] = not argument.default
|
kwargs['default'] = not argument.default
|
||||||
if kwargs['action'] == 'store_false':
|
if kwargs['action'] in ('store_true', 'store_false'):
|
||||||
kwargs['action'] = 'store_true'
|
|
||||||
elif kwargs['action'] == 'store_true':
|
|
||||||
kwargs['action'] = 'store_false'
|
kwargs['action'] = 'store_false'
|
||||||
if 'help' in kwargs:
|
if 'help' in kwargs:
|
||||||
del kwargs['help']
|
del kwargs['help']
|
||||||
@@ -319,7 +314,8 @@ amazing function!
|
|||||||
)
|
)
|
||||||
self.add_argument('-a', '--asdf', default='A', help='Help for asdf'),
|
self.add_argument('-a', '--asdf', default='A', help='Help for asdf'),
|
||||||
self.add_argument('-q', '--qwer', default='Q', help='Help for qwer'),
|
self.add_argument('-q', '--qwer', default='Q', help='Help for qwer'),
|
||||||
self.add_argument('-b', '--bool', default=True, help='Help for bool'),
|
self.add_argument('-b', '--bool-true', default=True, help='Help for bool-true'),
|
||||||
|
self.add_argument('--bool-false', default=False, help='Help for bool-false'),
|
||||||
self.add_argument('--dest', dest='custom_dest', help='Help for dest'),
|
self.add_argument('--dest', dest='custom_dest', help='Help for dest'),
|
||||||
self.add_argument('--bool-cli', default=False, help='Help for bool'),
|
self.add_argument('--bool-cli', default=False, help='Help for bool'),
|
||||||
self.add_argument('--bool-nargs', default=False, nargs='?', action='store', const='')
|
self.add_argument('--bool-nargs', default=False, nargs='?', action='store', const='')
|
||||||
@@ -339,7 +335,8 @@ amazing function!
|
|||||||
assert default == {
|
assert default == {
|
||||||
'asdf': 'A',
|
'asdf': 'A',
|
||||||
'qwer': 'Q',
|
'qwer': 'Q',
|
||||||
'bool': True,
|
'bool_true': True,
|
||||||
|
'bool_false': False,
|
||||||
'bool_nargs': False,
|
'bool_nargs': False,
|
||||||
'bool_cli': True,
|
'bool_cli': True,
|
||||||
'custom_dest': None,
|
'custom_dest': None,
|
||||||
@@ -368,12 +365,20 @@ amazing function!
|
|||||||
out['qwer'] = default['qwer']
|
out['qwer'] = default['qwer']
|
||||||
assert out == default
|
assert out == default
|
||||||
|
|
||||||
if '--bool':
|
if '--bool-true':
|
||||||
out = one_cli_function(pos_mandatory=1, bool=False)
|
out = one_cli_function(pos_mandatory=1, bool_true=False)
|
||||||
cli_out = one_cli_function.cli(['--bool', '1'])
|
cli_out = one_cli_function.cli(['--no-bool-true', '1'])
|
||||||
assert out == cli_out
|
assert out == cli_out
|
||||||
assert out['bool'] == False
|
assert out['bool_true'] == False
|
||||||
out['bool'] = default['bool']
|
out['bool_true'] = default['bool_true']
|
||||||
|
assert out == default
|
||||||
|
|
||||||
|
if '--bool-false':
|
||||||
|
out = one_cli_function(pos_mandatory=1, bool_false=True)
|
||||||
|
cli_out = one_cli_function.cli(['--bool-false', '1'])
|
||||||
|
assert out == cli_out
|
||||||
|
assert out['bool_false'] == True
|
||||||
|
out['bool_false'] = default['bool_false']
|
||||||
assert out == default
|
assert out == default
|
||||||
|
|
||||||
if '--bool-nargs':
|
if '--bool-nargs':
|
||||||
@@ -428,7 +433,7 @@ amazing function!
|
|||||||
# get_cli
|
# get_cli
|
||||||
assert one_cli_function.get_cli(pos_mandatory=1, asdf='B') == [('--asdf', 'B'), ('--bool-cli',), ('1',)]
|
assert one_cli_function.get_cli(pos_mandatory=1, asdf='B') == [('--asdf', 'B'), ('--bool-cli',), ('1',)]
|
||||||
assert one_cli_function.get_cli(pos_mandatory=1, asdf='B', qwer='R') == [('--asdf', 'B'), ('--bool-cli',), ('--qwer', 'R'), ('1',)]
|
assert one_cli_function.get_cli(pos_mandatory=1, asdf='B', qwer='R') == [('--asdf', 'B'), ('--bool-cli',), ('--qwer', 'R'), ('1',)]
|
||||||
assert one_cli_function.get_cli(pos_mandatory=1, bool=False) == [('--bool',), ('--bool-cli',), ('1',)]
|
assert one_cli_function.get_cli(pos_mandatory=1, bool_true=False) == [('--bool-cli',), ('--bool-true',), ('1',)]
|
||||||
assert one_cli_function.get_cli(pos_mandatory=1, pos_optional=2, args_star=['asdf', 'qwer']) == [('--bool-cli',), ('1',), ('2',), ('asdf',), ('qwer',)]
|
assert one_cli_function.get_cli(pos_mandatory=1, pos_optional=2, args_star=['asdf', 'qwer']) == [('--bool-cli',), ('1',), ('2',), ('asdf',), ('qwer',)]
|
||||||
assert one_cli_function.get_cli(pos_mandatory=1, append=['2', '3']) == [('--append', '2'), ('--append', '3',), ('--bool-cli',), ('1',)]
|
assert one_cli_function.get_cli(pos_mandatory=1, append=['2', '3']) == [('--append', '2'), ('--append', '3',), ('--bool-cli',), ('1',)]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user