@@ -55,18 +55,17 @@ def _generate_report(self, self_contained=False):
55
55
version = __version__ ,
56
56
styles = self .css ,
57
57
run_count = self ._run_count (),
58
+ running_state = self ._report .running_state ,
58
59
self_contained = self_contained ,
59
- outcomes = self ._report .data [ " outcomes" ] ,
60
+ outcomes = self ._report .outcomes ,
60
61
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 ,
65
64
)
66
65
67
66
self ._write_report (rendered_report )
68
67
69
- def _generate_environment (self , metadata_key ):
68
+ def _generate_environment (self ):
70
69
metadata = self ._config .stash [metadata_key ]
71
70
for key in metadata .keys ():
72
71
value = metadata [key ]
@@ -126,45 +125,42 @@ def _write_report(self, rendered_report):
126
125
f .write (rendered_report )
127
126
128
127
def _run_count (self ):
129
- data = self ._report .data
130
128
relevant_outcomes = ["passed" , "failed" , "xpassed" , "xfailed" ]
131
129
counts = 0
132
- for outcome in data [ " outcomes" ] .keys ():
130
+ for outcome in self . _report . outcomes .keys ():
133
131
if outcome in relevant_outcomes :
134
- counts += data [ " outcomes" ] [outcome ]["value" ]
132
+ counts += self . _report . outcomes [outcome ]["value" ]
135
133
136
134
plural = counts > 1
137
- duration = _format_duration (data [ "totalDuration" ] )
135
+ duration = _format_duration (self . _report . total_duration )
138
136
139
- if data [ "runningState" ]. lower () == "finished" :
137
+ if self . _report . running_state == "finished" :
140
138
return f"{ counts } { 'tests' if plural else 'test' } took { duration } ."
141
139
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."
145
141
146
142
@pytest .hookimpl (trylast = True )
147
143
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 ())
149
145
150
146
session .config .hook .pytest_html_report_title (report = self ._report )
151
147
152
- headers = self ._report .data [ "resultsTableHeader" ]
148
+ headers = self ._report .table_header
153
149
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 )
155
151
156
- self ._report .set_data ( "runningState" , "Started" )
152
+ self ._report .running_state = "started"
157
153
self ._generate_report ()
158
154
159
155
@pytest .hookimpl (trylast = True )
160
156
def pytest_sessionfinish (self , session ):
161
157
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" ],
165
161
session = session ,
166
162
)
167
- self ._report .set_data ( "runningState" , "Finished" )
163
+ self ._report .running_state = "finished"
168
164
self ._generate_report ()
169
165
170
166
@pytest .hookimpl (trylast = True )
@@ -176,7 +172,7 @@ def pytest_terminal_summary(self, terminalreporter):
176
172
177
173
@pytest .hookimpl (trylast = True )
178
174
def pytest_collection_finish (self , session ):
179
- self ._report .set_data ( "collectedItems" , len (session .items ) )
175
+ self ._report .collected_items = len (session .items )
180
176
181
177
@pytest .hookimpl (trylast = True )
182
178
def pytest_runtest_logreport (self , report ):
@@ -191,7 +187,7 @@ def pytest_runtest_logreport(self, report):
191
187
"result" : outcome ,
192
188
"duration" : _format_duration (report .duration ),
193
189
}
194
- self ._report .data [ "totalDuration" ] += report .duration
190
+ self ._report .total_duration += report .duration
195
191
196
192
test_id = report .nodeid
197
193
if report .when != "call" :
@@ -220,7 +216,7 @@ def pytest_runtest_logreport(self, report):
220
216
221
217
# don't count passed setups and teardowns
222
218
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
224
220
225
221
processed_logs = _process_logs (report )
226
222
self ._config .hook .pytest_html_results_table_html (
0 commit comments