in testing/flakybot-function/main.py [0:0]
def write_xml_file(build_event):
from junit_xml import TestSuite, TestCase
build_id = build_event["id"]
steps = build_event["steps"]
outputs = build_event["results"]["buildStepOutputs"]
test_cases = []
for x in range(len(steps)):
step = steps[x]
output = outputs[x]
status = step["status"]
start_time, elapsed = get_elapsed_time(step)
if status in ("FAILURE", "INTERNAL_ERROR", "TIMEOUT", "EXPIRED"):
failure = outputs[x] or status
test = TestCase(
name=step.get("id") or step.get("name"),
stderr=failure,
timestamp=start_time,
elapsed_sec=elapsed
)
test.add_failure_info(build_event.get("logUrl"))
else:
test = TestCase(
name=step.get("id") or step.get("name"),
stdout=outputs[x] or status,
timestamp=start_time,
elapsed_sec=elapsed,
)
test_cases.append(test)
ts = TestSuite("Cloud Build Suite", test_cases)
# create a new XML file with the results
sponge_log = open("/tmp/sponge_log.xml", "w")
sponge_log.write(TestSuite.to_xml_string([ts]))