|
|
@ -31,19 +31,31 @@ class TestArgparse(unittest.TestCase): |
|
|
|
""" |
|
|
|
# our original functionality accepted only lists as the choices arg |
|
|
|
parser = ArgumentParser() |
|
|
|
parser.add_argument("-foo", choices=[1, 2, 3]) |
|
|
|
parser.add_argument("-foo", choices=['foo','bar', 'baz']) |
|
|
|
result = argparse_to_json.action_to_json(parser._actions[-1], "Dropdown", {}) |
|
|
|
|
|
|
|
choices = result['data']['choices'] |
|
|
|
self.assertTrue(isinstance(choices, list)) |
|
|
|
self.assertEqual(choices, [1, 2, 3]) |
|
|
|
self.assertEqual(choices, ['foo','bar', 'baz']) |
|
|
|
|
|
|
|
# Now we allow tuples as well. |
|
|
|
parser = ArgumentParser() |
|
|
|
parser.add_argument("-foo", choices=(1, 2, 3)) |
|
|
|
parser.add_argument("-foo", choices=('foo','bar', 'baz')) |
|
|
|
result = argparse_to_json.action_to_json(parser._actions[-1], "Dropdown", {}) |
|
|
|
|
|
|
|
choices = result['data']['choices'] |
|
|
|
self.assertTrue(isinstance(choices, list)) |
|
|
|
self.assertEqual(choices, [1, 2, 3]) |
|
|
|
self.assertEqual(choices, ['foo','bar', 'baz']) |
|
|
|
|
|
|
|
|
|
|
|
def test_choice_string_cooersion(self): |
|
|
|
""" |
|
|
|
Issue 321 - must coerce choice types to string to support wx.ComboBox |
|
|
|
""" |
|
|
|
parser = ArgumentParser() |
|
|
|
parser.add_argument('--foo', choices=[1, 2, 3]) |
|
|
|
choice_action = parser._actions[-1] |
|
|
|
result = argparse_to_json.action_to_json(choice_action, 'Dropdown', {}) |
|
|
|
self.assertEqual(getin(result, ['data', 'choices']), ['1', '2', '3']) |
|
|
|
|
|
|
|
|