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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
def test_none_enqueue_should_return_none(self): test_buildset = fixtures.buildset() test_buildset.enqueue_time = None result = test_buildset.enqueue self.assertIsNone(result)
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)
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)
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)
def test_remaining_wo_jobs_should_return_none(self): test_buildset = fixtures.buildset() test_buildset.jobs = [] result = test_buildset.remaining_time self.assertIsNone(result)
def test_start_wo_jobs_should_return_none(self): test_buildset = fixtures.buildset() test_buildset.jobs = [] result = test_buildset.start_datetime self.assertIsNone(result)
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)
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)