def test_nonempty_result_should_return_data(self): test_job = fixtures.job() test_job.result = "test" test_job.report_url = "http://fake_url" expected = "http://fake_url" result = test_job.log_url self.assertEqual(result, expected)
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_progress_should_return_data(self): test_job = fixtures.job() test_job.time_tracker.remaining = 1000 test_job.time_tracker.estimated = 10 expected = 90 result = test_job.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_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_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_empty_result_wo_slashes_should_return_url(self): test_job = fixtures.job() test_job.result = None test_job.url = "fake_endpoint" expected = "http://fake_url/fake_endpoint" with mock.patch.dict(config['zuul'], {'url': 'http://fake_url'}): result = test_job.log_url 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_empty_result_wo_slashes_should_return_url(self): test_job = fixtures.job() test_job.result = None test_job.url = "fake_endpoint" expected = "http://fake_url/fake_endpoint" config['ZUUL']['url'] = "http://fake_url" result = test_job.log_url 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_no_estimated_should_return_0(self): test_job = fixtures.job() test_job.time_tracker.estimated = 0 expected = 0 result = test_job.progress self.assertEqual(result, expected)
def test_no_remaining_should_return_100(self): test_job = fixtures.job() test_job.time_tracker.remaining = 0 expected = 100 result = test_job.progress self.assertEqual(result, expected)