MCPcopy Index your code
hub / github.com/python/mypy / _generate_junit_contents

Function _generate_junit_contents

mypy/util.py:266–313  ·  view source on GitHub ↗
(
    dt: float,
    serious: bool,
    messages_by_file: dict[str | None, list[str]],
    version: str,
    platform: str,
)

Source from the content-addressed store, hash-verified

264
265
266def _generate_junit_contents(
267 dt: float,
268 serious: bool,
269 messages_by_file: dict[str | None, list[str]],
270 version: str,
271 platform: str,
272) -> str:
273 from xml.sax.saxutils import escape
274
275 if serious:
276 failures = 0
277 errors = len(messages_by_file)
278 else:
279 failures = len(messages_by_file)
280 errors = 0
281
282 xml = JUNIT_HEADER_TEMPLATE.format(
283 errors=errors,
284 failures=failures,
285 time=dt,
286 # If there are no messages, we still write one "test" indicating success.
287 tests=len(messages_by_file) or 1,
288 )
289
290 if not messages_by_file:
291 xml += JUNIT_TESTCASE_PASS_TEMPLATE.format(time=dt, ver=version, platform=platform)
292 else:
293 for filename, messages in messages_by_file.items():
294 if filename is not None:
295 xml += JUNIT_TESTCASE_FAIL_TEMPLATE.format(
296 text=escape("\n".join(messages)),
297 filename=filename,
298 time=dt,
299 name="mypy-py{ver}-{platform} {filename}".format(
300 ver=version, platform=platform, filename=filename
301 ),
302 )
303 else:
304 xml += JUNIT_TESTCASE_FAIL_TEMPLATE.format(
305 text=escape("\n".join(messages)),
306 filename="mypy",
307 time=dt,
308 name=f"mypy-py{version}-{platform}",
309 )
310
311 xml += JUNIT_FOOTER
312
313 return xml
314
315
316def write_junit_xml(

Callers 5

test_junit_passMethod · 0.90
test_serious_errorMethod · 0.90
write_junit_xmlFunction · 0.85

Calls 4

lenFunction · 0.85
formatMethod · 0.45
itemsMethod · 0.45
joinMethod · 0.45

Tested by 4

test_junit_passMethod · 0.72
test_serious_errorMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…