def test_worker_run(): """ Ensure the finished signal is called when the tasks called in the run method are completed. """ w = StartupWorker() w.finished = mock.MagicMock() with mock.patch("mu.app.venv.ensure") as mock_ensure: w.run() mock_ensure.assert_called_once_with() w.finished.emit.assert_called_once_with()
def test_worker_run(): """ Ensure the finished signal is called when the tasks called in the run method are completed. """ w = StartupWorker() slh = SplashLogHandler(w.display_text) vlogger.addHandler(slh) w.finished = mock.MagicMock() with mock.patch("mu.app.venv.ensure_and_create") as mock_ensure: w.run() assert mock_ensure.call_count == 1 w.finished.emit.assert_called_once_with() # Ensure the splash related logger handler has been removed. while vlogger.hasHandlers() and vlogger.handlers: handler = vlogger.handlers[0] assert not isinstance(handler, SplashLogHandler)
def test_worker_fail(): """ Ensure that exceptions encountered during Mu's start-up are handled in the expected manner. """ w = StartupWorker() w.finished = mock.MagicMock() w.failed = mock.MagicMock() mock_ensure = mock.MagicMock() ex = RuntimeError("Boom") mock_ensure.side_effect = ex with pytest.raises(RuntimeError): with mock.patch("mu.app.venv.ensure_and_create", mock_ensure), mock.patch("mu.app.time") as mock_time: w.run() assert mock_ensure.call_count == 1 assert w.failed.emit.call_count == 1 mock_time.sleep.assert_called_once_with(7) w.finished.emit.assert_called_once_with()