Fix issue with parameters being False values
This commit is contained in:
parent
bb0f8dfb0f
commit
044094627f
|
@ -17,6 +17,10 @@ __all__ = [
|
|||
_PY2 = bool(sys.version_info[0] == 2)
|
||||
|
||||
|
||||
class _NotFound(object):
|
||||
pass
|
||||
|
||||
|
||||
_cached_argspecs = {}
|
||||
def get_argspec(func):
|
||||
try:
|
||||
|
@ -77,12 +81,12 @@ def remove_argspec_params_from_params(func, params, remainder):
|
|||
remainder = list(remainder)
|
||||
remainder_len = len(remainder)
|
||||
for i, var in enumerate(required_vars):
|
||||
val = params.get(var, None)
|
||||
if i < remainder_len and val:
|
||||
remainder[i] = val
|
||||
elif val:
|
||||
remainder.append(val)
|
||||
if val:
|
||||
val = params.get(var, _NotFound)
|
||||
if val is not _NotFound:
|
||||
if i < remainder_len:
|
||||
remainder[i] = val
|
||||
else:
|
||||
remainder.append(val)
|
||||
del params[var]
|
||||
|
||||
# remove the optional positional variables (remainder) from the named parameters
|
||||
|
|
|
@ -37,6 +37,12 @@ def test_remove_argspec_params_from_params_none_remainder():
|
|||
assert params == {'a': 1, 'b': 2}, params
|
||||
assert remainder == None, repr(remainder)
|
||||
|
||||
def test_remove_argspec_params_from_params_none_param():
|
||||
params, remainder = remove_argspec_params_from_params(mock_f, {'b':None}, [3, 3])
|
||||
assert params == {}, params
|
||||
assert remainder == (3, None), repr(remainder)
|
||||
|
||||
|
||||
def mock_f2(self, a, b):
|
||||
pass
|
||||
|
||||
|
@ -212,4 +218,4 @@ def test_path_translation():
|
|||
assert translated == 'a_b', translated
|
||||
|
||||
translated = default_path_translator(u('f.ö.ö'))
|
||||
assert translated == u('f_ö_ö'), translated
|
||||
assert translated == u('f_ö_ö'), translated
|
||||
|
|
Loading…
Reference in New Issue