Ejemplo n.º 1
0
def test_open_close(async_run, controller):
    project = Project(controller=controller, name="Test")
    assert project.status == "opened"
    async_run(project.close())
    project.start_all = AsyncioMagicMock()
    async_run(project.open())
    assert not project.start_all.called
    assert project.status == "opened"
    project.emit_notification = MagicMock()
    async_run(project.close())
    assert project.status == "closed"
    project.emit_notification.assert_any_call("project.closed",
                                              project.__json__())
Ejemplo n.º 2
0
def test_open_auto_start(async_run, controller):
    project = Project(controller=controller, name="Test", auto_start=True)
    assert project.status == "opened"
    async_run(project.close())
    project.start_all = AsyncioMagicMock()
    async_run(project.open())
    assert project.start_all.called
Ejemplo n.º 3
0
def test_open_close(async_run, controller):
    project = Project(controller=controller, status="closed", name="Test")
    assert project.status == "closed"
    project.start_all = AsyncioMagicMock()
    async_run(project.open())
    assert not project.start_all.called
    assert project.status == "opened"
    controller._notification = MagicMock()
    async_run(project.close())
    assert project.status == "closed"
    controller.notification.emit.assert_any_call("project.closed", project.__json__())
Ejemplo n.º 4
0
def test_get_node(async_run, controller):
    compute = MagicMock()
    project = Project(controller=controller, name="Test")

    response = MagicMock()
    response.json = {"console": 2048}
    compute.post = AsyncioMagicMock(return_value=response)

    vm = async_run(project.add_node(compute, "test", None, node_type="vpcs", properties={"startup_config": "test.cfg"}))
    assert project.get_node(vm.id) == vm

    with pytest.raises(aiohttp.web_exceptions.HTTPNotFound):
        project.get_node("test")

    # Raise an error if the project is not opened
    async_run(project.close())
    with pytest.raises(aiohttp.web.HTTPForbidden):
        project.get_node(vm.id)
Ejemplo n.º 5
0
def test_get_node(async_run, controller):
    compute = MagicMock()
    project = Project(controller=controller, name="Test")

    response = MagicMock()
    response.json = {"console": 2048}
    compute.post = AsyncioMagicMock(return_value=response)

    vm = async_run(project.add_node(compute, "test", None, node_type="vpcs", properties={"startup_config": "test.cfg"}))
    assert project.get_node(vm.id) == vm

    with pytest.raises(aiohttp.web_exceptions.HTTPNotFound):
        project.get_node("test")

    # Raise an error if the project is not opened
    async_run(project.close())
    with pytest.raises(aiohttp.web.HTTPForbidden):
        project.get_node(vm.id)
Ejemplo n.º 6
0
def test_list_nodes(async_run, controller):
    compute = MagicMock()
    project = Project(controller=controller, name="Test")

    response = MagicMock()
    response.json = {"console": 2048}
    compute.post = AsyncioMagicMock(return_value=response)

    vm = async_run(
        project.add_node(compute,
                         "test",
                         None,
                         node_type="vpcs",
                         properties={"startup_config": "test.cfg"}))
    assert len(project.nodes) == 1
    assert isinstance(project.nodes, dict)

    async_run(project.close())
    assert len(project.nodes) == 1
    assert isinstance(project.nodes, dict)