def test_validation(self): User.validatesPresenceOf('first_name', message='cannot be blank, fool.') User.validatesLengthOf('last_name', range=xrange(1, 101)) User.validatesUniquenessOf('first_name') u = User() yield u.validate() self.assertEqual(len(u.errors), 2) first = yield User(first_name="not unique", last_name="not unique").save() u = yield User(first_name="not unique", last_name="not unique").save() self.assertEqual(len(u.errors), 1) self.assertEqual(u.id, None) # make sure first can be updated yield first.save() self.assertEqual(len(first.errors), 0) User.clearValidations()