Ejemplo n.º 1
0
 def test_equal(self):
     self.assertEqual(Expression("", "", ""), Expression("", "", ""))
     self.assertEqual(
         Expression(Child(This(), Fields("name")), "==", 4),
         Expression(Child(This(), Fields("name")), "==", 4),
     )
     self.assertNotEqual(Expression("", "", ""),
                         Expression(None, None, None))
Ejemplo n.º 2
0
class TestThis(TestCase):
    def setUp(self):
        self._this = This()
        self._data = {"data": [{"name": "jorge"}, {"name": "james"}]}

    def test_find(self):
        self.assertEqual(list(self._this.find(None)), [None])
        self.assertEqual(list(self._this.find({})), [{}])
        self.assertEqual(list(self._this.find(self._data)), [self._data])
        self.assertEqual(list(self._this.find(34)), [34])
        self.assertEqual(list(self._this.find("")), [""])
Ejemplo n.º 3
0
 def test_node_not_equals(self):
     assert not Root() == This()
     assert not This() == Index(2)
     assert not Index(2) == Root()
     assert not Len() == Avg()
     assert not Sum() == Len()
     assert not Avg() == Sorted()
     assert not Sorted() == Sum()
     assert not And(Root(), Fields("name")) == And(Root(), Fields("other"))
     assert not Or(Root(), Fields("name")) == Or(Root(), Fields("other"))
     assert not Or(Root(), Fields("name")) == And(Root(), Fields("name"))
Ejemplo n.º 4
0
 def test_find(self):
     data = {"value": 2, "other": 3}
     self.assertEqual(
         Expression(Child(This(), Fields("value")), "==", 2).find(data),
         True)
     self.assertEqual(
         Expression(Child(This(), Fields("other")), "<", 6).find(data),
         True)
     self.assertEqual(
         Expression(Child(This(), Fields("value")), None, 2).find(data),
         True)
     self.assertEqual(
         Expression(Child(This(), Fields("val")), ">=", 4).find({}), False)
Ejemplo n.º 5
0
    def test_node_equals(self):
        assert Root() == Root()
        assert This() == This()
        assert Index(2) == Index(2)
        assert Len() == Len()
        assert Sum() == Sum()
        assert Avg() == Avg()
        assert Sorted() == Sorted()
        assert And(Root(), Fields("name")) == And(Root(), Fields("name"))
        assert Or(Root(), Fields("name")) == Or(Root(), Fields("name"))

        assert Child(Root(), Fields("name")) == Child(Root(), Fields("name"))
        assert Where(Root(), Fields("name")) == Where(Root(), Fields("name"))
Ejemplo n.º 6
0
    def test_str_and_repr(self):
        self.assertEqual(str(Expression("", "", "")), "")
        self.assertEqual(
            str(Expression(Child(This(), Fields("name")), ">", 10)),
            "@.name>10")

        self.assertEqual(repr(Expression("", "", "")),
                         "Expression(target='',op='',value='')")
        self.assertEqual(
            repr(Expression("name", ">", 10)),
            "Expression(target='name',op='>',value=10)",
        )
Ejemplo n.º 7
0
 def test_repr_all_leaf(self):
     self.assertEqual(repr(Root()), "Root()")
     self.assertEqual(repr(This()), "This()")
     self.assertEqual(repr(Index(2)), "Index(2)")
     self.assertEqual(repr(AllIndex()), "AllIndex()")
     self.assertEqual(repr(Fields("name", "other")),
                      "Fields('name','other')")
     self.assertEqual(repr(Slice(0, 3, 2)), "Slice(start=0,end=3,step=2)")
     self.assertEqual(repr(Len()), "Len()")
     self.assertEqual(repr(Sum()), "Sum()")
     self.assertEqual(repr(Avg()), "Avg()")
     self.assertEqual(repr(Sorted()), "Sorted()")
     self.assertEqual(repr(And(Fields("name"), Fields("id"))),
                      "And(Fields('name'),Fields('id'))")
     self.assertEqual(repr(Or(Fields("name"), Fields("id"))),
                      "Or(Fields('name'),Fields('id'))")
Ejemplo n.º 8
0
 def test_str_all_leaf(self):
     self.assertEqual(str(Root()), "$")
     self.assertEqual(str(This()), "@")
     self.assertEqual(str(Index(1)), "[1]")
     self.assertEqual(str(Index("*")), "[*]")
     self.assertEqual(str(AllIndex()), "[*]")
     self.assertEqual(str(Fields("name", "other")), "name,other")
     self.assertEqual(str(Fields("name")), "name")
     self.assertEqual(str(Slice(0, 3, 2)), "[0:3:2]")
     self.assertEqual(str(Slice()), "[::]")
     self.assertEqual(str(Len()), "`len`")
     self.assertEqual(str(Sum()), "`sum`")
     self.assertEqual(str(Avg()), "`avg`")
     self.assertEqual(str(Sorted()), "`sorted`")
     self.assertEqual(str(And(Fields("name"), Fields("id"))), "name&id")
     self.assertEqual(str(Or(Fields("name"), Fields("id"))), "name|id")
Ejemplo n.º 9
0
 def test_find(self):
     data = [{"value": 2}, {"other": 3}, {"value": 1}]
     exp = Expression(Child(This(), Fields("value")), "<=", 2)
     self.assertEqual(find(Filter(exp), data), [{"value": 2}, {"value": 1}])
Ejemplo n.º 10
0
 def setUp(self):
     self._this = This()
     self._data = {"data": [{"name": "jorge"}, {"name": "james"}]}