1from sqlobject.constraints import *
2from sqlobject.tests.dbtest import *
3
4def test_constraints():
5    obj = 'Test object'
6    col = Dummy(name='col')
7    isString(obj, col, 'blah')
8    raises(BadValue, isString, obj, col, 1)
9    # @@: Should this really be an error?
10    raises(BadValue, isString, obj, col, u'test!')
11    #isString(obj, col, u'test!')
12
13    raises(BadValue, notNull, obj, col, None)
14    raises(BadValue, isInt, obj, col, 1.1)
15    isInt(obj, col, 1)
16    isInt(obj, col, 1L)
17    isFloat(obj, col, 1)
18    isFloat(obj, col, 1L)
19    isFloat(obj, col, 1.2)
20    raises(BadValue, isFloat, obj, col, '1.0')
21
22    # @@: Should test isBool, but I don't think isBool is right
23
24    lst = InList(('a', 'b', 'c'))
25    lst(obj, col, 'a')
26    raises(BadValue, lst, obj, col, ('a', 'b', 'c'))
27    raises(BadValue, lst, obj, col, 'A')
28
29    maxlen = MaxLength(2)
30    raises(BadValue, maxlen, obj, col, '123')
31    maxlen(obj, col, '12')
32    maxlen(obj, col, (1,))
33    raises(BadValue, maxlen, obj, col, 1)
34