"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.
This commit is contained in:
Andrew Ekstedt 2015-05-21 11:24:47 -07:00
parent 2cfc78edac
commit 02b1968bc5
2 changed files with 2 additions and 2 deletions

View file

@ -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__()

View file

@ -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'