@staticmethod<EOL><INDENT>def read_nose(in_file):<DEDENT>
suites = {}<EOL>doc_xml = minidom.parse(in_file)<EOL>suite_xml = doc_xml.getElementsByTagName("<STR_LIT>")[<NUM_LIT:0>]<EOL>for case_xml in suite_xml.getElementsByTagName('<STR_LIT>'):<EOL><INDENT>classname = case_xml.getAttribute('<STR_LIT>')<EOL>if classname not in suites:<EOL><INDENT>suites[classname] = []<EOL><DEDENT>case = {<EOL>'<STR_LIT:name>': case_xml.getAttribute('<STR_LIT:name>'),<EOL>'<STR_LIT:time>': float(case_xml.getAttribute('<STR_LIT:time>')),<EOL>}<EOL>skipped_xml = case_xml.getElementsByTagName('<STR_LIT>')<EOL>if skipped_xml:<EOL><INDENT>if skipped_xml[<NUM_LIT:0>].hasAttribute('<STR_LIT:type>'):<EOL><INDENT>type = skipped_xml[<NUM_LIT:0>].getAttribute('<STR_LIT:type>')<EOL><DEDENT>else:<EOL><INDENT>type = '<STR_LIT>'<EOL><DEDENT>case['<STR_LIT>'] = {<EOL>'<STR_LIT:type>': type,<EOL>'<STR_LIT:message>': skipped_xml[<NUM_LIT:0>].getAttribute('<STR_LIT:message>'),<EOL>'<STR_LIT:text>': "<STR_LIT>".join([child.nodeValue for child in skipped_xml[<NUM_LIT:0>].childNodes]),<EOL>}<EOL><DEDENT>failure_xml = case_xml.getElementsByTagName('<STR_LIT>')<EOL>if failure_xml:<EOL><INDENT>if failure_xml[<NUM_LIT:0>].hasAttribute('<STR_LIT:type>'):<EOL><INDENT>type = failure_xml[<NUM_LIT:0>].getAttribute('<STR_LIT:type>')<EOL><DEDENT>else:<EOL><INDENT>type = '<STR_LIT>'<EOL><DEDENT>case['<STR_LIT>'] = {<EOL>'<STR_LIT:type>': type,<EOL>'<STR_LIT:message>': failure_xml[<NUM_LIT:0>].getAttribute('<STR_LIT:message>'),<EOL>'<STR_LIT:text>': "<STR_LIT>".join([child.nodeValue for child in failure_xml[<NUM_LIT:0>].childNodes]),<EOL>}<EOL><DEDENT>error_xml = case_xml.getElementsByTagName('<STR_LIT:error>')<EOL>if error_xml:<EOL><INDENT>if error_xml[<NUM_LIT:0>].hasAttribute('<STR_LIT:type>'):<EOL><INDENT>type = error_xml[<NUM_LIT:0>].getAttribute('<STR_LIT:type>')<EOL><DEDENT>else:<EOL><INDENT>type = '<STR_LIT>'<EOL><DEDENT>case['<STR_LIT:error>'] = {<EOL>'<STR_LIT:type>': type,<EOL>'<STR_LIT:message>': error_xml[<NUM_LIT:0>].getAttribute('<STR_LIT:message>'),<EOL>'<STR_LIT:text>': "<STR_LIT>".join([child.nodeValue for child in error_xml[<NUM_LIT:0>].childNodes]),<EOL>}<EOL><DEDENT>suites[classname].append(case)<EOL><DEDENT>return suites<EOL>
Parse nose-style test reports into a `dict`

        Args:
            in_file (:obj:`str`): path to nose-style test report

        Returns:
            :obj:`dict`: dictionary of test suites