Source code for sqlobject.tests.test_constraints

from sqlobject.compat import PY2
from sqlobject.constraints import BadValue, InList, MaxLength, \
    isFloat, isInt, isString, notNull
from sqlobject.tests.dbtest import Dummy, raises

if not PY2:
    # alias for python 3 compatability
    long = int


[docs]def test_constraints(): obj = 'Test object' col = Dummy(name='col') isString(obj, col, 'blah') raises(BadValue, isString, obj, col, 1) if PY2: # @@: Should this really be an error? raises(BadValue, isString, obj, col, u'test!') else: raises(BadValue, isString, obj, col, b'test!') # isString(obj, col, u'test!') raises(BadValue, notNull, obj, col, None) raises(BadValue, isInt, obj, col, 1.1) isInt(obj, col, 1) isInt(obj, col, long(1)) isFloat(obj, col, 1) isFloat(obj, col, long(1)) isFloat(obj, col, 1.2) raises(BadValue, isFloat, obj, col, '1.0') # @@: Should test isBool, but I don't think isBool is right lst = InList(('a', 'b', 'c')) lst(obj, col, 'a') raises(BadValue, lst, obj, col, ('a', 'b', 'c')) raises(BadValue, lst, obj, col, 'A') maxlen = MaxLength(2) raises(BadValue, maxlen, obj, col, '123') maxlen(obj, col, '12') maxlen(obj, col, (1,)) raises(BadValue, maxlen, obj, col, 1)