1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
from nose.tools import raises, eq_
from sprox.validatorselector import ValidatorSelector, SAValidatorSelector
from sprox.test.base import *
from formencode.validators import *
from formencode.compound import All
from sqlalchemy import Column, Integer
from sqlalchemy.databases.oracle import *
from sprox.saormprovider import SAORMProvider
from types import NoneType
session = None
engine = None
connection = None
trans = None
def setup():
global session, engine, connect, trans
session, engine, connect = setup_database()
def teardown():
global session, trans
provider = SAORMProvider(metadata=metadata)
class TestValidatorSelector(SproxTest):
def setup(self):
self.validatorSelector = ValidatorSelector()
super(TestValidatorSelector, self).setup()
def test_createObj(self):
pass
def testSelect(self):
assert issubclass(self.validatorSelector.select('lala'), UnicodeString)
class TestSAValidatorSelector(SproxTest):
testColumns = (
(BLOB, NoneType),
(BOOLEAN, NoneType),
(Binary, NoneType),
(Boolean, NoneType),
(CHAR, UnicodeString),
(CLOB, UnicodeString),
(DATE, DateValidator),
(DATETIME, DateValidator),
(DECIMAL, Number),
(Date, DateValidator),
(DateTime, DateValidator),
(FLOAT, Number),
(Float, Number),
(INT, Int),
(Integer, Int),
(Numeric, Number),
(PickleType, UnicodeString),
(SMALLINT, Int),
(SmallInteger,Int),
(String, UnicodeString),
(TEXT, UnicodeString),
(TIME, DateValidator),
(Time, DateValidator),
(TIMESTAMP, DateValidator),
(Unicode, UnicodeString),
(VARCHAR, UnicodeString),
(OracleNumeric, Number),
(OracleDate, DateValidator),
(OracleDateTime, DateValidator),
(OracleInteger, Int),
(OracleSmallInteger, Int),
)
def setup(self):
super(TestSAValidatorSelector, self).setup()
self.validator_selector = SAValidatorSelector(provider)
def test_createObj(self):
pass
def test_select(self):
for type, expected in self.testColumns:
args={}
if isinstance(type, Text):
args['size'] = 100
c = Column('asdf', type, args)
yield self._test_select, c, expected
def _test_select(self, column, expected):
validator = self.validator_selector.select(column)
assert isinstance(validator, expected) or issubclass(validator, expected), validator
def test_name_based_validator_select(self):
c = Column('email_address', String)
validator = self.validator_selector.select(c)
assert issubclass(validator, Email), validator
|