fixing operator query objects

This commit is contained in:
Blake Eggleston
2013-10-25 16:01:12 -07:00
parent a3df87c558
commit 1819912333
2 changed files with 18 additions and 10 deletions

View File

@@ -181,22 +181,22 @@ class AbstractQueryableColumn(object):
used in where you'd typically want to use python's `in` operator
"""
return InOperator(self._get_column(), item)
return statements.WhereClause(self._get_column(), operators.InOperator(), item)
def __eq__(self, other):
return EqualsOperator(self._get_column(), other)
return statements.WhereClause(self._get_column(), operators.EqualsOperator(), other)
def __gt__(self, other):
return GreaterThanOperator(self._get_column(), other)
return statements.WhereClause(self._get_column(), operators.GreaterThanOperator(), other)
def __ge__(self, other):
return GreaterThanOrEqualOperator(self._get_column(), other)
return statements.WhereClause(self._get_column(), operators.GreaterThanOrEqualOperator(), other)
def __lt__(self, other):
return LessThanOperator(self._get_column(), other)
return statements.WhereClause(self._get_column(), operators.LessThanOperator(), other)
def __le__(self, other):
return LessThanOrEqualOperator(self._get_column(), other)
return statements.WhereClause(self._get_column(), operators.LessThanOrEqualOperator(), other)
class BatchType(object):

View File

@@ -14,6 +14,9 @@ from cqlengine import query
from datetime import timedelta
from datetime import tzinfo
from cqlengine import statements
from cqlengine import operators
class TzOffset(tzinfo):
"""Minimal implementation of a timezone offset to help testing with timezone
@@ -61,14 +64,17 @@ class TestQuerySetOperation(BaseCassEngTestCase):
assert len(query1._where) == 1
op = query1._where[0]
assert isinstance(op, query.EqualsOperator)
assert isinstance(op, statements.WhereClause)
assert isinstance(op.operator, operators.EqualsOperator)
assert op.value == 5
query2 = query1.filter(expected_result__gte=1)
assert len(query2._where) == 2
op = query2._where[1]
assert isinstance(op, query.GreaterThanOrEqualOperator)
self.assertIsInstance(op, statements.WhereClause)
self.assertIsInstance(op.operator, operators.GreaterThanOrEqualOperator)
assert op.value == 1
def test_query_expression_parsing(self):
@@ -77,14 +83,16 @@ class TestQuerySetOperation(BaseCassEngTestCase):
assert len(query1._where) == 1
op = query1._where[0]
assert isinstance(op, query.EqualsOperator)
assert isinstance(op, statements.WhereClause)
assert isinstance(op.operator, operators.EqualsOperator)
assert op.value == 5
query2 = query1.filter(TestModel.expected_result >= 1)
assert len(query2._where) == 2
op = query2._where[1]
assert isinstance(op, query.GreaterThanOrEqualOperator)
self.assertIsInstance(op, statements.WhereClause)
self.assertIsInstance(op.operator, operators.GreaterThanOrEqualOperator)
assert op.value == 1
def test_using_invalid_column_names_in_filter_kwargs_raises_error(self):