def test_update_autoclassification_bug(test_job, test_job_2, classified_failures): classified_failure = classified_failures[0] user = User.objects.create() # create some TextLogErrors attached to test_job_2 text_log_errors, _ = create_lines(test_job_2, [(test_line, {})]) # Job 1 has two failure lines so nothing should be updated assert classified_failure.bug_number is None # Create a BugJobMap BugJobMap.create( job_id=test_job.id, bug_id=1234, user=user, ) mark_best_classification(text_log_errors[0], classified_failure) assert classified_failure.bug_number is None metadata = TextLogErrorMetadata.objects.get( text_log_error__step__job=test_job_2) metadata.failure_line = FailureLine.objects.get(pk=3) metadata.save() BugJobMap.create( job_id=test_job_2.id, bug_id=1234, user=user, ) classified_failure.refresh_from_db() assert classified_failure.bug_number == 1234
def test_update_autoclassification_bug(test_job, test_job_2, classified_failures): classified_failure = classified_failures[0] user = User.objects.create() # create some TextLogErrors attached to test_job_2 text_log_errors, _ = create_lines(test_job_2, [(test_line, {})]) # Job 1 has two failure lines so nothing should be updated assert classified_failure.bug_number is None # Create a BugJobMap BugJobMap.create( job_id=test_job.id, bug_id=1234, user=user, ) mark_best_classification(text_log_errors[0], classified_failure) assert classified_failure.bug_number is None metadata = TextLogErrorMetadata.objects.get(text_log_error__step__job=test_job_2) metadata.failure_line = FailureLine.objects.get(pk=3) metadata.save() BugJobMap.create( job_id=test_job_2.id, bug_id=1234, user=user, ) classified_failure.refresh_from_db() assert classified_failure.bug_number == 1234
def classified_failures(test_job, text_log_errors_failure_lines, test_matcher, failure_classifications): from treeherder.model.models import ClassifiedFailure _, failure_lines = text_log_errors_failure_lines classified_failures = [] for failure_line in failure_lines: if failure_line.job_guid == test_job.guid: classified_failure = ClassifiedFailure.objects.create() failure_line.error.create_match(test_matcher, classified_failure) mark_best_classification(failure_line.error, classified_failure) classified_failures.append(classified_failure) return classified_failures
def test_update_autoclassification_bug(test_job, test_job_2, classified_failures): classified_failure = classified_failures[0] # Job 1 has two failure lines so nothing should be updated assert test_job.update_autoclassification_bug(1234) is None lines = [(test_line, {})] error_lines, _ = create_lines(test_job_2, lines) mark_best_classification(error_lines[0], classified_failures[0]) assert classified_failure.bug_number is None metadata = TextLogErrorMetadata.objects.get(text_log_error__step__job=test_job_2) metadata.failure_line = FailureLine.objects.get(pk=3) metadata.save() assert test_job_2.update_autoclassification_bug(1234) == classified_failures[0] classified_failures[0].refresh_from_db() assert classified_failures[0].bug_number == 1234
def classified_failures(test_job, text_log_errors_failure_lines, test_matcher, failure_classifications): from treeherder.model.models import ClassifiedFailure from treeherder.services.elasticsearch import refresh_index _, failure_lines = text_log_errors_failure_lines classified_failures = [] for failure_line in failure_lines: if failure_line.job_guid == test_job.guid: classified_failure = ClassifiedFailure.objects.create() failure_line.error.create_match(test_matcher, classified_failure) mark_best_classification(failure_line.error, classified_failure) classified_failures.append(classified_failure) if settings.ELASTICSEARCH_URL: refresh_index() return classified_failures