|
|
import unittest from collections import namedtuple
from tests.harness import instrumentGooey from gooey import GooeyParser from gooey.tests import *
Case = namedtuple('Case', 'inputs initialExpected')
class TestCommonProperties(unittest.TestCase): """
Test options and functionality common across all widgets. """
def makeParser(self, **kwargs): parser = GooeyParser(description='description') parser.add_argument('--widget', **kwargs) return parser
def testInitialValue(self): widgets = ['ColourChooser', 'CommandField', 'DateChooser', 'DirChooser', 'FileChooser', 'FileSaver', 'FilterableDropdown', 'MultiDirChooser', 'MultiFileChooser', 'PasswordField', 'TextField', 'Textarea', 'TimeChooser']
cases = [ # initial_value supersedes, default Case( {'default': 'default', 'gooey_options': {'initial_value': 'some val'}}, 'some val'), Case( {'gooey_options': {'initial_value': 'some val'}}, 'some val'), Case( {'default': 'default', 'gooey_options': {}}, 'default'), Case({'default': 'default'}, 'default') ]
for widgetName in widgets: with self.subTest(widgetName): for case in cases: parser = self.makeParser(widget=widgetName, **case.inputs) with instrumentGooey(parser) as (app, gooeyApp): widget = gooeyApp.configs[0].reifiedWidgets[0] self.assertEqual(widget.getValue()['rawValue'], case.initialExpected)
if __name__ == '__main__': unittest.main()
|