fix defaults handling in apply_argspec
This commit is contained in:
parent
9e48e440e8
commit
bf9e7520f7
2 changed files with 9 additions and 1 deletions
|
|
@ -122,7 +122,7 @@ def apply_argspec(argspec, args, kwargs=None):
|
|||
else:
|
||||
data[f_varkw][arg] = kwargs[arg]
|
||||
if f_defaults:
|
||||
for arg, val in f_defaults:
|
||||
for arg, val in zip(f_args[-len(f_defaults):], f_defaults):
|
||||
data.setdefault(arg, val)
|
||||
for n, arg in enumerate(f_args):
|
||||
if arg not in data:
|
||||
|
|
|
|||
|
|
@ -64,6 +64,14 @@ class ArgspecCase(unittest.TestCase):
|
|||
self.assertRaises(koji.ParameterError, koji.tasks.apply_argspec,
|
||||
argspec, (1,2), {'b':2} )
|
||||
|
||||
# with defaults
|
||||
argspec = (['a', 'b'], None, None, [1,2])
|
||||
ret = koji.tasks.apply_argspec(argspec, (), {})
|
||||
self.assertEqual(ret, {'a':1, 'b':2})
|
||||
argspec = (['a', 'b'], None, None, [2])
|
||||
ret = koji.tasks.apply_argspec(argspec, (1,), {})
|
||||
self.assertEqual(ret, {'a':1, 'b':2})
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue