def test_manager_create_view_zero(self): message = { "id": 1, "table_name": "table1", "view_name": "view1", "cmd": "view" } manager = PerspectiveManager() table = Table(data) manager.host_table("table1", table) manager.process(message, self.post) assert manager._views["view1"].num_rows() == 3
def test_manager_create_view_and_update_table(self): message = { "id": 1, "table_name": "table1", "view_name": "view1", "cmd": "view" } manager = PerspectiveManager() table = Table(data) manager.host_table("table1", table) manager.process(message, self.post) table.update([{"a": 4, "b": "d"}]) assert manager._views["view1"].num_rows() == 4
def test_manager_host_table(self): message = { "id": 1, "name": "table1", "cmd": "table_method", "method": "schema", "args": [] } manager = PerspectiveManager() table = Table(data) manager.host_table("table1", table) manager.process(message, self.post) assert manager._tables["table1"].schema() == {"a": int, "b": str}
def test_manager_create_indexed_table(self): message = { "id": 1, "name": "table1", "cmd": "table", "args": [data], "options": { "index": "a" } } manager = PerspectiveManager() table = Table(data) manager.host_table("table1", table) manager.process(message, self.post) assert manager._tables["table1"].schema() == {"a": int, "b": str} assert manager._tables["table1"]._index == "a"
def test_manager_create_view_one(self): message = { "id": 1, "table_name": "table1", "view_name": "view1", "cmd": "view", "config": { "row_pivots": ["a"] } } manager = PerspectiveManager() table = Table(data) manager.host_table("table1", table) manager.process(message, self.post) assert manager._views["view1"].to_dict() == { "__ROW_PATH__": [[], ["1"], ["2"], ["3"]], "a": [6, 1, 2, 3], "b": [3, 1, 1, 1] }
def test_manager_to_dict(self): def handle_to_dict(msg): assert msg["data"] == data message = { "id": 1, "table_name": "table1", "view_name": "view1", "cmd": "view" } manager = PerspectiveManager() table = Table(data) manager.host_table("table1", table) manager.process(message, self.post) to_dict_message = { "id": 2, "name": "view1", "cmd": "view_method", "method": "to_dict" } manager.process(to_dict_message, handle_to_dict)