diff --git a/git/cmd.py b/git/cmd.py index 54537a41d..da69241e7 100644 --- a/git/cmd.py +++ b/git/cmd.py @@ -885,7 +885,7 @@ def transform_kwarg(self, name, value, split_single_char_options): if len(name) == 1: if value is True: return ["-%s" % name] - elif type(value) is not bool: + elif value not in (False, None): if split_single_char_options: return ["-%s" % name, "%s" % value] else: @@ -893,7 +893,7 @@ def transform_kwarg(self, name, value, split_single_char_options): else: if value is True: return ["--%s" % dashify(name)] - elif type(value) is not bool: + elif value not in (False, None): return ["--%s=%s" % (dashify(name), value)] return [] diff --git a/git/test/test_git.py b/git/test/test_git.py index c6180f7c9..60d3d53c3 100644 --- a/git/test/test_git.py +++ b/git/test/test_git.py @@ -81,13 +81,15 @@ def test_it_raises_errors(self): def test_it_transforms_kwargs_into_git_command_arguments(self): assert_equal(["-s"], self.git.transform_kwargs(**{'s': True})) assert_equal(["-s", "5"], self.git.transform_kwargs(**{'s': 5})) + assert_equal([], self.git.transform_kwargs(**{'s': None})) assert_equal(["--max-count"], self.git.transform_kwargs(**{'max_count': True})) assert_equal(["--max-count=5"], self.git.transform_kwargs(**{'max_count': 5})) + assert_equal([], self.git.transform_kwargs(**{'max_count': None})) # Multiple args are supported by using lists/tuples assert_equal(["-L", "1-3", "-L", "12-18"], self.git.transform_kwargs(**{'L': ('1-3', '12-18')})) - assert_equal(["-C", "-C"], self.git.transform_kwargs(**{'C': [True, True]})) + assert_equal(["-C", "-C"], self.git.transform_kwargs(**{'C': [True, True, None, False]})) # order is undefined res = self.git.transform_kwargs(**{'s': True, 't': True})