Add tests for literal param processing
This commit is contained in:
@@ -24,7 +24,6 @@ def init_models(Document):
|
|||||||
|
|
||||||
@pytest.mark.skipif('types.color.python_colour_type is None')
|
@pytest.mark.skipif('types.color.python_colour_type is None')
|
||||||
class TestColorType(object):
|
class TestColorType(object):
|
||||||
|
|
||||||
def test_string_parameter_processing(self, session, Document):
|
def test_string_parameter_processing(self, session, Document):
|
||||||
from colour import Color
|
from colour import Color
|
||||||
|
|
||||||
@@ -44,10 +43,7 @@ class TestColorType(object):
|
|||||||
def test_color_parameter_processing(self, session, Document):
|
def test_color_parameter_processing(self, session, Document):
|
||||||
from colour import Color
|
from colour import Color
|
||||||
|
|
||||||
document = Document(
|
document = Document(bg_color=Color(u'white'))
|
||||||
bg_color=Color(u'white')
|
|
||||||
)
|
|
||||||
|
|
||||||
session.add(document)
|
session.add(document)
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
@@ -58,5 +54,9 @@ class TestColorType(object):
|
|||||||
from colour import Color
|
from colour import Color
|
||||||
|
|
||||||
document = Document(bg_color='white')
|
document = Document(bg_color='white')
|
||||||
|
|
||||||
assert isinstance(document.bg_color, Color)
|
assert isinstance(document.bg_color, Color)
|
||||||
|
|
||||||
|
def test_literal_param(self, session, Document):
|
||||||
|
clause = Document.bg_color == 'white'
|
||||||
|
compiled = str(clause.compile(compile_kwargs={'literal_binds': True}))
|
||||||
|
assert compiled == "document.bg_color = 'white'"
|
||||||
|
|||||||
@@ -38,3 +38,8 @@ class TestCountryType(object):
|
|||||||
def test_scalar_attributes_get_coerced_to_objects(self, User):
|
def test_scalar_attributes_get_coerced_to_objects(self, User):
|
||||||
user = User(country='FI')
|
user = User(country='FI')
|
||||||
assert isinstance(user.country, Country)
|
assert isinstance(user.country, Country)
|
||||||
|
|
||||||
|
def test_literal_param(self, session, User):
|
||||||
|
clause = User.country == 'FI'
|
||||||
|
compiled = str(clause.compile(compile_kwargs={'literal_binds': True}))
|
||||||
|
assert compiled == '"user".country = \'FI\''
|
||||||
|
|||||||
@@ -49,3 +49,8 @@ class TestCurrencyType(object):
|
|||||||
):
|
):
|
||||||
user = User(currency='USD')
|
user = User(currency='USD')
|
||||||
assert isinstance(user.currency, Currency)
|
assert isinstance(user.currency, Currency)
|
||||||
|
|
||||||
|
def test_literal_param(self, session, User):
|
||||||
|
clause = User.currency == 'USD'
|
||||||
|
compiled = str(clause.compile(compile_kwargs={'literal_binds': True}))
|
||||||
|
assert compiled == '"user".currency = \'USD\''
|
||||||
|
|||||||
@@ -115,3 +115,11 @@ class TestDateRangeOnPostgres(object):
|
|||||||
session.query(Booking.during.length)
|
session.query(Booking.during.length)
|
||||||
)
|
)
|
||||||
assert query.scalar() == length
|
assert query.scalar() == length
|
||||||
|
|
||||||
|
def test_literal_param(self, session, Booking):
|
||||||
|
clause = Booking.during == [
|
||||||
|
datetime(2015, 1, 1).date(),
|
||||||
|
datetime(2015, 1, 3).date()
|
||||||
|
]
|
||||||
|
compiled = str(clause.compile(compile_kwargs={'literal_binds': True}))
|
||||||
|
assert compiled == "booking.during = '[2015-01-01, 2015-01-03]'"
|
||||||
|
|||||||
@@ -17,14 +17,16 @@ def User(Base):
|
|||||||
|
|
||||||
|
|
||||||
class TestEmailType(object):
|
class TestEmailType(object):
|
||||||
|
|
||||||
def test_saves_email_as_lowercased(self, session, User):
|
def test_saves_email_as_lowercased(self, session, User):
|
||||||
user = User(
|
user = User(email=u'Someone@example.com')
|
||||||
email=u'Someone@example.com'
|
|
||||||
)
|
|
||||||
|
|
||||||
session.add(user)
|
session.add(user)
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
user = session.query(User).first()
|
user = session.query(User).first()
|
||||||
assert user.email == u'someone@example.com'
|
assert user.email == u'someone@example.com'
|
||||||
|
|
||||||
|
def test_literal_param(self, session, User):
|
||||||
|
clause = User.email == 'Someone@example.com'
|
||||||
|
compiled = str(clause.compile(compile_kwargs={'literal_binds': True}))
|
||||||
|
assert compiled == '"user".email = lower(\'Someone@example.com\')'
|
||||||
|
|||||||
@@ -106,7 +106,6 @@ class NumberRangeTestCase(object):
|
|||||||
|
|
||||||
@pytest.mark.usefixtures('postgresql_dsn')
|
@pytest.mark.usefixtures('postgresql_dsn')
|
||||||
class TestIntRangeTypeOnPostgres(NumberRangeTestCase):
|
class TestIntRangeTypeOnPostgres(NumberRangeTestCase):
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
'number_range',
|
'number_range',
|
||||||
(
|
(
|
||||||
@@ -391,6 +390,11 @@ class TestIntRangeTypeOnPostgres(NumberRangeTestCase):
|
|||||||
)
|
)
|
||||||
assert query.count()
|
assert query.count()
|
||||||
|
|
||||||
|
def test_literal_param(self, session, Building):
|
||||||
|
clause = Building.persons_at_night == [1, 3]
|
||||||
|
compiled = str(clause.compile(compile_kwargs={'literal_binds': True}))
|
||||||
|
assert compiled == "building.persons_at_night = '[1, 3]'"
|
||||||
|
|
||||||
|
|
||||||
class TestNumberRangeTypeOnSqlite(NumberRangeTestCase):
|
class TestNumberRangeTypeOnSqlite(NumberRangeTestCase):
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -55,3 +55,8 @@ class TestLocaleType(object):
|
|||||||
def test_unknown_locale_throws_exception(self, User):
|
def test_unknown_locale_throws_exception(self, User):
|
||||||
with pytest.raises(locale.babel.UnknownLocaleError):
|
with pytest.raises(locale.babel.UnknownLocaleError):
|
||||||
User(locale=u'unknown')
|
User(locale=u'unknown')
|
||||||
|
|
||||||
|
def test_literal_param(self, session, User):
|
||||||
|
clause = User.locale == 'en_US'
|
||||||
|
compiled = str(clause.compile(compile_kwargs={'literal_binds': True}))
|
||||||
|
assert compiled == '"user".locale = \'en_US\''
|
||||||
|
|||||||
@@ -116,6 +116,11 @@ class TestNumericRangeOnPostgres(NumericRangeTestCase):
|
|||||||
)
|
)
|
||||||
assert query.scalar() == length
|
assert query.scalar() == length
|
||||||
|
|
||||||
|
def test_literal_param(self, session, Car):
|
||||||
|
clause = Car.price_range == [1, 3]
|
||||||
|
compiled = str(clause.compile(compile_kwargs={'literal_binds': True}))
|
||||||
|
assert compiled == "car.price_range = '[1, 3]'"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif('intervals is None')
|
@pytest.mark.skipif('intervals is None')
|
||||||
class TestNumericRangeWithStep(object):
|
class TestNumericRangeWithStep(object):
|
||||||
|
|||||||
Reference in New Issue
Block a user