@@ -120,6 +120,20 @@ def test_check_supports_vebose_output(self):
120120 self .assertTrue (parse_args (['check' , '-v' ]).verbose )
121121 self .assertTrue (parse_args (['check' , '--verbose' ]).verbose )
122122
123+ def test_check_supports_mardown_output (self ):
124+ self .assertFalse (parse_args (['check' ]).markdown )
125+ self .assertTrue (parse_args (['check' , '-md' ]).markdown )
126+ self .assertTrue (parse_args (['check' , '--markdown' ]).markdown )
127+
128+ def test_check_flags_are_mutually_exclusive (self ):
129+ with captured_output () as (out , err ):
130+ self .assertRaises (SystemExit ,
131+ parse_args , ['check' , '-md' , '-v' ])
132+ self .assert_contains (
133+ ['error:' , 'argument -v/--verbose: ' +
134+ 'not allowed with argument -md/--markdown' ],
135+ err .getvalue ())
136+
123137
124138class ArgsStub (object ):
125139 def __init__ (self ):
@@ -497,7 +511,7 @@ def setUpClass(cls):
497511
498512 def setUp (self ):
499513 super (TestBenchmarkDoctor , self ).setUp ()
500- self .args = Stub (verbose = False )
514+ self .args = Stub (verbose = False , markdown = False )
501515 self ._doctor_log_handler .reset ()
502516 self .logs = self ._doctor_log_handler .messages
503517
@@ -516,8 +530,9 @@ def test_uses_logging(self):
516530 def test_supports_verbose_output (self ):
517531 driver = BenchmarkDriverMock (tests = ['B1' , 'B2' ])
518532 driver .verbose = True
533+ self .args .verbose = True
519534 with captured_output () as (out , _ ):
520- BenchmarkDoctor (Stub ( verbose = True ) , driver )
535+ BenchmarkDoctor (self . args , driver )
521536 self .assert_contains (['Checking tests: B1, B2' ], out .getvalue ())
522537
523538 def test_uses_report_formatter (self ):
@@ -528,6 +543,14 @@ def test_uses_report_formatter(self):
528543 self .assertTrue (isinstance (console_handler .formatter ,
529544 LoggingReportFormatter ))
530545
546+ def test_uses_optional_markdown_report_formatter (self ):
547+ self .args .markdown = True
548+ with captured_output () as (_ , _ ):
549+ doc = BenchmarkDoctor (self .args , BenchmarkDriverMock (tests = ['B1' ]))
550+ self .assertTrue (doc )
551+ console_handler = logging .getLogger ('BenchmarkDoctor' ).handlers [1 ]
552+ self .assertTrue (isinstance (console_handler , MarkdownReportHandler ))
553+
531554 def test_measure_10_independent_1s_benchmark_series (self ):
532555 """Measurement strategy takes 5 i2 and 5 i1 series.
533556
0 commit comments