Files
Phoenix/unittests/test_validate.py
2016-12-05 16:19:11 -06:00

60 lines
1.5 KiB
Python

import unittest
from unittests import wtc
import wx
import os
#---------------------------------------------------------------------------
class MyValidator(wx.Validator):
def __init__(self, startingValue=""):
wx.Validator.__init__(self)
self.value = startingValue
def Clone(self):
return MyValidator(self.value)
def TransferToWindow(self):
self.GetWindow().SetValue(self.value)
return True
def TransferFromWindow(self):
self.value = self.Window.Value # test using the properties
return True
def Validate(self, parent):
value = self.GetWindow().GetValue()
return value in ["", "hello", "world"]
class validate_Tests(wtc.WidgetTestCase):
def setUp(self):
super(validate_Tests, self).setUp()
self.pnl = wx.Panel(self.frame)
self.tc = wx.TextCtrl(self.pnl, pos=(10,10))
self.frame.SendSizeEvent()
validator = MyValidator("hello")
self.tc.SetValidator(validator)
def test_validateTransfer(self):
self.assertTrue(self.tc.Value == "")
self.pnl.TransferDataToWindow()
self.assertTrue(self.tc.Value == "hello")
self.tc.Value = "world"
self.pnl.TransferDataFromWindow()
v = self.tc.GetValidator()
self.assertTrue(v.value == "world")
def test_validateDefault(self):
wx.DefaultValidator
#---------------------------------------------------------------------------
if __name__ == '__main__':
unittest.main()