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]
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]
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
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
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
def __init__(self): """Stateful function for generating a regexp that matches TBPL formatted output corresponding to a specific FailureLine""" self._formatter = TbplFormatter()