summaryrefslogtreecommitdiff
path: root/test/sql/test_operators.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-10-24 16:01:17 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2012-10-24 16:01:17 -0400
commitd0651ef4b3d27329166f25dfc060db1d86804c30 (patch)
treecd05f146fdb4d149cfdde1567479b8e9a07fa02a /test/sql/test_operators.py
parent800c26e1b7549cc3d0b0e953b9821c411ecc5965 (diff)
downloadsqlalchemy-d0651ef4b3d27329166f25dfc060db1d86804c30.tar.gz
Added :meth:`.ColumnOperators.notin_`,
:meth:`.ColumnOperators.notlike`, :meth:`.ColumnOperators.notilike` to :class:`.ColumnOperators`. [ticket:2580]
Diffstat (limited to 'test/sql/test_operators.py')
-rw-r--r--test/sql/test_operators.py42
1 files changed, 41 insertions, 1 deletions
diff --git a/test/sql/test_operators.py b/test/sql/test_operators.py
index 48cb40c0a..eb2885658 100644
--- a/test/sql/test_operators.py
+++ b/test/sql/test_operators.py
@@ -1,4 +1,4 @@
-from sqlalchemy.testing import fixtures, eq_
+from sqlalchemy.testing import fixtures, eq_, is_
from sqlalchemy import testing
from sqlalchemy.testing import assert_raises_message
from sqlalchemy.sql import column, desc, asc, literal, collate
@@ -18,6 +18,10 @@ import datetime
from sqlalchemy import text, literal_column
+class LoopOperate(operators.ColumnOperators):
+ def operate(self, op, *other, **kwargs):
+ return op
+
class DefaultColumnComparatorTest(fixtures.TestBase):
def _do_scalar_test(self, operator, compare_to):
@@ -25,6 +29,7 @@ class DefaultColumnComparatorTest(fixtures.TestBase):
assert left.comparator.operate(operator).compare(
compare_to(left)
)
+ self._loop_test(operator)
def _do_operate_test(self, operator, right=column('right')):
left = column('left')
@@ -37,6 +42,15 @@ class DefaultColumnComparatorTest(fixtures.TestBase):
BinaryExpression(left, right, operator)
)
+ self._loop_test(operator, right)
+
+ def _loop_test(self, operator, *arg):
+ l = LoopOperate()
+ is_(
+ operator(l, *arg),
+ operator
+ )
+
def test_desc(self):
self._do_scalar_test(operators.desc_op, desc)
@@ -52,6 +66,18 @@ class DefaultColumnComparatorTest(fixtures.TestBase):
def test_isnot_null(self):
self._do_operate_test(operators.isnot, None)
+ def test_like(self):
+ self._do_operate_test(operators.like_op)
+
+ def test_notlike(self):
+ self._do_operate_test(operators.notlike_op)
+
+ def test_ilike(self):
+ self._do_operate_test(operators.ilike_op)
+
+ def test_notilike(self):
+ self._do_operate_test(operators.notilike_op)
+
def test_is(self):
self._do_operate_test(operators.is_)
@@ -81,6 +107,20 @@ class DefaultColumnComparatorTest(fixtures.TestBase):
operators.in_op
)
)
+ self._loop_test(operators.in_op, [1, 2, 3])
+
+ def test_notin(self):
+ left = column('left')
+ assert left.comparator.operate(operators.notin_op, [1, 2, 3]).compare(
+ BinaryExpression(
+ left,
+ Grouping(ClauseList(
+ literal(1), literal(2), literal(3)
+ )),
+ operators.notin_op
+ )
+ )
+ self._loop_test(operators.notin_op, [1, 2, 3])
def test_collate(self):
left = column('left')