예제 #1
0
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
예제 #2
0
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
예제 #3
0
def compute():
    s = AsyncioMagicMock()
    s.id = "http://test.com:42"
    return s
예제 #4
0
def compute():
    s = AsyncioMagicMock()
    s.id = "http://test.com:42"
    return s