Browse Source

closes #469 - prevent argparse ==SUPPRESS== from showing in Gooey

1.0.4-release-candidate
Chris 4 years ago
parent
commit
47c2c1f40c
3 changed files with 19 additions and 1 deletions
  1. 2
      gooey/python_bindings/argparse_to_json.py
  2. 3
      gooey/tests/harness.py
  3. 15
      gooey/tests/test_argparse_to_json.py

2
gooey/python_bindings/argparse_to_json.py

@ -403,6 +403,8 @@ def action_to_json(action, widget, options):
})
default = coerce_default(action.default, widget)
if default == argparse.SUPPRESS:
default = None
return {
'id': action.option_strings[0] if action.option_strings else action.dest,

3
gooey/tests/harness.py

@ -20,4 +20,5 @@ def instrumentGooey(parser, **kwargs):
yield (app, gooey)
finally:
wx.CallAfter(app.ExitMainLoop)
app.Destroy()
gooey.Destroy()
app.Destroy()

15
gooey/tests/test_argparse_to_json.py

@ -1,3 +1,4 @@
import argparse
import sys
import unittest
from argparse import ArgumentParser
@ -138,3 +139,17 @@ class TestArgparse(unittest.TestCase):
self.assertEqual(result, None)
def test_suppress_is_removed_as_default_value(self):
"""
Issue #469
Argparse uses the literal string ==SUPPRESS== as an internal flag.
When encountered in Gooey, these should be dropped and mapped to `None`.
"""
parser = ArgumentParser(prog='test_program')
parser.add_argument("--foo", default=argparse.SUPPRESS)
parser.add_argument('--version', action='version', version='1.0')
result = argparse_to_json.convert(parser, num_required_cols=2, num_optional_cols=2)
groups = getin(result, ['widgets', 'test_program', 'contents'])
for item in groups[0]['items']:
self.assertEqual(getin(item, ['data', 'default']), None)
Loading…
Cancel
Save