From 02b1968bc5700e2cfd83cec15a777e10ea99109a Mon Sep 17 00:00:00 2001 From: Andrew Ekstedt Date: Thu, 21 May 2015 11:24:47 -0700 Subject: [PATCH] "Fix" MultilangQuery. SQLAlchemy 1.0 sets bindpararms to their default values when loading lazy-loaded columns. This is in contrast to the 0.9 behaviour of ignoring our incongruous bindparam alltogether. So MultilangQuery is still broken, but now it breaks in the same way as before. While we're here, set the correct param in one of the multilang tests. Not that it matters. --- pokedex/db/multilang.py | 2 +- pokedex/tests/test_schema.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pokedex/db/multilang.py b/pokedex/db/multilang.py index 50521bf..c0c1965 100644 --- a/pokedex/db/multilang.py +++ b/pokedex/db/multilang.py @@ -210,7 +210,7 @@ def create_translation_table(_table_name, foreign_class, relation_name, class MultilangQuery(Query): def __iter__(self): - if '_default_language_id' not in self._params: + if '_default_language_id' not in self._params or self._params['_default_language_id'] == 'dummy': self._params = self._params.copy() self._params['_default_language_id'] = self.session.default_language_id return super(MultilangQuery, self).__iter__() diff --git a/pokedex/tests/test_schema.py b/pokedex/tests/test_schema.py index ebfd3e0..2288ac9 100644 --- a/pokedex/tests/test_schema.py +++ b/pokedex/tests/test_schema.py @@ -108,7 +108,7 @@ def test_i18n_table_creation(): sess.commit() ### Test 1: re-fetch foo and check its attributes - foo = sess.query(Foo).params(_default_language='en').one() + foo = sess.query(Foo).params(_default_language_id=lang_en.id).one() # Dictionary of language identifiers => names assert foo.name_map[lang_en] == 'english'