TDD로 컨트롤을 하나하나 붙이고 위치값을 잡고 리스트박스에 초기값을 설정하는 예제

test_myframe.py

~cpp 
from wxPython.wx import * 
import unittest 
from MyFrame import MyFrame
 
class TestFrame(unittest.TestCase): 
        def setUp(self): 
                self.frame = MyFrame() 
 
        def tearDown(self): 
                self.frame.Destroy() 
                self.frame = None 
 
        def testFramePositionSize(self): 
                expected = (400,400) 
                self.assertEquals(expected, self.frame.GetSizeTuple()) 
                self.assertEquals(expected, self.frame.GetPositionTuple()) 
 
        def testControls(self): 
                pass 
 
        def testbuttonText(self): 
                expected = "testing" 
                result = self.frame.button.GetLabel() 
                self.assertEquals(expected, result) 
 
        def testButtonRect(self): 
                expected = (100,100) 
                result = self.frame.button.GetPositionTuple() 
                self.assertEquals(expected, result) 
                expected = (200,50) 
                result = self.frame.button.GetSizeTuple() 
                self.assertEquals(expected, result) 
 
        def testListBox(self): 
                expected = ('testing1', 'testing2', 'testing3') 
                self.assertEquals(expected, self.frame.getListItemsTuple()) 
 
class TestApp(wxApp): 
        def OnInit(self): 
            return true 

if __name__=="__main__": 
    testApp=TestApp(0)
    unittest.main(argv=('','-v'))

myframe.py

~cpp 
from wxPython.wx import *

class MyFrame(wxFrame):
	def __init__(self, parent=NULL, id=NewId(), title='test', pos=(400,400), size=(400,400)):
		wxFrame.__init__(self, parent, id, title, pos, size)

		ID_BUTTON = 10000
		self.button = wxButton(self, ID_BUTTON, "testing", pos=(100,100), size=(200,50))
		self.SetAutoLayout(true)
		#pdb.set_trace()
		self.listBox = wxListBox(self, NewId())
		self.listBox.Append('testing1')
		self.listBox.Append('testing2')
		self.listBox.Append('testing3')

	def getListItemsTuple(self):
		retList = []
		for idx in range(self.listBox.Number()):
			retList.append(self.listBox.GetString(idx))

		return tuple(retList)

class MyApp(wxApp):
	def OnInit(self):
		frame = MyFrame()
		frame.Show(true)
		return true
		
if __name__=="__main__":
	App = MyApp(0)
	App.MainLoop()
Retrieved from http://wiki.zeropage.org/wiki.php/GuiTestingWithWxPython
last modified 2021-02-07 05:23:20