@@ -214,6 +214,23 @@ def test_option_candidates_ignore_untransformed_kwargs(self): self.assertEqual(options, ["--max-count"])
Show 5 hidden lines
+ def test_option_candidates_include_split_single_char_option_values(self):+ cases = [+ ({"n": "--upload-pack=helper"}, ["-n", "--upload-pack=helper"], ["--upload-pack"]),+ ({"g": ("safe", "--out=target")}, ["-g", "--out=target"], ["--output"]),+ ]
++ for kwargs, candidates, unsafe_options in cases:+ self.assertEqual(Git._option_candidates(kwargs=kwargs), candidates)+ with self.assertRaises(UnsafeOptionError):+ Git.check_unsafe_options(options=candidates, unsafe_options=unsafe_options)++ self.assertEqual(self.git.transform_kwargs(n="--upload-pack=helper"), ["-n", "--upload-pack=helper"])++ unsplit_kwargs = {"n": "--upload-pack=helper", "split_single_char_options": False}+ self.assertEqual(self.git.transform_kwargs(**unsplit_kwargs), ["-n--upload-pack=helper"])+ self.assertEqual(Git._option_candidates(kwargs=unsplit_kwargs), ["-n"])+
Show 3 hidden lines
_shell_cases = ( # value_in_call, value_from_class, expected_popen_arg (None, False, False),
Asserts that split one-character option values appear as candidates and are rejected when checked against forbidden option lists, while recording that unsplit values collapse into a single joined token whose candidate list holds only the bare flag.