dabo Commit Revision 2767 Date: 2007-02-03 10:19:34 -0800 (Sat, 03 Feb 2007) Author: Paul
Changed: A trunk/dabo/ui/uiwx/test/test_dTextBox.py Log: Added test for dTextBox, which shows that the problem where None is converted to u"None" isn't dependent on a bizobj relationship, it is an error in dTextBox and/or dDataControlMixin. Actually, dTextBox as written is the only control class that has a chance of working with None values, so whatever we do for dTextBox will have to be abstracted to the other control classes that can be bound to data. Diff: Added: trunk/dabo/ui/uiwx/test/test_dTextBox.py =================================================================== --- trunk/dabo/ui/uiwx/test/test_dTextBox.py 2007-02-03 15:27:19 UTC (rev 2766) +++ trunk/dabo/ui/uiwx/test/test_dTextBox.py 2007-02-03 18:19:34 UTC (rev 2767) @@ -0,0 +1,100 @@ +import datetime +import decimal +import unittest +import dabo +from dabo.lib import getRandomUUID + + +class Test_dTextBox(unittest.TestCase): + def setUp(self): + app = self.app = dabo.dApp(MainFormClass=None) + app.setup() + frm = dabo.ui.dForm(Caption="test_dTextBox") + self.txt = frm.addObject(dabo.ui.dTextBox) + + def tearDown(self): + self.txt = None + self.app = None + + def mockUserInput(self, str_val): + txt = self.txt + txt._gotFocus() + txt.SetValue(str_val) + txt._lostFocus() + + def testStringValue(self): + txt = self.txt + txt.Value = "This is a string" + self.assertTrue(isinstance(txt.Value, basestring)) + self.assertEqual(txt.Value, "This is a string") + self.mockUserInput("23") + self.assertTrue(isinstance(txt.Value, basestring)) + self.assertEqual(txt.Value, "23") + txt.Value = None + self.assertTrue(isinstance(txt.Value, basestring)) + self.assertEqual(txt.Value, None) + + def testFloatValue(self): + txt = self.txt + txt.Value = 1.23 + self.assertTrue(isinstance(txt.Value, float)) + self.assertEqual(txt.Value, 1.23) + self.mockUserInput("23") + self.assertTrue(isinstance(txt.Value, float)) + self.assertEqual(txt.Value, 23) + txt.Value = None + self.assertTrue(isinstance(txt.Value, float)) + self.assertEqual(txt.Value, None) + + + def testIntValue(self): + txt = self.txt + txt.Value = 23 + self.assertTrue(isinstance(txt.Value, int)) + self.assertEqual(txt.Value, 23) + self.mockUserInput("323.75") + self.assertTrue(isinstance(txt.Value, int)) + self.assertEqual(txt.Value, 23) + txt.Value = None + self.assertTrue(isinstance(txt.Value, int)) + self.assertEqual(txt.Value, None) + + def testDateValue(self): + txt = self.txt + txt.Value = datetime.date.today() + self.assertTrue(isinstance(txt.Value, datetime.date)) + self.assertEqual(txt.Value, datetime.date.today()) + self.mockUserInput("2006-05-03") + self.assertTrue(isinstance(txt.Value, datetime.date)) + self.assertEqual(txt.Value, datetime.date(2006,5,3)) + txt.Value = None + self.assertTrue(isinstance(txt.Value, datetime.date)) + self.assertEqual(txt.Value, None) + + def testDateTimeValue(self): + txt = self.txt + txt.Value = val = datetime.datetime.now() + self.assertTrue(isinstance(txt.Value, datetime.datetime)) + self.assertEqual(txt.Value, val) + self.mockUserInput("bogus datetime") + self.assertTrue(isinstance(txt.Value, datetime.datetime)) + self.assertEqual(txt.Value, val) + txt.Value = None + self.assertTrue(isinstance(txt.Value, datetime.datetime)) + self.assertEqual(txt.Value, None) + + def testDecimalValue(self): + txt = self.txt + txt.Value = decimal.Decimal("1.23") + self.assertTrue(isinstance(txt.Value, decimal.Decimal)) + self.assertEqual(txt.Value, decimal.Decimal("1.23")) + self.mockUserInput("15badinput") + self.assertTrue(isinstance(txt.Value, decimal.Decimal)) + self.assertEqual(txt.Value, decimal.Decimal("1.23")) + txt.Value = None + self.assertTrue(isinstance(txt.Value, decimal.Decimal)) + self.assertEqual(txt.Value, None) + + +if __name__ == "__main__": + unittest.main() _______________________________________________ Post Messages to: Dabo-dev@leafe.com Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev