예제 #1
0
    def test_fetch_not_finished(self, get_results, get_details):
        lava = LAVABackend(None)
        testjob = TestJob(
            job_id='9999',
            backend=self.backend)
        lava.fetch(testjob)

        get_results.assert_not_called()
예제 #2
0
파일: test_lava.py 프로젝트: Linaro/squad
    def test_fetch_not_finished(self, get_results, get_details):
        lava = LAVABackend(None)
        testjob = TestJob(
            job_id='9999',
            backend=self.backend)
        lava.fetch(testjob)

        get_results.assert_not_called()
예제 #3
0
    def test_fetch_timeout(self, get_details):
        lava = LAVABackend(None)
        testjob = TestJob(
            job_id='9999',
            target=self.project,
            backend=self.backend)

        # Make sure lava.fetch() raises fetch issue,
        # backend.fetch() will increase testjob.fetch_attempt accordingly
        with self.assertRaises(TemporaryFetchIssue):
            lava.fetch(testjob)
예제 #4
0
    def test_parse_results_metadata(self, get_results, get_details, get_logs):
        lava = LAVABackend(None)
        testjob = TestJob(job_id='1234', backend=self.backend)
        status, completed, metadata, results, metrics, logs = lava.fetch(
            testjob)

        self.assertEqual(JOB_METADATA, metadata)
예제 #5
0
파일: test_lava.py 프로젝트: DejunLiu/squad
    def test_parse_results(self, get_results, get_details):
        lava = LAVABackend(None)
        testjob = TestJob(job_id='1234', backend=self.backend)
        status, metadata, results, metrics = lava.fetch(testjob)

        self.assertEqual(len(results), 1)
        self.assertEqual(len(metrics), 1)
예제 #6
0
    def test_parse_results_metadata_with_suite_versions(
            self, get_results, get_details, get_logs):
        lava = LAVABackend(None)
        testjob = TestJob(job_id='1234', backend=self.backend)
        status, completed, metadata, results, metrics, logs = lava.fetch(
            testjob)

        self.assertEqual({"suite1": "1.0"}, metadata['suite_versions'])
예제 #7
0
 def test_canceled(self, get_results, get_details, get_logs):
     lava = LAVABackend(None)
     testjob = TestJob(job_id='1234',
                       backend=self.backend,
                       target=self.project)
     status, completed, metadata, results, metrics, logs = lava.fetch(
         testjob)
     self.assertFalse(completed)
예제 #8
0
    def test_fetch_basics(self, get_results, get_details, get_logs):
        lava = LAVABackend(None)
        testjob = TestJob(job_id='9999', backend=self.backend)
        results = lava.fetch(testjob)

        get_details.assert_called_with('9999')
        get_results.assert_called_with('9999')
        self.assertEqual('Complete', results[0])
예제 #9
0
파일: test_lava.py 프로젝트: Linaro/squad
 def test_canceled(self, get_results, get_details, get_logs):
     lava = LAVABackend(None)
     testjob = TestJob(
         job_id='1234',
         backend=self.backend,
         target=self.project)
     status, completed, metadata, results, metrics, logs = lava.fetch(testjob)
     self.assertFalse(completed)
예제 #10
0
파일: test_lava.py 프로젝트: Linaro/squad
    def test_parse_results_metadata_with_suite_versions(self, get_results, get_details, get_logs):
        lava = LAVABackend(None)
        testjob = TestJob(
            job_id='1234',
            backend=self.backend)
        status, completed, metadata, results, metrics, logs = lava.fetch(testjob)

        self.assertEqual({"suite1": "1.0"}, metadata['suite_versions'])
예제 #11
0
파일: test_lava.py 프로젝트: Linaro/squad
    def test_parse_results_empty_metadata(self, get_results, get_details, get_logs):
        lava = LAVABackend(None)
        testjob = TestJob(
            job_id='1234',
            backend=self.backend)
        status, completed, metadata, results, metrics, logs = lava.fetch(testjob)

        self.assertEqual({}, metadata)
예제 #12
0
    def test_parse_results(self, get_results, get_details, get_logs):
        lava = LAVABackend(None)
        testjob = TestJob(job_id='1234', backend=self.backend)
        status, completed, metadata, results, metrics, logs = lava.fetch(
            testjob)

        self.assertEqual(len(results), 1)
        self.assertEqual(len(metrics), 1)
        self.assertEqual(10, metrics['DefinitionFoo/case_foo'])
예제 #13
0
 def test_incomplete_string_results_metadata(self, get_results, get_details, get_logs):
     lava = LAVABackend(None)
     testjob = TestJob(
         job_id='1234',
         backend=self.backend,
         target=self.project)
     status, completed, metadata, results, metrics, logs = lava.fetch(testjob)
     self.assertFalse(completed)
     self.assertEqual(TEST_RESULTS_INFRA_FAILURE_STR[0]['metadata'], testjob.failure)
예제 #14
0
 def test_admin_notification(self, get_results, get_details, get_logs):
     self.project.admin_subscriptions.create(email='*****@*****.**')
     lava = LAVABackend(None)
     testjob = TestJob(job_id='1234',
                       backend=self.backend,
                       target=self.project)
     status, completed, metadata, results, metrics, logs = lava.fetch(
         testjob)
     self.assertEqual(1, len(mail.outbox))
예제 #15
0
    def test_parse_results_empty_metadata(self, get_results, get_details, test_log):
        lava = LAVABackend(None)
        testjob = TestJob(
            job_id='1234',
            target=self.project,
            backend=self.backend)
        status, completed, metadata, results, metrics, logs = lava.fetch(testjob)

        self.assertEqual({}, metadata)
예제 #16
0
파일: test_lava.py 프로젝트: Linaro/squad
    def test_fetch_basics(self, get_results, get_details, get_logs):
        lava = LAVABackend(None)
        testjob = TestJob(
            job_id='9999',
            backend=self.backend)
        results = lava.fetch(testjob)

        get_details.assert_called_with('9999')
        get_results.assert_called_with('9999')
        self.assertEqual('Complete', results[0])
예제 #17
0
파일: test_lava.py 프로젝트: Linaro/squad
    def test_parse_results(self, get_results, get_details, get_logs):
        lava = LAVABackend(None)
        testjob = TestJob(
            job_id='1234',
            backend=self.backend)
        status, completed, metadata, results, metrics, logs = lava.fetch(testjob)

        self.assertEqual(len(results), 2)
        self.assertEqual(len(metrics), 2)
        self.assertEqual(10, metrics['DefinitionFoo/case_foo'])
        self.assertEqual('job_foo', testjob.name)
예제 #18
0
파일: test_lava.py 프로젝트: Linaro/squad
 def test_automated_resubmit4(self, lava_resubmit, get_results, get_details, get_logs):
     lava = LAVABackend(self.backend)
     testjob = TestJob(
         job_id='1234',
         backend=self.backend,
         target=self.project)
     status, completed, metadata, results, metrics, logs = lava.fetch(testjob)
     lava_resubmit.assert_called()
     new_test_job = TestJob.objects.all().last()
     self.assertEqual(1, new_test_job.resubmitted_count)
     self.assertFalse(testjob.can_resubmit)
예제 #19
0
 def test_incomplete_string_results_metadata_null_error_msg(self, get_results, get_details, get_logs, resubmit):
     self.project.project_settings = '{"CI_LAVA_INFRA_ERROR_MESSAGES": "not-really-important"}'
     self.project.save()
     lava = LAVABackend(None)
     testjob = TestJob(
         job_id='1234',
         backend=self.backend,
         target=self.project)
     status, completed, metadata, results, metrics, logs = lava.fetch(testjob)
     self.assertFalse(completed)
     resubmit.assert_not_called()
예제 #20
0
    def test_parse_results(self, get_results, get_details, download_test_log):
        lava = LAVABackend(self.backend)
        testjob = TestJob(job_id='1234', backend=self.backend)
        status, completed, metadata, results, metrics, logs = lava.fetch(
            testjob)

        self.assertEqual(len(results), 2)
        self.assertIn('log', results['DefinitionFoo/case_bar'].keys())
        self.assertEqual(len(metrics), 2)
        self.assertEqual(10, metrics['DefinitionFoo/case_foo'])
        self.assertEqual('job_foo', testjob.name)
예제 #21
0
 def test_automated_resubmit3(self, lava_resubmit, get_results, get_details, get_logs):
     lava = LAVABackend(self.backend)
     testjob = TestJob(
         job_id='1234',
         backend=self.backend,
         target=self.project)
     status, completed, metadata, results, metrics, logs = lava.fetch(testjob)
     lava_resubmit.assert_called()
     new_test_job = TestJob.objects.all().last()
     self.assertEqual(1, new_test_job.resubmitted_count)
     self.assertFalse(testjob.can_resubmit)
예제 #22
0
 def test_automated_resubmit_with_project_settings(self, lava_resubmit, get_results, get_details, get_logs):
     self.project.project_settings = yaml.dump({'CI_LAVA_INFRA_ERROR_MESSAGES': [TEST_RESULT_FAILURE_CUSTOM]})
     lava = LAVABackend(self.backend)
     testjob = TestJob(
         job_id='1234',
         backend=self.backend,
         target=self.project)
     status, completed, metadata, results, metrics, logs = lava.fetch(testjob)
     lava_resubmit.assert_called()
     new_test_job = TestJob.objects.all().last()
     self.assertEqual(1, new_test_job.resubmitted_count)
     self.assertFalse(testjob.can_resubmit)
예제 #23
0
    def test_fetch_missing_dates(self, get_results, get_details, test_log):
        lava = LAVABackend(None)
        testjob = TestJob(
            job_id='9999',
            target=self.project,
            backend=self.backend)
        results = lava.fetch(testjob)

        get_details.assert_called_with('9999')
        get_results.assert_called_with('9999')
        self.assertEqual('Complete', results[0])
        testjob.refresh_from_db()
        self.assertIsNotNone(testjob.started_at)
        self.assertIsNone(testjob.ended_at)
예제 #24
0
    def test_parse_results_rest(self, get_results, get_details, download_test_log):
        # this test is a workaround of LAVA bug
        # https://git.lavasoftware.org/lava/lava/-/issues/449
        lava = LAVABackend(self.backend)
        testjob = TestJob(
            job_id='1234',
            target=self.project,
            backend=self.backend)
        status, completed, metadata, results, metrics, logs = lava.fetch(testjob)

        self.assertEqual(len(results), 2)
        self.assertIn('log', results['DefinitionFoo/case_bar'].keys())
        self.assertEqual(len(metrics), 2)
        self.assertEqual(10, metrics['DefinitionFoo/case_foo']["value"])
        self.assertEqual('job_foo', testjob.name)
예제 #25
0
 def test_automated_resubmit_email(self, get_results, get_details,
                                   get_logs):
     self.project.admin_subscriptions.create(email='*****@*****.**')
     lava = LAVABackend(self.backend)
     testjob = TestJob(job_id='1234',
                       backend=self.backend,
                       target=self.project)
     resubmitted_job = TestJob(job_id='1235',
                               backend=self.backend,
                               target=self.project,
                               resubmitted_count=1)
     resubmitted_job.save()
     lava.resubmit = MagicMock(return_value=resubmitted_job)
     status, completed, metadata, results, metrics, logs = lava.fetch(
         testjob)
     lava.resubmit.assert_called()
     # there should be an admin email sent after resubmission
     self.assertEqual(1, len(mail.outbox))
예제 #26
0
파일: test_lava.py 프로젝트: Linaro/squad
 def test_automated_resubmit_email(self, get_results, get_details, get_logs):
     self.project.admin_subscriptions.create(email='*****@*****.**')
     lava = LAVABackend(self.backend)
     testjob = TestJob(
         job_id='1234',
         backend=self.backend,
         target=self.project)
     resubmitted_job = TestJob(
         job_id='1235',
         backend=self.backend,
         target=self.project,
         resubmitted_count=1)
     resubmitted_job.save()
     lava.resubmit = MagicMock(return_value=resubmitted_job)
     status, completed, metadata, results, metrics, logs = lava.fetch(testjob)
     lava.resubmit.assert_called()
     # there should be an admin email sent after resubmission
     self.assertEqual(1, len(mail.outbox))
예제 #27
0
    def test_parse_results_clone_measurements(self, get_results, get_details, test_log):
        self.backend.backend_settings = '{"CI_LAVA_CLONE_MEASUREMENTS": true, "CI_LAVA_HANDLE_BOOT": true}'

        # Project settings has higher priority than backend settings
        self.project.project_settings = 'CI_LAVA_CLONE_MEASUREMENTS: true'

        lava = LAVABackend(self.backend)
        testjob = TestJob(
            job_id='1235',
            backend=self.backend,
            target=self.project,
            target_build=self.build,
            environment="foo_env")
        status, completed, metadata, results, metrics, logs = lava.fetch(testjob)

        self.assertEqual(len(results), 3)
        self.assertEqual(len(metrics), 2)
        self.assertEqual(10, metrics['DefinitionFoo/case_foo']["value"])
        self.assertEqual('job_foo', testjob.name)