def test_call_once(self, mocked_process): """Test inline magic function""" server.run_viz() mocked_process.assert_called_once_with( target=server._call_viz, kwargs={"port": self.default_port}, daemon=True)
def test_call_twice_with_same_port(self, mocked_process): """Running run_viz with the same port should trigger another process.""" server.run_viz() server.run_viz() mocked_process.assert_called_with(target=server._call_viz, kwargs={"port": self.default_port}, daemon=True) assert mocked_process.call_count == 2
def test_call_twice_with_different_port(self, mocked_process): """Running run_viz with a different port should start another process.""" server.run_viz() mocked_process.assert_called_with(target=server._call_viz, kwargs={"port": self.default_port}, daemon=True) server.run_viz(port=8000) mocked_process.assert_called_with(target=server._call_viz, kwargs={"port": 8000}, daemon=True) assert mocked_process.call_count == 2
def test_call_with_local_ns(self, mocked_process): mocked_project_path = Path("/tmp") mocked_local_ns = {"project_path": mocked_project_path} server.run_viz(local_ns=mocked_local_ns) # we can't use assert_called_once_with because it doesn't work with functools.partial # so we are comparing the call args one by one assert (len(mocked_process.mock_calls) == 2 ) # 1 for the constructor, 1 to start the process mocked_call_kwargs = mocked_process.call_args_list[0][1] expected_target = partial(server._call_viz, project_path=mocked_project_path) assert (mocked_call_kwargs["target"].func == expected_target.func and mocked_call_kwargs["target"].args == expected_target.args and mocked_call_kwargs["target"].keywords == expected_target.keywords) assert mocked_call_kwargs["daemon"] is True