mirror of https://github.com/chriskiehl/Gooey.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.7 KiB
58 lines
1.7 KiB
import unittest
|
|
|
|
from tests.harness import instrumentGooey
|
|
from gooey import GooeyParser
|
|
from gooey.tests import *
|
|
|
|
|
|
|
|
class TestListbox(unittest.TestCase):
|
|
|
|
def makeParser(self, **kwargs):
|
|
parser = GooeyParser(description='description')
|
|
parser.add_argument(
|
|
'--widget',
|
|
widget="Listbox",
|
|
nargs="*",
|
|
**kwargs)
|
|
return parser
|
|
|
|
def testInitialValue(self):
|
|
cases = [
|
|
# `initial` should supersede `default`
|
|
{'inputs': {'default': 'b',
|
|
'choices': ['a', 'b', 'c'],
|
|
'gooey_options': {'initial_value': 'a'}},
|
|
'expect': ['a']},
|
|
|
|
{'inputs': {'choices': ['a', 'b', 'c'],
|
|
'gooey_options': {'initial_value': 'a'}},
|
|
'expect': ['a']},
|
|
|
|
{'inputs': {'choices': ['a', 'b', 'c'],
|
|
'gooey_options': {'initial_value': ['a', 'c']}},
|
|
'expect': ['a', 'c']},
|
|
|
|
{'inputs': {'choices': ['a', 'b', 'c'],
|
|
'default': 'b',
|
|
'gooey_options': {}},
|
|
'expect': ['b']},
|
|
|
|
{'inputs': {'choices': ['a', 'b', 'c'],
|
|
'default': 'b'},
|
|
'expect': ['b']},
|
|
|
|
{'inputs': {'choices': ['a', 'b', 'c']},
|
|
'expect': []}
|
|
]
|
|
for case in cases:
|
|
with self.subTest(case):
|
|
parser = self.makeParser(**case['inputs'])
|
|
with instrumentGooey(parser) as (app, frame, gapp):
|
|
widget = gapp.getActiveConfig().reifiedWidgets[0]
|
|
self.assertEqual(widget.getValue()['rawValue'], case['expect'])
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|