from junitparser import JUnitXml, Element, Attr, TestCase
import argparse
import glob, os

class ClassNameTestCase(TestCase):
    classname = Attr('classname')

parser = argparse.ArgumentParser()
parser.add_argument("search_path")
parser.add_argument("output_name")
args = parser.parse_args()

xml = JUnitXml()
for file in glob.glob(args.search_path + "/**/*.xml", recursive=True):
    xml += JUnitXml.fromfile(file)

for suite in xml:
    for case in suite:
        classname_case = ClassNameTestCase.fromelem(case)
        if classname_case.name == 'test_all':
            classname_case.name = classname_case.classname
xml.write(args.output_name)