the criterion is any sql.ClauseElement applicable to the WHERE clause of a select.
"""
- if not isinstance(criterion, sql.ClauseElement):
- raise exceptions.ArgumentError("filter() argument must be of type sqlalchemy.sql.ClauseElement")
+ if isinstance(criterion, basestring):
+ criterion = sql.text(criterion)
+
+ if criterion is not None and not isinstance(criterion, sql.ClauseElement):
+ raise exceptions.ArgumentError("filter() argument must be of type sqlalchemy.sql.ClauseElement or string")
q = self._clone()
if q._criterion is not None:
create_session().query(User).filter(User.name==5)
assert False
except exceptions.ArgumentError, e:
- assert str(e) == "filter() argument must be of type sqlalchemy.sql.ClauseElement"
+ assert str(e) == "filter() argument must be of type sqlalchemy.sql.ClauseElement or string"
class ParentTest(QueryTest):
def test_o2m(self):