Exemple #1
0
 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)
Exemple #2
0
  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]})
Exemple #3
0
 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)))