def test_debug_start(): """ Ensure the handling of starting the debugger works as expected. """ editor = mock.MagicMock() view = mock.MagicMock() view.current_tab.path = '/foo' view.current_tab.isModified.return_value = True mock_runner = mock.MagicMock() view.add_python3_runner.return_value = mock_runner mock_debugger = mock.MagicMock() mock_debugger_class = mock.MagicMock(return_value=mock_debugger) dm = DebugMode(editor, view) dm.workspace_dir = mock.MagicMock(return_value='/bar') with mock.patch('builtins.open') as oa, \ mock.patch('mu.modes.debugger.Debugger', mock_debugger_class), \ mock.patch('mu.modes.debugger.write_and_flush'): dm.start() oa.assert_called_once_with('/foo', 'w', newline='') view.add_python3_runner.assert_called_once_with('/foo', '/bar') mock_runner.process.waitForStarted.assert_called_once_with() mock_runner.process.finished.connect.assert_called_once_with(dm.finished) view.add_debug_inspector.assert_called_once_with() view.set_read_only.assert_called_once_with(True) mock_debugger_class.assert_called_once_with('localhost', DEBUGGER_PORT, proc=mock_runner.process) assert dm.runner == mock_runner assert dm.debugger == mock_debugger assert mock_debugger.view == dm mock_debugger.start.assert_called_once_with()
def test_debug_start(): """ Ensure the handling of starting the debugger works as expected. """ editor = mock.MagicMock() editor.envars = [["name", "value"]] view = mock.MagicMock() view.current_tab.path = "/foo/bar" view.current_tab.isModified.return_value = True mock_runner = mock.MagicMock() view.add_python3_runner.return_value = mock_runner mock_debugger = mock.MagicMock() mock_debugger_class = mock.MagicMock(return_value=mock_debugger) dm = DebugMode(editor, view) with mock.patch("mu.modes.debugger.Debugger", mock_debugger_class): dm.start() editor.save_tab_to_file.called_once_with(view.current_tab) view.add_python3_runner.assert_called_once_with("/foo/bar", "/foo", debugger=True, envars=[["name", "value"]]) mock_runner.process.waitForStarted.assert_called_once_with() mock_runner.process.finished.connect.assert_called_once_with(dm.finished) view.add_debug_inspector.assert_called_once_with() view.set_read_only.assert_called_once_with(True) mock_debugger_class.assert_called_once_with("localhost", DEBUGGER_PORT, proc=mock_runner.process) assert dm.runner == mock_runner assert dm.debugger == mock_debugger assert mock_debugger.view == dm mock_debugger.start.assert_called_once_with()
def test_debug_start(): """ Ensure the handling of starting the debugger works as expected. """ editor = mock.MagicMock() editor.envars = [['name', 'value'], ] view = mock.MagicMock() view.current_tab.path = '/foo' view.current_tab.isModified.return_value = True mock_runner = mock.MagicMock() view.add_python3_runner.return_value = mock_runner mock_debugger = mock.MagicMock() mock_debugger_class = mock.MagicMock(return_value=mock_debugger) dm = DebugMode(editor, view) dm.workspace_dir = mock.MagicMock(return_value='/bar') with mock.patch('builtins.open') as oa, \ mock.patch('mu.modes.debugger.Debugger', mock_debugger_class), \ mock.patch('mu.modes.debugger.write_and_flush'): dm.start() oa.assert_called_once_with('/foo', 'w', newline='') view.add_python3_runner.assert_called_once_with('/foo', '/bar', debugger=True, envars=[['name', 'value']]) mock_runner.process.waitForStarted.assert_called_once_with() mock_runner.process.finished.connect.assert_called_once_with(dm.finished) view.add_debug_inspector.assert_called_once_with() view.set_read_only.assert_called_once_with(True) mock_debugger_class.assert_called_once_with('localhost', DEBUGGER_PORT, proc=mock_runner.process) assert dm.runner == mock_runner assert dm.debugger == mock_debugger assert mock_debugger.view == dm mock_debugger.start.assert_called_once_with()
def test_debug_start_no_tab(): """ If there's no active tab, there can be no runner either. """ editor = mock.MagicMock() view = mock.MagicMock() view.current_tab = None dm = DebugMode(editor, view) dm.start() assert dm.runner is None
def test_debug_start_prompt_for_unsaved_file(): """ If the file hasn't been saved yet (it's unnamed), prompt the user to save it. """ editor = mock.MagicMock() view = mock.MagicMock() view.current_tab.path = None dm = DebugMode(editor, view) dm.stop = mock.MagicMock() dm.start() editor.save.assert_called_once_with() assert dm.runner is None dm.stop.assert_called_once_with()