diff --git a/plugins/filter/shell_args.py b/plugins/filter/shell_args.py index d0dd391..4c063bd 100644 --- a/plugins/filter/shell_args.py +++ b/plugins/filter/shell_args.py @@ -34,9 +34,10 @@ class FilterModule(object): arg = [arg] return_value = [] for a in arg: - val = quote(a) - if parameter: - return_value.append("{} {}".format(parameter, val)) - else: - return_value.append(val) + if a: + val = quote(a) + if parameter: + return_value.append("{} {}".format(parameter, val)) + else: + return_value.append(val) return ' '.join(return_value) diff --git a/tests/plugins/filter/test_shell_args.py b/tests/plugins/filter/test_shell_args.py index bc141ce..2b7fb61 100644 --- a/tests/plugins/filter/test_shell_args.py +++ b/tests/plugins/filter/test_shell_args.py @@ -53,3 +53,9 @@ class TestShellArgsFilters(tests_base.TestCase): expected = "'a b'" self.assertEqual(expected, self.filter.shell_arg_list(arg)) + + def test_shell_arg_list_avoid_none_in_list(self): + arg = ['a', None] + expected = '-p a' + self.assertEqual(expected, + self.filter.shell_arg_list(arg, parameter='-p'))