Author: phd
Date: 2010-07-12 09:47:53 -0600 (Mon, 12 Jul 2010)
New Revision: 4205
Modified:
SQLObject/trunk/sqlobject/tests/test_validation.py
Log:
Test instances of classes with special methods.
Modified: SQLObject/trunk/sqlobject/tests/test_validation.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_validation.py 2010-07-12 15:26:34 UTC (rev 4204)
+++ SQLObject/trunk/sqlobject/tests/test_validation.py 2010-07-12 15:47:53 UTC (rev 4205)
@@ -8,14 +8,36 @@
class SOValidation(SQLObject):
- name = StringCol(validator=validators.PlainText(), default='x', dbName='name_col')
+ name = StringCol(validator=validators.PlainText(),
+ default='x', dbName='name_col')
name2 = StringCol(validator=validators.ConfirmType(type=str), default='y')
name3 = IntCol(validator=validators.Wrapper(fromPython=int), default=100)
name4 = FloatCol(default=2.718)
name5 = PickleCol(default=None)
name6 = BoolCol(default=None)
name7 = UnicodeCol(default=None)
+ name8 = IntCol(default=None)
+class SOValidationTest(object):
+ def __init__(self, value):
+ self.value = value
+
+class SOValidationTestUnicode(SOValidationTest):
+ def __unicode__(self):
+ return self.value
+
+class SOValidationTestInt(SOValidationTest):
+ def __int__(self):
+ return self.value
+
+class SOValidationTestBool(SOValidationTest):
+ def __nonzero__(self):
+ return self.value
+
+class SOValidationTestFloat(SOValidationTest):
+ def __float__(self):
+ return self.value
+
class TestValidation:
def setup_method(self, meth):
@@ -37,6 +59,14 @@
t.name2 = 'you'
assert t.name2 == 'you'
+ for name, cls, value in (
+ ('name4', SOValidationTestFloat, 1.1),
+ ('name6', SOValidationTestBool, True),
+ ('name7', SOValidationTestUnicode, u'test'),
+ ('name8', SOValidationTestInt, 1)):
+ setattr(t, name, cls(value))
+ assert getattr(t, name) == value
+
def test_wrapType(self):
t = SOValidation(name3=1)
raises(validators.Invalid, setattr, t, 'name3', 'x')
|