def test_contains_path(self): json = ( '{"contains_path":["favorites","foods"],' '"in":{"object":{"favorites":{"object":{"foods":["steak"]}}}}}') self.assertJson( query.contains_path(["favorites", "foods"], {"favorites": { "foods": ["steak"] }}), json)
def test_filter(self): evens = query.filter_(lambda a: query.equals(query.modulo(a, 2), 0), [1, 2, 3, 4]) self.assertEqual(self._q(evens), [2, 4]) # Works on page too ref = self._create(n=11, m=12)["ref"] self._create(n=11) self._create(n=11) page = query.paginate(query.match(self.n_index_ref, 11)) refs_with_m = query.filter_(lambda a: query.contains_path(["data", "m"], query.get(a)), page) self.assertEqual(self._q(refs_with_m), {"data": [ref]})
def test_contains_path(self): obj = {"a": {"b": 1}, "c": [{"d": "e"}, "f"]} self.assertTrue(self._q(query.contains_path(["a", "b"], obj))) self.assertTrue(self._q(query.contains_path(["c", 0, "d"], obj))) self.assertTrue(self._q(query.contains_path("a", obj))) self.assertFalse(self._q(query.contains_path(["a", "c"], obj)))