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())
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())
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())
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())
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())
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())
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())