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

Reply via email to