def test_equal(self): f = Filter({'foo': 'bar'}) doc = {'foo': 'bar'} result = f.match(doc) self.assertTrue(result) doc = {'foo': 'baz'} result = f.match(doc) self.assertFalse(result)
def test_eq(self): f = Filter({'i': {'$eq': 5}}) doc = {'i': 1} result = f.match(doc) self.assertFalse(result) doc = {'i': 5} result = f.match(doc) self.assertTrue(result)
def test_notregex(self): f = Filter({'foo': {'$not': 'ba.*'}}) doc = {'foo': 'bar'} result = f.match(doc) self.assertFalse(result) doc = {'foo': 'baz'} result = f.match(doc) self.assertFalse(result) doc = {'foo': 'biz'} result = f.match(doc) self.assertTrue(result)
def test_all(self): f = Filter({'i': {'$all': [1, 2, 3]}}) doc = {'i': [1, 2, 3, 4]} result = f.match(doc) self.assertTrue(result) doc = {'i': [1, 2, 4]} result = f.match(doc) self.assertFalse(result) doc = {'i': 1} result = f.match(doc) self.assertFalse(result)
def test_nin(self): f = Filter({'foo': {'$nin': ['bar', 'baz']}}) doc = {'foo': 'bar'} result = f.match(doc) self.assertFalse(result) doc = {'foo': 'baz'} result = f.match(doc) self.assertFalse(result) doc = {'foo': 'biz'} result = f.match(doc) self.assertTrue(result)
def test_nor(self): f = Filter({'$nor': [ {'foo': {'$exists': True}}, {'i': {'$lt': 5}} ]}) doc = {'foo': 'bar', 'i': 0} result = f.match(doc) self.assertFalse(result) doc = {'foo': 'bar', 'i': 5} result = f.match(doc) self.assertFalse(result) doc = {'i': 0} result = f.match(doc) self.assertFalse(result) doc = {'i': 5} result = f.match(doc) self.assertTrue(result)
def test_not(self): f = Filter({'foo': {'$not': {'$exists': True}}}) doc = {'foo': 'bar'} result = f.match(doc) self.assertFalse(result) doc = {} result = f.match(doc) self.assertTrue(result) f = Filter({'foo': {'$not': {'$exists': False}}}) doc = {'foo': 'bar'} result = f.match(doc) self.assertTrue(result) doc = {} result = f.match(doc) self.assertFalse(result)
def test_nor(self): f = Filter({'$nor': [{'foo': {'$exists': True}}, {'i': {'$lt': 5}}]}) doc = {'foo': 'bar', 'i': 0} result = f.match(doc) self.assertFalse(result) doc = {'foo': 'bar', 'i': 5} result = f.match(doc) self.assertFalse(result) doc = {'i': 0} result = f.match(doc) self.assertFalse(result) doc = {'i': 5} result = f.match(doc) self.assertTrue(result)
def log_filter(self, value): if value is not None: value = Filter(value) self._log_filter = value