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.

194 lines
4.8 KiB

from gooey.gui.widgets import components2
__author__ = 'Chris'
import unittest
import wx
from wx.lib.scrolledpanel import ScrolledPanel
TEXT_FIELD = components2.TextField({
'display_name': 'cool title',
'help_msg': 'a help message',
'nargs': '+',
'commands': ['-f', '--fudge'],
'choices': []
})
DROPDOWN = components2.Dropdown({
'display_name': 'cool title',
'help_msg': 'a help message',
'nargs': '+',
'commands': ['-f', '--fudge'],
'choices': ['one', 'two', 'three']
})
COUNTER = components2.Counter({
'display_name': 'cool title',
'help_msg': 'a help message',
'nargs': '+',
'commands': ['-f', '--fudge'],
'choices': []
})
CHECKBOX = components2.CheckBox({
'display_name': 'cool title',
'help_msg': 'a help message',
'nargs': '+',
'commands': ['-f', '--fudge'],
'choices': []
})
RADIOGROUP = components2.RadioGroup({
'display_name': 'mutux options',
'data': [{
'help_msg': 'a help message',
'nargs': '+',
'commands': ['-f', '--fudge'],
'choices': []
}, {
'help_msg': 'a help message',
'nargs': '+',
'commands': ['-g', '--gudge'],
'choices': []
}]
})
class TestPanel(ScrolledPanel):
def __init__(self, parent, widget):
ScrolledPanel.__init__(self, parent)
self.SetupScrolling(scroll_x=False)
sizer = wx.BoxSizer(wx.VERTICAL)
self.widget = widget
sizer.Add(self.widget.build(self), 0, wx.EXPAND)
self.SetSizer(sizer)
class MyFrame(wx.Frame):
def __init__(self, parent, widget):
wx.Frame.__init__(self, parent, title="test", size=(320, 240))
self.SetBackgroundColour('#ffffff')
self.panel = TestPanel(self, widget)
self.Show()
def get_widget(self):
return self.panel.widget
def close(self):
self.Destroy()
class TestComponents(unittest.TestCase):
def setUp(self):
self.app = wx.App(False)
self.frame = None
def tearDown(self):
# self.app = wx.App(False)
self.frame.Destroy()
self.frame = None
def test_textfield_returns_option_and_value_else_none(self):
self.build_test_frame(TEXT_FIELD)
self.assertTrue(self.get_value() == '')
self.get_widget().SetLabelText('value')
self.assertEqual('-f value', self.get_value())
def test_dropdown_returns_option_and_value_else_none(self):
self.build_test_frame(DROPDOWN)
self.assertTrue(self.get_value() == '')
# grab first item from the combo box
self.frame.get_widget()._GetWidget().SetSelection(0)
self.assertEqual('-f one', self.get_value())
def test_counter_returns_option_and_value_else_none(self):
self.build_test_frame(COUNTER)
self.assertTrue(self.get_value() == '')
# counter objects stack,
# so
# 1 = -f,
# 4 = -ffff
self.frame.get_widget()._GetWidget().SetSelection(0)
self.assertEqual('-f', self.get_value())
self.frame.get_widget()._GetWidget().SetSelection(4)
self.assertEqual('-fffff', self.get_value())
def test_checkbox_returns_option_if_checked_else_none(self):
self.build_test_frame(CHECKBOX)
self.assertTrue(self.get_value() == '')
self.frame.get_widget()._GetWidget().SetValue(1)
self.assertEqual('-f', self.get_value())
def test_radiogroup_returns_option_if_checked_else_none(self):
self.build_test_frame(RADIOGROUP)
self.assertTrue(self.get_value() == '')
# self.frame.get_widget()._GetWidget()[0].SetValue(1)
# self.assertEqual('-f', self.get_value())
def build_test_frame(self, widget):
# self.app = wx.App(False)
self.frame = MyFrame(None, widget)
def get_widget(self):
return self.frame.get_widget()._GetWidget()
def get_value(self):
return self.frame.get_widget().GetValue()
if __name__ == '__main__':
unittest.main()
# a = {
# 'required' : [
# {
# 'component': 'TextField',
# 'data': {
# 'display_name': 'filename',
# 'help_text': 'path to file you want to process',
# 'command_args': ['-f', '--infile']
# }
# },
# {
# 'component': 'FileChooser',
# 'data': {
# 'display_name': 'Output Location',
# 'help_text': 'Where to save the file',
# 'command_args': ['-o', '--outfile']
# }
# }
# ],
# 'optional' : [
# {
# 'component': 'RadioGroup',
# 'data': [
# {
# 'display_name': 'Output Location',
# 'help_text': 'Where to save the file',
# 'command_args': ['-o', '--outfile']
# }, {
# 'display_name': 'Output Location',
# 'help_text': 'Where to save the file',
# 'command_args': ['-o', '--outfile']
# }
# ]
# }
# ]
# }
#
# ]
# }