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