From 0ef12b0a070694fb8ef4c177f9816305110114b1 Mon Sep 17 00:00:00 2001 From: Konsta Vesterinen Date: Wed, 14 Jan 2015 15:39:04 +0200 Subject: [PATCH] Add test for hybrid as expr --- .travis.yml | 1 + tests/test_translation_hybrid.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 52ad312..db4d9b1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ before_script: - psql -c 'create database sqlalchemy_utils_test;' -U postgres + - psql -c 'create extension hstore;' -U postgres -d sqlalchemy_utils_test - mysql -e 'create database sqlalchemy_utils_test;' before_install: diff --git a/tests/test_translation_hybrid.py b/tests/test_translation_hybrid.py index 91e60ba..6dc6cb6 100644 --- a/tests/test_translation_hybrid.py +++ b/tests/test_translation_hybrid.py @@ -1,5 +1,5 @@ import sqlalchemy as sa -from sqlalchemy.dialects.postgresql import JSON +from sqlalchemy.dialects.postgresql import HSTORE from sqlalchemy_utils import TranslationHybrid from tests import TestCase @@ -12,7 +12,7 @@ class TestTranslationHybrid(TestCase): class City(self.Base): __tablename__ = 'city' id = sa.Column(sa.Integer, primary_key=True) - name_translations = sa.Column(JSON()) + name_translations = sa.Column(HSTORE) name = self.translation_hybrid(name_translations) locale = 'en' @@ -46,3 +46,12 @@ class TestTranslationHybrid(TestCase): city.name_translations['fi'] = 'Helsinki' assert city.name == 'Helsinki' + + def test_hybrid_as_an_expression(self): + city = self.City(name_translations={'en': 'Helsinki'}) + self.session.add(city) + self.session.commit() + + assert city == self.session.query(self.City).filter( + self.City.name['en'] == 'Helsinki' + ).first()