**kwargs
):
if obj is None or isinstance(obj, Null):
- if op == operators.eq:
+ if op in (operators.eq, operators.is_):
return BinaryExpression(expr, null(), operators.is_,
negate=operators.isnot)
- elif op == operators.ne:
+ elif op in (operators.ne, operators.isnot):
return BinaryExpression(expr, null(), operators.isnot,
negate=operators.is_)
else:
def __init__(self):
self.type = sqltypes.NULLTYPE
+ def compare(self, other):
+ return isinstance(other, Null)
+
class False_(ColumnElement):
"""Represent the ``false`` keyword in a SQL statement.
compare_to(left)
)
- def _do_operate_test(self, operator):
+ def _do_operate_test(self, operator, right=column('right')):
left = column('left')
- right = column('right')
assert left.comparator.operate(operator, right).compare(
BinaryExpression(left, right, operator)
def test_plus(self):
self._do_operate_test(operators.add)
+ def test_is_null(self):
+ self._do_operate_test(operators.is_, None)
+
+ def test_isnot_null(self):
+ self._do_operate_test(operators.isnot, None)
+
def test_is(self):
self._do_operate_test(operators.is_)