def test_restore(project, controller, async_run): compute = AsyncioMagicMock() compute.id = "local" controller._computes["local"] = compute response = AsyncioMagicMock() response.json = {"console": 2048} compute.post = AsyncioMagicMock(return_value=response) async_run(project.add_node(compute, "test1", None, node_type="vpcs", properties={"startup_config": "test.cfg"})) snapshot = async_run(project.snapshot(name="test")) # We add a node after the snapshots async_run(project.add_node(compute, "test2", None, node_type="vpcs", properties={"startup_config": "test.cfg"})) # project-files should be reset when reimporting test_file = os.path.join(project.path, "project-files", "test.txt") os.makedirs(os.path.join(project.path, "project-files")) open(test_file, "a+").close() assert os.path.exists(test_file) assert len(project.nodes) == 2 controller._notification = MagicMock() with patch("gns3server.config.Config.get_section_config", return_value={"local": True}): async_run(snapshot.restore()) assert "snapshot.restored" in [c[0][0] for c in controller.notification.project_emit.call_args_list] # project.closed notification should not be send when restoring snapshots assert "project.closed" not in [c[0][0] for c in controller.notification.project_emit.call_args_list] project = controller.get_project(project.id) assert not os.path.exists(test_file) assert len(project.nodes) == 1
async def test_restore(project, controller): compute = AsyncioMagicMock() compute.id = "local" controller._computes["local"] = compute response = AsyncioMagicMock() response.json = {"console": 2048} compute.post = AsyncioMagicMock(return_value=response) await project.add_node(compute, "test1", None, node_type="vpcs", properties={"startup_config": "test.cfg"}) snapshot = await project.snapshot(name="test") # We add a node after the snapshots await project.add_node(compute, "test2", None, node_type="vpcs", properties={"startup_config": "test.cfg"}) # project-files should be reset when reimporting test_file = os.path.join(project.path, "project-files", "test.txt") os.makedirs(os.path.join(project.path, "project-files")) open(test_file, "a+").close() assert os.path.exists(test_file) assert len(project.nodes) == 2 controller._notification = MagicMock() with patch("gns3server.config.Config.get_section_config", return_value={"local": True}): await snapshot.restore() assert "snapshot.restored" in [c[0][0] for c in controller.notification.project_emit.call_args_list] # project.closed notification should not be send when restoring snapshots assert "project.closed" not in [c[0][0] for c in controller.notification.project_emit.call_args_list] project = controller.get_project(project.id) assert not os.path.exists(test_file) assert len(project.nodes) == 1
def compute(): s = AsyncioMagicMock() s.id = "http://test.com:42" return s
def compute(): s = AsyncioMagicMock() s.id = "http://test.com:42" return s