@@ -526,22 +526,22 @@ def setUp(self):
526526
527527    @staticmethod  
528528    def  text_normalize (string ):
529-         """Dedent *string* and strip it from its surrounding whitespaces. 
530- 
531-         This method is used by the other utility functions so that any 
532-         string to write or to match against can be freely indented. 
533-         """ 
534529        return  textwrap .dedent (string ).strip ()
535530
536531    def  set_pickle_data (self , data ):
537532        with  open (self .filename , 'wb' ) as  f :
538533            pickle .dump (data , f )
539534
540535    def  invoke_pickletools (self , * flags ):
541-         output  =  io .StringIO ()
542-         with  contextlib .redirect_stdout (output ):
536+         stderr  =  io .StringIO ()
537+         stdout  =  io .StringIO ()
538+         with  (
539+             contextlib .redirect_stdout (stdout ),
540+             contextlib .redirect_stderr (stderr ),
541+         ):
543542            pickletools ._main (args = [* flags , self .filename ])
544-         return  self .text_normalize (output .getvalue ())
543+         self .assertEqual (stderr .getvalue (), '' )
544+         return  self .text_normalize (stdout .getvalue ())
545545
546546    def  check_output (self , data , expect , * flags ):
547547        with  self .subTest (data = data , flags = flags ):
@@ -561,26 +561,28 @@ def test_invocation(self):
561561            ('-a' , '--annotate' ),
562562            ('-p="Another:"' , '--preamble="Another:"' ),
563563        ]
564-         data  =  { "a" ,  "b" ,  "c"  }
564+         data  =  { 'a' ,  'b' ,  'c'  }
565565
566566        self .set_pickle_data (data )
567567
568568        for  r  in  range (1 , len (base_flags ) +  1 ):
569569            for  choices  in  itertools .combinations (base_flags , r = r ):
570570                for  args  in  itertools .product (* choices ):
571571                    with  self .subTest (args = args [1 :]):
572-                         _   =   self .invoke_pickletools (* args )
572+                         self .invoke_pickletools (* args )
573573
574+     def  test_unknown_flag (self ):
574575        with  self .assertRaises (SystemExit ):
575-             # suppress argparse error message 
576-             with  contextlib .redirect_stderr (io .StringIO ()):
577-                 _  =  self .invoke_pickletools ('--unknown' )
576+             output  =  io .StringIO ()
577+             with  contextlib .redirect_stderr (output ):
578+                 pickletools ._main (args = ['--unknown' ])
579+             self .assertStartsWith (output .getvalue (), 'usage: ' )
578580
579581    def  test_output_flag (self ):
580582        # test 'python -m pickletools -o/--output' 
581583        output_file  =  tempfile .mktemp ()
582584        self .addCleanup (os_helper .unlink , output_file )
583-         data  =  (" fake_data"  ,)
585+         data  =  (' fake_data'  ,)
584586        expect  =  ''' 
585587            0: \\ x80 PROTO      5 
586588            2: \\ x95 FRAME      15 
@@ -605,7 +607,7 @@ def test_output_flag(self):
605607
606608    def  test_memo_flag (self ):
607609        # test 'python -m pickletools -m/--memo' 
608-         data  =  (" fake_data"  ,)
610+         data  =  (' fake_data'  ,)
609611        expect  =  ''' 
610612            0: \\ x80 PROTO      5 
611613            2: \\ x95 FRAME      15 
@@ -621,7 +623,7 @@ def test_memo_flag(self):
621623
622624    def  test_indentlevel_flag (self ):
623625        # test 'python -m pickletools -l/--indentlevel' 
624-         data  =  (" fake_data"  ,)
626+         data  =  (' fake_data'  ,)
625627        expect  =  ''' 
626628            0: \\ x80 PROTO      5 
627629            2: \\ x95 FRAME      15 
@@ -637,7 +639,7 @@ def test_indentlevel_flag(self):
637639
638640    def  test_annotate_flag (self ):
639641        # test 'python -m pickletools -a/--annotate' 
640-         data  =  (" fake_data"  ,)
642+         data  =  (' fake_data'  ,)
641643        expect  =  ''' 
642644            0: \\ x80 PROTO      5              Protocol version indicator. 
643645            2: \\ x95 FRAME      15             Indicate the beginning of a new frame. 
@@ -653,7 +655,7 @@ def test_annotate_flag(self):
653655
654656    def  test_preamble_flag (self ):
655657        # test 'python -m pickletools -p/--preamble' 
656-         data  =  (" fake_data"  ,)
658+         data  =  (' fake_data'  ,)
657659        expect  =  ''' 
658660        Another: 
659661            0: \\ x80 PROTO      5 
0 commit comments