Exemplo n.º 1
0
    def test_select_on_array_from_root(self):
        data = [
            {"id": 1, "name": "brian", "awesome": True},
            {"id": 2, "name": "DRo", "awesome": True},
            {"id": 3, "name": "Logan", "awesome": False}
        ]
        query_engine = DataQueryEngine(data, "SELECT id,name FROM /")

        self.assertEqual([{"id": 1, "name": "brian"}, {"id": 2, "name": "DRo"}, {"id": 3, "name": "Logan"}],
                         query_engine.get_results())
Exemplo n.º 2
0
    def test_where_less_than(self):
        data = {
            "people": [
                {"id": 1, "name": "brian", "awesome": True},
                {"id": 2, "name": "DRo", "awesome": True},
                {"id": 3, "name": "Logan", "awesome": False}
            ],
            "other": 68
        }
        query_engine = DataQueryEngine(data, "SELECT id,name FROM people WHERE id<3")

        self.assertEqual([{"id": 1, "name": "brian"}, {"id": 2, "name": "DRo"}], query_engine.get_results())
Exemplo n.º 3
0
    def test_where_key_in_object(self):
        data = {
            "people": [
                {"id": 1, "name": "brian", "awesome": True, "extra_key": None},
                {"id": 2, "name": "DRo", "awesome": True},
                {"id": 3, "name": "Logan", "awesome": False}
            ],
            "other": 68
        }
        query_engine = DataQueryEngine(data, "SELECT id,name FROM people WHERE extra_key IN /")

        self.assertEqual([{"id": 1, "name": "brian"}], query_engine.get_results())
Exemplo n.º 4
0
    def test_limit(self):
        data = {
            "people": [
                {"id": 1, "name": "brian", "awesome": True, "employer": {"id": 1, "name": "employer 1"}},
                {"id": 2, "name": "DRo", "awesome": True, "employer": {"id": 2, "name": "employer 2"}},
                {"id": 3, "name": "Logan", "awesome": False, "employer": None}
            ],
            "other": 68
        }

        query_engine = DataQueryEngine(data, 'SELECT name FROM people LIMIT 2')

        self.assertEqual([{"name": "brian"}, {"name": "DRo"}], query_engine.get_results())
Exemplo n.º 5
0
    def test_where_against_sub_field(self):
        data = {
            "people": [
                {"id": 1, "name": "brian", "awesome": True, "employer": {"id": 1, "name": "employer 1"}},
                {"id": 2, "name": "DRo", "awesome": True, "employer": {"id": 2, "name": "employer 2"}},
                {"id": 3, "name": "Logan", "awesome": False, "employer": None}
            ],
            "other": 68
        }

        query_engine = DataQueryEngine(data, 'SELECT name FROM people WHERE employer/name=="employer 1"')

        self.assertEqual([{"name": "brian"}], query_engine.get_results())
Exemplo n.º 6
0
    def test_where_clause_with_boolean_and(self):
        data = {
            "people": [
                {"id": 1, "name": "brian", "awesome": True, "extra_key": None},
                {"id": 2, "name": "DRo", "awesome": True},
                {"id": 3, "name": "Logan", "awesome": False}
            ],
            "other": 68
        }

        query_engine = DataQueryEngine(data, "SELECT id,name FROM people WHERE !(extra_key IN /) and awesome == TRUE")

        self.assertEqual([{"id": 2, "name": "DRo"}], query_engine.get_results())
Exemplo n.º 7
0
    def test_select_star(self):
        data = {"a": 1, "b": 2, "c": {"ba": "string", "bb": False, "bc": None, "bd": []}}
        query_engine = DataQueryEngine(data, "SELECT *")

        self.assertEqual([data], query_engine.get_results())