def test_copy_paste_prompt(self): """Test copy/paste removes partial and full prompts.""" w = JupyterWidget(kind='rich') w._show_interpreter_prompt(1) control = w._control code = " if True:\n print('a')" w._set_input_buffer(code) assert code not in control.toPlainText() cursor = w._get_prompt_cursor() pos = cursor.position() cursor.setPosition(pos - 3) cursor.movePosition(QtGui.QTextCursor.End, QtGui.QTextCursor.KeepAnchor) control.setTextCursor(cursor) control.hasFocus = lambda: True w.copy() clipboard = QtWidgets.QApplication.clipboard() assert clipboard.text() == code w.paste() expected = "In [1]: if True:\n ...: print('a')" assert expected in control.toPlainText()