示例#1
0
 def test_start_with_job_wo_start_should_return_none(self):
     test_buildset = fixtures.buildset()
     test_job = fixtures.job()
     test_job.time_tracker.start = None
     test_buildset.jobs = [test_job]
     result = test_buildset.start_datetime
     self.assertIsNone(result)
示例#2
0
 def test_remaining_with_job_wo_remaining_should_return_none(self):
     test_buildset = fixtures.buildset()
     test_job = fixtures.job()
     test_job.time_tracker.remaining = None
     test_buildset.jobs = [test_job]
     result = test_buildset.remaining_time
     self.assertIsNone(result)
示例#3
0
 def test_valid_elapsed_time_should_return_expected_time(self, time):
     test_buildset = fixtures.buildset()
     fixed_time = 1532004145.20974
     time.return_value = fixed_time
     result = test_buildset.elapsed_time
     expected = seconds_to_time(fixed_time - test_buildset.enqueue_time)
     self.assertEqual(result, expected)
示例#4
0
 def test_progress_with_one_job_should_return_100(self):
     test_buildset = fixtures.buildset()
     test_job = fixtures.job()
     test_buildset.jobs = [test_job]
     expected = 100
     result = test_buildset.progress
     self.assertEqual(result, expected)
示例#5
0
 def test_progress_with_multiple_jobs_should_return_expected(self):
     test_buildset = fixtures.buildset()
     test_jobs = [fixtures.job() for x in range(3)]
     test_buildset.jobs = test_jobs
     expected = 100 / len(test_jobs)
     result = test_buildset.progress
     self.assertEqual(result, expected)
示例#6
0
    def test_create_should_return_expected_data(self):
        buildset_data = {
            "url": "http://fake_url",
            "owner": {
                'name': 'John smith'
            },
            "jobs": [],
            "item_ahead": None,
            "live": True,
            "remaining_time": 1812372,
            "failing_reasons": [],
            "items_behind": [],
            "project": "test_name",
            "id": "12345,6",
            "active": True,
            "zuul_ref": "12345",
            "enqueue_time": 0
        }

        expected_buildset = fixtures.buildset()
        expected_buildset.enqueue_time = 0

        result_buildset = Buildset.create(buildset=buildset_data)

        self.addTypeEqualityFunc(Buildset, self.compare_buildsets)
        self.assertEquals(expected_buildset, result_buildset)
示例#7
0
 def test_remaining_with_multiple_jobs_should_return_longest_time(self):
     test_buildset = fixtures.buildset()
     test_jobs = [fixtures.job() for x in range(3)]
     max_time = max(job.time_tracker.remaining for job in test_jobs)
     test_buildset.jobs = test_jobs
     result = test_buildset.remaining_time
     expected = seconds_to_time(milliseconds_to_seconds(max_time))
     self.assertEqual(result, expected)
示例#8
0
 def test_start_with_multiple_jobs_should_return_earliest_time(self):
     test_buildset = fixtures.buildset()
     test_jobs = [fixtures.job() for x in range(3)]
     min_time = min(job.time_tracker.start for job in test_jobs)
     test_buildset.jobs = test_jobs
     result = test_buildset.start_datetime
     expected = epoch_to_datetime(min_time)
     self.assertEqual(result, expected)
示例#9
0
 def test_status_with_failing_voting_job_should_have_fail_status(self):
     test_buildset = fixtures.buildset()
     test_job = fixtures.job()
     test_job.result = 'FAILURE'
     test_job.voting = True
     test_buildset.jobs = [test_job]
     expected = 'Failing'
     result = test_buildset.status
     self.assertEqual(result, expected)
示例#10
0
 def test_status_wo_failing_and_voting_jobs_should_have_success_status(
         self):
     test_buildset = fixtures.buildset()
     test_jobs = [fixtures.job() for x in range(3)]
     for j in test_jobs:
         j.result = "SUCCESS"
     test_buildset.jobs = test_jobs
     expected = "Succeeding"
     result = test_buildset.status
     self.assertEqual(result, expected)
示例#11
0
    def test_status_with_failing_notvoting_job_should_have_success_status(self):
        test_buildset = fixtures.buildset()
        test_jobs = [fixtures.job() for _ in Job.FAILING_RESULTS]
        for job, job_result in zip(test_jobs, Job.FAILING_RESULTS):
            job.result = job_result
            job.voting = False
        test_buildset.jobs = test_jobs

        result = test_buildset.status
        expected = "Succeeding"
        self.assertEqual(result, expected)
示例#12
0
    def test_status_with_any_failing_voting_job_should_have_fail_status(self):
        test_buildset = fixtures.buildset()
        test_job = fixtures.job()
        test_job.voting = True
        test_buildset.jobs = [test_job]
        expected = "Failing"

        for fresult in Job.FAILING_RESULTS:
            test_job.result = fresult
            result = test_buildset.status
            self.assertEqual(result, expected)
示例#13
0
    def test_status_wo_failing_and_voting_jobs_should_have_success_status(self):
        example_succeeding_job_results = ["SUCCESS", "SKIPPED"]

        test_buildset = fixtures.buildset()
        test_jobs = [fixtures.job() for _ in example_succeeding_job_results]
        for job, job_result in zip(test_jobs,
                                   example_succeeding_job_results):
            job.result = job_result
        test_buildset.jobs = test_jobs

        result = test_buildset.status
        expected = "Succeeding"
        self.assertEqual(result, expected)
示例#14
0
    def test_status_with_mixed_voting_jobs_should_have_fail_status(self):
        job_results = ["SUCCESS", "ERROR", "SKIPPED"]

        test_buildset = fixtures.buildset()
        test_jobs = [fixtures.job() for _ in job_results]

        for job, job_result in zip(test_jobs, job_results):
            job.result = job_result
            job.voting = True
        test_buildset.jobs = test_jobs

        result = test_buildset.status
        expected = "Failing"
        self.assertEqual(result, expected)
示例#15
0
 def test_none_enqueue_should_return_none(self):
     test_buildset = fixtures.buildset()
     test_buildset.enqueue_time = None
     result = test_buildset.enqueue
     self.assertIsNone(result)
示例#16
0
 def test_zero_elapsed_time_should_return_0(self):
     test_buildset = fixtures.buildset()
     test_buildset.enqueue_time = 0
     expected = 0
     result = test_buildset.elapsed_time
     self.assertEqual(result, expected)
示例#17
0
 def test_progress_wo_jobs_should_return_100(self):
     test_buildset = fixtures.buildset()
     test_buildset.jobs = []
     expected = 100
     result = test_buildset.progress
     self.assertEqual(result, expected)
示例#18
0
 def test_zero_enqueue_should_return_current_date(self):
     test_buildset = fixtures.buildset()
     test_buildset.enqueue_time = 0
     result = test_buildset.enqueue
     expected = epoch_to_datetime(0)
     self.assertEqual(result, expected)
示例#19
0
 def test_remaining_wo_jobs_should_return_none(self):
     test_buildset = fixtures.buildset()
     test_buildset.jobs = []
     result = test_buildset.remaining_time
     self.assertIsNone(result)
示例#20
0
 def test_start_wo_jobs_should_return_none(self):
     test_buildset = fixtures.buildset()
     test_buildset.jobs = []
     result = test_buildset.start_datetime
     self.assertIsNone(result)
示例#21
0
 def test_valid_enqueue_should_return_expected(self):
     test_buildset = fixtures.buildset()
     result = test_buildset.enqueue
     expected = epoch_to_datetime(test_buildset.enqueue_time)
     self.assertEqual(result, expected)
示例#22
0
 def test_status_wo_jobs_should_have_enqueued_status(self):
     test_buildset = fixtures.buildset()
     test_buildset.jobs = []
     expected = 'Enqueued'
     result = test_buildset.status
     self.assertEqual(result, expected)