Esempio n. 1
0
def format_actual_failures(failure_dict, known_failures, verbosity):
    rv = ""
    for category in 'New Failures', 'Known Failures, Unknown Error', 'Known Failures':
        rv += indent(str(category), width=4) + '\n'
        category_failures = failure_dict[category]

        if verbosity > 1 or category != 'Known Failures':
            if category_failures:
                for f in category_failures:
                    rv += indent(pasteable_name(f).strip(), width=8) + '\n'

                    jira_urls = tuple('(see {})'.format(mf.jira_url)
                                      for mf in matching_failures(f, known_failures))
                    if jira_urls:
                        rv += indent('\n'.join(jira_urls), width=8) + '\n'
                    elif 'Known Failures' in category:
                        rv += indent('No known JIRA tickets. You should fix that ಠ_ಠ\n',
                                     width=8)

                    if verbosity > 2 or category != 'Known Failures':
                        rv += indent(f.errorDetails.strip(), width=12) + '\n'
            else:
                rv += indent('No failures in this category.', width=8) + '\n'
        else:
            n = len(category_failures)
            rv += indent('{n} {f} in this category'.format(n=n,
                                                           f=numberize('failure', n)),
                         width=8)

    return rv
Esempio n. 2
0
def failure_to_known_failure_json(failure, job_name):
    kf = {
        'job_name': job_name,
        'test_name': pasteable_name(failure),
        'jira_url': 'TKTKTK',
        'known_pattern': failure.errorDetails
    }
    validate_known_failure(kf)
    return json.dumps(kf, indent=4, separators=(',', ': '))
Esempio n. 3
0
def format_noise_failures(failure_dict, verbosity):
    rv = ""

    for category, category_failures in failure_dict.items():
        rv += indent(str(category), width=4) + '\n'

        if verbosity > 1:
            if category_failures:
                for f in category_failures:
                    rv += indent(pasteable_name(f).strip(), width=8) + '\n'
                    if verbosity > 2 or category != 'Known Failures':
                        rv += indent(f.errorDetails.strip(), width=12) + '\n'
            else:
                rv += indent('No failures in this category.', width=8) + '\n'
        else:
            n = len(category_failures)
            rv += indent('{n} {f} in this category'.format(n=n,
                                                           f=numberize('failure', n)),
                         width=8)

    return rv