@@ -55,18 +55,17 @@ def _generate_report(self, self_contained=False):
5555 version = __version__ ,
5656 styles = self .css ,
5757 run_count = self ._run_count (),
58+ running_state = self ._report .running_state ,
5859 self_contained = self_contained ,
59- outcomes = self ._report .data [ " outcomes" ] ,
60+ outcomes = self ._report .outcomes ,
6061 test_data = test_data ,
61- table_head = self ._report .data ["resultsTableHeader" ],
62- prefix = self ._report .data ["additionalSummary" ]["prefix" ],
63- summary = self ._report .data ["additionalSummary" ]["summary" ],
64- postfix = self ._report .data ["additionalSummary" ]["postfix" ],
62+ table_head = self ._report .table_header ,
63+ additional_summary = self ._report .additional_summary ,
6564 )
6665
6766 self ._write_report (rendered_report )
6867
69- def _generate_environment (self , metadata_key ):
68+ def _generate_environment (self ):
7069 metadata = self ._config .stash [metadata_key ]
7170 for key in metadata .keys ():
7271 value = metadata [key ]
@@ -126,45 +125,42 @@ def _write_report(self, rendered_report):
126125 f .write (rendered_report )
127126
128127 def _run_count (self ):
129- data = self ._report .data
130128 relevant_outcomes = ["passed" , "failed" , "xpassed" , "xfailed" ]
131129 counts = 0
132- for outcome in data [ " outcomes" ] .keys ():
130+ for outcome in self . _report . outcomes .keys ():
133131 if outcome in relevant_outcomes :
134- counts += data [ " outcomes" ] [outcome ]["value" ]
132+ counts += self . _report . outcomes [outcome ]["value" ]
135133
136134 plural = counts > 1
137- duration = _format_duration (data [ "totalDuration" ] )
135+ duration = _format_duration (self . _report . total_duration )
138136
139- if data [ "runningState" ]. lower () == "finished" :
137+ if self . _report . running_state == "finished" :
140138 return f"{ counts } { 'tests' if plural else 'test' } took { duration } ."
141139
142- return (
143- f"{ counts } /{ data ['collectedItems' ]} { 'tests' if plural else 'test' } done."
144- )
140+ return f"{ counts } /{ self ._report .collected_items } { 'tests' if plural else 'test' } done."
145141
146142 @pytest .hookimpl (trylast = True )
147143 def pytest_sessionstart (self , session ):
148- self ._report .set_data ("environment" , self ._generate_environment (metadata_key ))
144+ self ._report .set_data ("environment" , self ._generate_environment ())
149145
150146 session .config .hook .pytest_html_report_title (report = self ._report )
151147
152- headers = self ._report .data [ "resultsTableHeader" ]
148+ headers = self ._report .table_header
153149 session .config .hook .pytest_html_results_table_header (cells = headers )
154- self ._report .data [ "resultsTableHeader" ] = _fix_py (headers )
150+ self ._report .table_header = _fix_py (headers )
155151
156- self ._report .set_data ( "runningState" , "Started" )
152+ self ._report .running_state = "started"
157153 self ._generate_report ()
158154
159155 @pytest .hookimpl (trylast = True )
160156 def pytest_sessionfinish (self , session ):
161157 session .config .hook .pytest_html_results_summary (
162- prefix = self ._report .data [ "additionalSummary" ] ["prefix" ],
163- summary = self ._report .data [ "additionalSummary" ] ["summary" ],
164- postfix = self ._report .data [ "additionalSummary" ] ["postfix" ],
158+ prefix = self ._report .additional_summary ["prefix" ],
159+ summary = self ._report .additional_summary ["summary" ],
160+ postfix = self ._report .additional_summary ["postfix" ],
165161 session = session ,
166162 )
167- self ._report .set_data ( "runningState" , "Finished" )
163+ self ._report .running_state = "finished"
168164 self ._generate_report ()
169165
170166 @pytest .hookimpl (trylast = True )
@@ -176,7 +172,7 @@ def pytest_terminal_summary(self, terminalreporter):
176172
177173 @pytest .hookimpl (trylast = True )
178174 def pytest_collection_finish (self , session ):
179- self ._report .set_data ( "collectedItems" , len (session .items ) )
175+ self ._report .collected_items = len (session .items )
180176
181177 @pytest .hookimpl (trylast = True )
182178 def pytest_runtest_logreport (self , report ):
@@ -191,7 +187,7 @@ def pytest_runtest_logreport(self, report):
191187 "result" : outcome ,
192188 "duration" : _format_duration (report .duration ),
193189 }
194- self ._report .data [ "totalDuration" ] += report .duration
190+ self ._report .total_duration += report .duration
195191
196192 test_id = report .nodeid
197193 if report .when != "call" :
@@ -220,7 +216,7 @@ def pytest_runtest_logreport(self, report):
220216
221217 # don't count passed setups and teardowns
222218 if not (report .when in ["setup" , "teardown" ] and report .outcome == "passed" ):
223- self ._report .data [ " outcomes" ][ outcome . lower ()][ "value" ] += 1
219+ self ._report .outcomes = outcome
224220
225221 processed_logs = _process_logs (report )
226222 self ._config .hook .pytest_html_results_table_html (
0 commit comments