示例#1
0
def create_summary_lines_failures(project, job, failure_line_list):
    formatter = TbplFormatter()

    text_log_summary = {"logurl": "http://example.org/log-test/",
                        "step_data": {"all_errors": [],
                                      "steps": [],
                                      "errors_truncated": False},
                        }

    for i, (base_data, updates) in enumerate(failure_line_list):
        data = get_data(base_data, updates)
        if not data:
            continue

        text_log_summary["step_data"]["all_errors"].append(
            {"line": formatter(data).split("\n")[0],
             "linenumber": i})

    print text_log_summary

    placeholders = [job["id"], 'text_log_summary',
                    'json', zlib.compress(json.dumps(text_log_summary)),
                    job["id"], 'text_log_summary']

    with ArtifactsModel(project) as artifacts_model:
        artifacts_model.store_job_artifact([placeholders])
        return artifacts_model.get_job_artifact_list(
            0, 1, {'job_id': set([('=', job['id'])]),
                   "name": set([("=", "text_log_summary")])})[0]
示例#2
0
def create_bug_suggestions_failures(project, job, failure_line_list):
    formatter = TbplFormatter()

    bug_suggestions = []

    for i, (base_data, updates) in enumerate(failure_line_list):
        data = get_data(base_data, updates)
        if not data:
            continue

        bug_suggestions.append({
            "search": formatter(data).split("\n")[0],
            "bugs": {
                "all_others": [],
                "open_recent": []
            }
        })

    placeholders = [
        job["id"], 'Bug suggestions', 'json',
        zlib.compress(json.dumps(bug_suggestions)), job["id"],
        'Bug suggestions'
    ]

    with ArtifactsModel(project) as artifacts_model:
        artifacts_model.store_job_artifact([placeholders])
        return artifacts_model.get_job_artifact_list(
            0, 1, {
                'job_id': set([('=', job['id'])]),
                "name": set([("=", "Bug suggestions")])
            })[0]
示例#3
0
def structured_iterator(failure_lines):
    """Create FailureLine, Tbpl-formatted-string tuples."""
    summary = partial(failure_line_summary, TbplFormatter())
    for failure_line in failure_lines:
        repr_str = summary(failure_line)
        if repr_str:
            yield failure_line, repr_str

    while True:
        yield None, None
示例#4
0
def create_text_log_errors(job, failure_line_list):
    formatter = TbplFormatter()
    errors = []
    for i, (base_data, updates) in enumerate(failure_line_list):
        data = get_data(base_data, updates)
        if not data:
            continue
        error = TextLogError.objects.create(
            job=job, line=formatter(data).split("\n")[0], line_number=i)
        errors.append(error)

    return errors
示例#5
0
def create_text_log_errors(job, failure_line_list):
    step = TextLogStep.objects.create(job=job,
                                      name='everything',
                                      started_line_number=1,
                                      finished_line_number=10,
                                      started=datetime.datetime.now(),
                                      finished=datetime.datetime.now(),
                                      result=TextLogStep.TEST_FAILED)

    formatter = TbplFormatter()
    errors = []
    for i, (base_data, updates) in enumerate(failure_line_list):
        data = get_data(base_data, updates)
        if not data:
            continue
        error = TextLogError.objects.create(
            step=step, line=formatter(data).split("\n")[0], line_number=i)
        errors.append(error)

    return errors
示例#6
0
 def __init__(self):
     """Stateful function for generating a regexp that matches TBPL formatted output
     corresponding to a specific FailureLine"""
     self._formatter = TbplFormatter()