**kwargs
):
if obj is None or isinstance(obj, _Null):
- if op == operators.eq:
+ if op in (operators.eq, operators.is_):
return _BinaryExpression(self, null(), operators.is_,
negate=operators.isnot)
- elif op == operators.ne:
+ elif op in (operators.ne, operators.isnot):
return _BinaryExpression(self, 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 operator(left, 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_)