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.
84 lines
1.9 KiB
84 lines
1.9 KiB
'''
|
|
Created on Jan 4, 2014
|
|
|
|
@author: Chris
|
|
|
|
|
|
|
|
|
|
'''
|
|
|
|
import os
|
|
import sys
|
|
import unittest
|
|
from argparse import ArgumentParser
|
|
|
|
import wx
|
|
|
|
from gooey.gui import components
|
|
|
|
|
|
class ComponentsTest(unittest.TestCase):
|
|
def setUp(self):
|
|
parser = ArgumentParser(description='Example Argparse Program')
|
|
parser.add_argument("filename", help="Name of the file you want to read")
|
|
parser.add_argument('-T', '--tester', choices=['yes', 'no'])
|
|
parser.add_argument('-o', '--outfile', help='Redirects output to the specified file')
|
|
parser.add_argument('-v', '--verbose', help='Toggles verbosity off')
|
|
parser.add_argument('-e', '--repeat', action='count')
|
|
action = parser._actions
|
|
self.actions = {
|
|
'help': action[0],
|
|
'Positional': action[1],
|
|
'Choice': action[2],
|
|
'Optional': action[3],
|
|
'Flag': action[4],
|
|
'Counter': action[5]
|
|
}
|
|
|
|
|
|
def BuildWindow(self, component, _type):
|
|
app = wx.PySimpleApp()
|
|
module_name = os.path.split(sys.argv[0])[-1]
|
|
frame = wx.Frame(None, -1, _type)
|
|
|
|
panel = wx.Panel(frame, -1, size=(320, 240))
|
|
component_sizer = component.Build(panel)
|
|
panel.SetSizer(component_sizer)
|
|
|
|
frame.Show(True)
|
|
|
|
app.MainLoop()
|
|
|
|
|
|
def testPositionalWidgetBuild(self):
|
|
self.SetupWidgetAndBuildWindow('Positional')
|
|
|
|
def testChoiceWidgetBuild(self):
|
|
self.SetupWidgetAndBuildWindow('Choice')
|
|
|
|
def testOptionalWidgetBuild(self):
|
|
self.SetupWidgetAndBuildWindow('Optional')
|
|
|
|
def testFlagWidgetBuild(self):
|
|
self.SetupWidgetAndBuildWindow('Flag')
|
|
|
|
def testCounterWidgetBuild(self):
|
|
self.SetupWidgetAndBuildWindow('Counter')
|
|
|
|
def SetupWidgetAndBuildWindow(self, _type):
|
|
component = getattr(components, _type)(self.actions[_type])
|
|
self.BuildWindow(component, _type)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# import sys;sys.argv = ['', 'Test.testName']
|
|
unittest.main()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|