@@ -785,10 +785,10 @@ def test_bad_examples(self, capsys, klass, func, msgs):
785785 assert msg in ' ' .join (err [1 ] for err in result ['errors' ])
786786
787787
788- class ApiItems (object ):
788+ class TestApiItems (object ):
789789 @property
790790 def api_doc (self ):
791- return textwrap . dedent ( io .StringIO ('''
791+ return io .StringIO ( textwrap . dedent ('''
792792 .. currentmodule:: itertools
793793
794794 Itertools
@@ -861,93 +861,90 @@ def test_item_subsection(self, idx, subsection):
861861 assert result [idx ][3 ] == subsection
862862
863863
864- class MainFunction (object ):
865- def test_num_errors_for_validate_one (self , monkeypatch ):
864+ class TestMainFunction (object ):
865+ def test_exit_status_for_validate_one (self , monkeypatch ):
866866 monkeypatch .setattr (
867- validate_docstrings , 'validate_one' ,
868- lambda func_name : {'docstring' : 'docstring1' ,
869- 'errors' : [('ER01' , 'err desc' ),
870- ('ER02' , 'err desc' )
871- ('ER03' , 'err desc' )],
872- 'warnings' : [],
873- 'examples_errors' : '' })
874- num_errors = validate_docstrings .main (func_name = 'docstring1' ,
875- prefix = None ,
876- errors = [],
877- output_format = 'default' )
878- assert num_errors == 3
879-
880- def test_no_num_errors_for_validate_one (self , monkeypatch ):
881- monkeypatch .setattr (
882- validate_docstrings , 'validate_one' ,
883- lambda func_name : {'docstring' : 'docstring1' ,
884- 'errors' : [],
885- 'warnings' : [('WN01' , 'warn desc' )],
886- 'examples_errors' : '' })
887- num_errors = validate_docstrings .main (func_name = 'docstring1' ,
888- prefix = None ,
889- errors = [],
890- output_format = 'default' )
891- assert num_errors == 0
892-
893- def test_num_errors_for_validate_all (self , monkeypatch ):
867+ validate_docstrings , 'validate_one' , lambda func_name : {
868+ 'docstring' : 'docstring1' ,
869+ 'errors' : [('ER01' , 'err desc' ),
870+ ('ER02' , 'err desc' ),
871+ ('ER03' , 'err desc' )],
872+ 'warnings' : [],
873+ 'examples_errors' : '' })
874+ exit_status = validate_docstrings .main (func_name = 'docstring1' ,
875+ prefix = None ,
876+ errors = [],
877+ output_format = 'default' )
878+ assert exit_status == 0
879+
880+ def test_exit_status_errors_for_validate_all (self , monkeypatch ):
894881 monkeypatch .setattr (
895- validate_docstrings , 'validate_all' ,
896- lambda : {'docstring1' : {'errors' : [('ER01' , 'err desc' ),
897- ('ER02' , 'err desc' ),
898- ('ER03' , 'err desc' )]},
899- 'docstring2' : {'errors' : [('ER04' , 'err desc' ),
900- ('ER05' , 'err desc' )]}})
901- num_errors = validate_docstrings .main (func_name = None ,
902- prefix = None ,
903- errors = [],
904- output_format = 'default' )
905- assert num_errors == 5
906-
907- def test_no_num_errors_for_validate_all (self , monkeypatch ):
882+ validate_docstrings , 'validate_all' , lambda prefix : {
883+ 'docstring1' : {'errors' : [('ER01' , 'err desc' ),
884+ ('ER02' , 'err desc' ),
885+ ('ER03' , 'err desc' )],
886+ 'file' : 'module1.py' ,
887+ 'file_line' : 23 },
888+ 'docstring2' : {'errors' : [('ER04' , 'err desc' ),
889+ ('ER05' , 'err desc' )],
890+ 'file' : 'module2.py' ,
891+ 'file_line' : 925 }})
892+ exit_status = validate_docstrings .main (func_name = None ,
893+ prefix = None ,
894+ errors = [],
895+ output_format = 'default' )
896+ assert exit_status == 5
897+
898+ def test_no_exit_status_noerrors_for_validate_all (self , monkeypatch ):
908899 monkeypatch .setattr (
909- validate_docstrings , 'validate_all' ,
910- lambda : {'docstring1' : {'errors' : [],
911- 'warnings' : [('WN01' , 'warn desc' )]},
912- 'docstring2' : {'errors' : []}})
913- num_errors = validate_docstrings .main (func_name = None ,
914- prefix = None ,
915- errors = [],
916- output_format = 'default' )
917- assert num_errors == 0
918-
919- def test_prefix_param_filters_docstrings (self , monkeypatch ):
900+ validate_docstrings , 'validate_all' , lambda prefix : {
901+ 'docstring1' : {'errors' : [],
902+ 'warnings' : [('WN01' , 'warn desc' )]},
903+ 'docstring2' : {'errors' : []}})
904+ exit_status = validate_docstrings .main (func_name = None ,
905+ prefix = None ,
906+ errors = [],
907+ output_format = 'default' )
908+ assert exit_status == 0
909+
910+ def test_exit_status_for_validate_all_json (self , monkeypatch ):
911+ print ('EXECUTED' )
920912 monkeypatch .setattr (
921- validate_docstrings , 'validate_all' ,
922- lambda : {'Series.foo' : {'errors' : [('ER01' , 'err desc' ),
923- ('ER02' , 'err desc' ),
924- ('ER03' , 'err desc' )]},
925- 'DataFrame.bar' : {'errors' : [('ER04' , 'err desc' ),
926- ('ER05' , 'err desc' )]},
927- 'Series.foobar' : {'errors' : [('ER06' , 'err desc' )]}})
928- num_errors = validate_docstrings .main (func_name = None ,
929- prefix = 'Series.' ,
930- errors = [],
931- output_format = 'default' )
932- assert num_errors == 4
913+ validate_docstrings , 'validate_all' , lambda prefix : {
914+ 'docstring1' : {'errors' : [('ER01' , 'err desc' ),
915+ ('ER02' , 'err desc' ),
916+ ('ER03' , 'err desc' )]},
917+ 'docstring2' : {'errors' : [('ER04' , 'err desc' ),
918+ ('ER05' , 'err desc' )]}})
919+ exit_status = validate_docstrings .main (func_name = None ,
920+ prefix = None ,
921+ errors = [],
922+ output_format = 'json' )
923+ assert exit_status == 0
933924
934925 def test_errors_param_filters_errors (self , monkeypatch ):
935926 monkeypatch .setattr (
936- validate_docstrings , 'validate_all' ,
937- lambda : {'Series.foo' : {'errors' : [('ER01' , 'err desc' ),
938- ('ER02' , 'err desc' ),
939- ('ER03' , 'err desc' )]},
940- 'DataFrame.bar' : {'errors' : [('ER01' , 'err desc' ),
941- ('ER02' , 'err desc' )]},
942- 'Series.foobar' : {'errors' : [('ER01' , 'err desc' )]}})
943- num_errors = validate_docstrings .main (func_name = None ,
944- prefix = None ,
945- errors = ['E01' ],
946- output_format = 'default' )
947- assert num_errors == 3
948-
949- num_errors = validate_docstrings .main (func_name = None ,
950- prefix = None ,
951- errors = ['E03' ],
952- output_format = 'default' )
953- assert num_errors == 1
927+ validate_docstrings , 'validate_all' , lambda prefix : {
928+ 'Series.foo' : {'errors' : [('ER01' , 'err desc' ),
929+ ('ER02' , 'err desc' ),
930+ ('ER03' , 'err desc' )],
931+ 'file' : 'series.py' ,
932+ 'file_line' : 142 },
933+ 'DataFrame.bar' : {'errors' : [('ER01' , 'err desc' ),
934+ ('ER02' , 'err desc' )],
935+ 'file' : 'frame.py' ,
936+ 'file_line' : 598 },
937+ 'Series.foobar' : {'errors' : [('ER01' , 'err desc' )],
938+ 'file' : 'series.py' ,
939+ 'file_line' : 279 }})
940+ exit_status = validate_docstrings .main (func_name = None ,
941+ prefix = None ,
942+ errors = ['ER01' ],
943+ output_format = 'default' )
944+ assert exit_status == 3
945+
946+ exit_status = validate_docstrings .main (func_name = None ,
947+ prefix = None ,
948+ errors = ['ER03' ],
949+ output_format = 'default' )
950+ assert exit_status == 1
0 commit comments