1717
1818from .support import (
1919 FakeConsole ,
20+ ScreenEqualMixin ,
2021 handle_all_events ,
2122 handle_events_narrow_console ,
2223 more_lines ,
2324 multiline_input ,
2425 code_to_events ,
25- clean_screen ,
2626)
2727from _pyrepl .console import Event
2828from _pyrepl .readline import (ReadlineAlikeReader , ReadlineConfig ,
@@ -587,7 +587,7 @@ def test_auto_indent_ignore_comments(self):
587587 self .assertEqual (output , output_code )
588588
589589
590- class TestPyReplOutput (TestCase ):
590+ class TestPyReplOutput (ScreenEqualMixin , TestCase ):
591591 def prepare_reader (self , events ):
592592 console = FakeConsole (events )
593593 config = ReadlineConfig (readline_completer = None )
@@ -620,7 +620,7 @@ def test_basic(self):
620620
621621 output = multiline_input (reader )
622622 self .assertEqual (output , "1+1" )
623- self .assertEqual ( clean_screen ( reader . screen ) , "1+1" )
623+ self .assert_screen_equal ( reader , "1+1" , clean = True )
624624
625625 def test_get_line_buffer_returns_str (self ):
626626 reader = self .prepare_reader (code_to_events ("\n " ))
@@ -654,11 +654,13 @@ def test_multiline_edit(self):
654654 reader = self .prepare_reader (events )
655655
656656 output = multiline_input (reader )
657- self .assertEqual (output , "def f():\n ...\n " )
658- self .assertEqual (clean_screen (reader .screen ), "def f():\n ..." )
657+ expected = "def f():\n ...\n "
658+ self .assertEqual (output , expected )
659+ self .assert_screen_equal (reader , expected , clean = True )
659660 output = multiline_input (reader )
660- self .assertEqual (output , "def g():\n pass\n " )
661- self .assertEqual (clean_screen (reader .screen ), "def g():\n pass" )
661+ expected = "def g():\n pass\n "
662+ self .assertEqual (output , expected )
663+ self .assert_screen_equal (reader , expected , clean = True )
662664
663665 def test_history_navigation_with_up_arrow (self ):
664666 events = itertools .chain (
@@ -677,16 +679,16 @@ def test_history_navigation_with_up_arrow(self):
677679
678680 output = multiline_input (reader )
679681 self .assertEqual (output , "1+1" )
680- self .assertEqual ( clean_screen ( reader . screen ) , "1+1" )
682+ self .assert_screen_equal ( reader , "1+1" , clean = True )
681683 output = multiline_input (reader )
682684 self .assertEqual (output , "2+2" )
683- self .assertEqual ( clean_screen ( reader . screen ) , "2+2" )
685+ self .assert_screen_equal ( reader , "2+2" , clean = True )
684686 output = multiline_input (reader )
685687 self .assertEqual (output , "2+2" )
686- self .assertEqual ( clean_screen ( reader . screen ) , "2+2" )
688+ self .assert_screen_equal ( reader , "2+2" , clean = True )
687689 output = multiline_input (reader )
688690 self .assertEqual (output , "1+1" )
689- self .assertEqual ( clean_screen ( reader . screen ) , "1+1" )
691+ self .assert_screen_equal ( reader , "1+1" , clean = True )
690692
691693 def test_history_with_multiline_entries (self ):
692694 code = "def foo():\n x = 1\n y = 2\n z = 3\n \n def bar():\n return 42\n \n "
@@ -705,11 +707,9 @@ def test_history_with_multiline_entries(self):
705707 output = multiline_input (reader )
706708 output = multiline_input (reader )
707709 output = multiline_input (reader )
708- self .assertEqual (
709- clean_screen (reader .screen ),
710- 'def foo():\n x = 1\n y = 2\n z = 3'
711- )
712- self .assertEqual (output , "def foo():\n x = 1\n y = 2\n z = 3\n " )
710+ expected = "def foo():\n x = 1\n y = 2\n z = 3\n "
711+ self .assert_screen_equal (reader , expected , clean = True )
712+ self .assertEqual (output , expected )
713713
714714
715715 def test_history_navigation_with_down_arrow (self ):
@@ -728,7 +728,7 @@ def test_history_navigation_with_down_arrow(self):
728728
729729 output = multiline_input (reader )
730730 self .assertEqual (output , "1+1" )
731- self .assertEqual ( clean_screen ( reader . screen ) , "1+1" )
731+ self .assert_screen_equal ( reader , "1+1" , clean = True )
732732
733733 def test_history_search (self ):
734734 events = itertools .chain (
@@ -745,23 +745,23 @@ def test_history_search(self):
745745
746746 output = multiline_input (reader )
747747 self .assertEqual (output , "1+1" )
748- self .assertEqual ( clean_screen ( reader . screen ) , "1+1" )
748+ self .assert_screen_equal ( reader , "1+1" , clean = True )
749749 output = multiline_input (reader )
750750 self .assertEqual (output , "2+2" )
751- self .assertEqual ( clean_screen ( reader . screen ) , "2+2" )
751+ self .assert_screen_equal ( reader , "2+2" , clean = True )
752752 output = multiline_input (reader )
753753 self .assertEqual (output , "3+3" )
754- self .assertEqual ( clean_screen ( reader . screen ) , "3+3" )
754+ self .assert_screen_equal ( reader , "3+3" , clean = True )
755755 output = multiline_input (reader )
756756 self .assertEqual (output , "1+1" )
757- self .assertEqual ( clean_screen ( reader . screen ) , "1+1" )
757+ self .assert_screen_equal ( reader , "1+1" , clean = True )
758758
759759 def test_control_character (self ):
760760 events = code_to_events ("c\x1d \n " )
761761 reader = self .prepare_reader (events )
762762 output = multiline_input (reader )
763763 self .assertEqual (output , "c\x1d " )
764- self .assertEqual ( clean_screen ( reader . screen ) , "c" )
764+ self .assert_screen_equal ( reader , "c\x1d " , clean = True )
765765
766766 def test_history_search_backward (self ):
767767 # Test <page up> history search backward with "imp" input
@@ -781,7 +781,7 @@ def test_history_search_backward(self):
781781 # search for "imp" in history
782782 output = multiline_input (reader )
783783 self .assertEqual (output , "import os" )
784- self .assertEqual ( clean_screen ( reader . screen ) , "import os" )
784+ self .assert_screen_equal ( reader , "import os" , clean = True )
785785
786786 def test_history_search_backward_empty (self ):
787787 # Test <page up> history search backward with an empty input
@@ -800,7 +800,7 @@ def test_history_search_backward_empty(self):
800800 # search backward in history
801801 output = multiline_input (reader )
802802 self .assertEqual (output , "import os" )
803- self .assertEqual ( clean_screen ( reader . screen ) , "import os" )
803+ self .assert_screen_equal ( reader , "import os" , clean = True )
804804
805805
806806class TestPyReplCompleter (TestCase ):
0 commit comments