def test_special_characters(self): """ Are special characters displayed correctly? """ w = ConsoleWidget() cursor = w._get_prompt_cursor() test_inputs = ['xyz\b\b=\n', 'foo\b\nbar\n', 'foo\b\nbar\r\n', 'abc\rxyz\b\b='] expected_outputs = [u'x=z\u2029', u'foo\u2029bar\u2029', u'foo\u2029bar\u2029', 'x=z'] for i, text in enumerate(test_inputs): w._insert_plain_text(cursor, text) cursor.select(cursor.Document) selection = cursor.selectedText() self.assertEqual(expected_outputs[i], selection) # clear all the text cursor.insertText('')
def test_special_characters(self): """ Are special characters displayed correctly? """ w = ConsoleWidget() cursor = w._get_prompt_cursor() test_inputs = [ 'xyz\b\b=\n', 'foo\b\nbar\n', 'foo\b\nbar\r\n', 'abc\rxyz\b\b=' ] expected_outputs = [ u'x=z\u2029', u'foo\u2029bar\u2029', u'foo\u2029bar\u2029', 'x=z' ] for i, text in enumerate(test_inputs): w._insert_plain_text(cursor, text) self.assert_text_equal(cursor, expected_outputs[i]) # clear all the text cursor.insertText('')
def test_erase_in_line(self): """ Do control sequences for clearing the line work? """ w = ConsoleWidget() cursor = w._get_prompt_cursor() test_inputs = [ 'Hello\x1b[1KBye', 'Hello\x1b[0KBye', 'Hello\r\x1b[0KBye', 'Hello\r\x1b[1KBye', 'Hello\r\x1b[2KBye', 'Hello\x1b[2K\rBye' ] expected_outputs = [ ' Bye', 'HelloBye', 'Bye', 'Byelo', 'Bye', 'Bye' ] for i, text in enumerate(test_inputs): w._insert_plain_text(cursor, text) self.assert_text_equal(cursor, expected_outputs[i]) # clear all the text cursor.insertText('')