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')
 | 
			
		||||
class TestColorType(object):
 | 
			
		||||
 | 
			
		||||
    def test_string_parameter_processing(self, session, Document):
 | 
			
		||||
        from colour import Color
 | 
			
		||||
 | 
			
		||||
@@ -44,10 +43,7 @@ class TestColorType(object):
 | 
			
		||||
    def test_color_parameter_processing(self, session, Document):
 | 
			
		||||
        from colour import Color
 | 
			
		||||
 | 
			
		||||
        document = Document(
 | 
			
		||||
            bg_color=Color(u'white')
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        document = Document(bg_color=Color(u'white'))
 | 
			
		||||
        session.add(document)
 | 
			
		||||
        session.commit()
 | 
			
		||||
 | 
			
		||||
@@ -58,5 +54,9 @@ class TestColorType(object):
 | 
			
		||||
        from colour import Color
 | 
			
		||||
 | 
			
		||||
        document = Document(bg_color='white')
 | 
			
		||||
 | 
			
		||||
        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):
 | 
			
		||||
        user = User(country='FI')
 | 
			
		||||
        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')
 | 
			
		||||
        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)
 | 
			
		||||
        )
 | 
			
		||||
        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):
 | 
			
		||||
 | 
			
		||||
    def test_saves_email_as_lowercased(self, session, User):
 | 
			
		||||
        user = User(
 | 
			
		||||
            email=u'Someone@example.com'
 | 
			
		||||
        )
 | 
			
		||||
        user = User(email=u'Someone@example.com')
 | 
			
		||||
 | 
			
		||||
        session.add(user)
 | 
			
		||||
        session.commit()
 | 
			
		||||
 | 
			
		||||
        user = session.query(User).first()
 | 
			
		||||
        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')
 | 
			
		||||
class TestIntRangeTypeOnPostgres(NumberRangeTestCase):
 | 
			
		||||
 | 
			
		||||
    @pytest.mark.parametrize(
 | 
			
		||||
        'number_range',
 | 
			
		||||
        (
 | 
			
		||||
@@ -391,6 +390,11 @@ class TestIntRangeTypeOnPostgres(NumberRangeTestCase):
 | 
			
		||||
        )
 | 
			
		||||
        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):
 | 
			
		||||
    pass
 | 
			
		||||
 
 | 
			
		||||
@@ -55,3 +55,8 @@ class TestLocaleType(object):
 | 
			
		||||
    def test_unknown_locale_throws_exception(self, User):
 | 
			
		||||
        with pytest.raises(locale.babel.UnknownLocaleError):
 | 
			
		||||
            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
 | 
			
		||||
 | 
			
		||||
    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')
 | 
			
		||||
class TestNumericRangeWithStep(object):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user