| Index: tests/try_job_on_rietveld_test.py
|
| diff --git a/tests/try_job_on_rietveld_test.py b/tests/try_job_on_rietveld_test.py
|
| index 1d5ed321e3831a69345a64c55f155ea78677ba64..d762d127045184b904b1d45721ae4eda3cc3a506 100755
|
| --- a/tests/try_job_on_rietveld_test.py
|
| +++ b/tests/try_job_on_rietveld_test.py
|
| @@ -73,6 +73,21 @@ def _posted(builders):
|
| return 'trigger_try_jobs(42, 23, \'CQ\', False, None, %s)' % str(builders)
|
|
|
|
|
| +def gen_job_pending(**kwargs):
|
| + value = {
|
| + '__persistent_module__': 'verification.try_job_on_rietveld',
|
| + '__persistent_type__': 'RietveldTryJobPending',
|
| + 'builder': None,
|
| + 'clobber': False,
|
| + 'requested_steps': [],
|
| + 'revision': None,
|
| + 'tries': 1,
|
| + }
|
| + assert all(arg in value for arg in kwargs)
|
| + value.update(kwargs)
|
| + return value
|
| +
|
| +
|
| def gen_job(**kwargs):
|
| value = {
|
| '__persistent_module__': 'verification.try_job_on_rietveld',
|
| @@ -155,8 +170,8 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| 'mac': ['test1', 'test2'],
|
| },
|
| pendings=[
|
| - gen_job(builder='linux', requested_steps=['test1', 'test2']),
|
| - gen_job(builder='mac', requested_steps=['test1', 'test2']),
|
| + gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
|
| + gen_job_pending(builder='mac', requested_steps=['test1', 'test2']),
|
| ])
|
| self.assertEquals(expected, actual)
|
|
|
| @@ -232,7 +247,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| 'mac': ['test1', 'test2'],
|
| },
|
| pendings=[
|
| - gen_job(builder='linux', requested_steps=['test1', 'test2']),
|
| + gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
|
| ],
|
| try_jobs={
|
| key: gen_job(
|
| @@ -308,7 +323,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| 'mac': ['test1', 'test2'],
|
| },
|
| pendings=[
|
| - gen_job(builder='mac', requested_steps=['test2'], tries=2),
|
| + gen_job_pending(builder='mac', requested_steps=['test2'], tries=2),
|
| ],
|
| try_jobs={
|
| key1: gen_job(
|
| @@ -393,7 +408,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| 'mac': ['test1', 'test2'],
|
| },
|
| pendings=[
|
| - gen_job(builder='mac', requested_steps=['test2'], tries=2),
|
| + gen_job_pending(builder='mac', requested_steps=['test2'], tries=2),
|
| ],
|
| try_jobs={
|
| key1: gen_job(
|
| @@ -429,7 +444,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| 'mac': ['test1', 'test2'],
|
| },
|
| pendings=[
|
| - gen_job(builder='mac', requested_steps=['test2'], tries=3),
|
| + gen_job_pending(builder='mac', requested_steps=['test2'], tries=3),
|
| ],
|
| try_jobs={
|
| key1: gen_job(
|
| @@ -490,7 +505,7 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| 'mac': ['test1', 'test2'],
|
| },
|
| pendings=[
|
| - gen_job(builder='linux', requested_steps=['test1', 'test2']),
|
| + gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
|
| ],
|
| try_jobs={
|
| key1: gen_job(
|
| @@ -522,8 +537,6 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| ])
|
|
|
| self.try_runner.update_status([self.pending])
|
| - # self.timestamp is a mock for time.time()
|
| - started = self.timestamp[-1]
|
| expected = gen_jobs(
|
| builders_and_tests={
|
| 'linux': ['test1', 'test2'],
|
| @@ -531,14 +544,8 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| },
|
| irrelevant=[key1],
|
| pendings=[
|
| - gen_job(
|
| - builder='linux',
|
| - requested_steps=['test1', 'test2'],
|
| - started=started),
|
| - gen_job(
|
| - builder='mac',
|
| - requested_steps=['test1', 'test2'],
|
| - started=started),
|
| + gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
|
| + gen_job_pending(builder='mac', requested_steps=['test1', 'test2']),
|
| ])
|
| self.assertEquals(expected, self._get_verif().as_dict())
|
| self.assertEquals(base.PROCESSING, self.pending.get_state())
|
| @@ -573,8 +580,8 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| 'mac': ['test1', 'test2'],
|
| },
|
| pendings=[
|
| - gen_job(builder='linux', requested_steps=['test1', 'test2']),
|
| - gen_job(builder='mac', requested_steps=['test1']),
|
| + gen_job_pending(builder='linux', requested_steps=['test1', 'test2']),
|
| + gen_job_pending(builder='mac', requested_steps=['test1']),
|
| ],
|
| try_jobs={
|
| key1: gen_job(
|
| @@ -644,6 +651,108 @@ class TryJobOnRietveldTest(mocks.TestCase):
|
| self.assertEquals(base.SUCCEEDED, self.pending.get_state())
|
| self.assertEquals('', self.pending.error_message())
|
|
|
| + def testRietveldTryJobs_1(self):
|
| + jobs = try_job_on_rietveld.RietveldTryJobs()
|
| + jobs.builders_and_tests['builder1'] = ['test10', 'test11']
|
| + jobs.try_jobs['key1'] = try_job_on_rietveld.RietveldTryJob(
|
| + builder='builder1',
|
| + build=12,
|
| + revision=13,
|
| + requested_steps=['test10'],
|
| + started=time.time(),
|
| + passed=['test10'],
|
| + failed=[],
|
| + clobber=False,
|
| + completed=True,
|
| + tries=1)
|
| + self.assertEquals({'builder1': ['test11']}, jobs.tests_need_to_be_run())
|
| + self.assertEquals({'builder1': ['test11']}, jobs.tests_waiting_for_result())
|
| +
|
| + def testRietveldTryJobs_2(self):
|
| + jobs = try_job_on_rietveld.RietveldTryJobs()
|
| + jobs.builders_and_tests['builder1'] = ['test10', 'test11']
|
| + jobs.try_jobs['key1'] = try_job_on_rietveld.RietveldTryJob(
|
| + 'builder1',
|
| + 12,
|
| + 13,
|
| + ['test10'],
|
| + time.time(),
|
| + ['test10'],
|
| + [],
|
| + False,
|
| + True,
|
| + 1)
|
| + self.assertEquals({'builder1': ['test11']}, jobs.tests_need_to_be_run())
|
| + self.assertEquals({'builder1': ['test11']}, jobs.tests_waiting_for_result())
|
| +
|
| + def testRietveldTryJobs_3(self):
|
| + jobs = try_job_on_rietveld.RietveldTryJobs()
|
| + jobs.builders_and_tests['builder1'] = ['test10', 'test11']
|
| + jobs.try_jobs['key1'] = try_job_on_rietveld.RietveldTryJob(
|
| + builder='builder1',
|
| + build=12,
|
| + revision=13,
|
| + requested_steps=['test10'],
|
| + started=time.time(),
|
| + passed=['test10'],
|
| + failed=[],
|
| + clobber=False,
|
| + completed=True,
|
| + tries=1)
|
| + jobs.pendings.append(
|
| + try_job_on_rietveld.RietveldTryJobPending(
|
| + builder='builder1',
|
| + revision=13,
|
| + requested_steps=['test11'],
|
| + clobber=False,
|
| + tries=1))
|
| + self.assertEquals({}, jobs.tests_need_to_be_run())
|
| + self.assertEquals({'builder1': ['test11']}, jobs.tests_waiting_for_result())
|
| +
|
| + def testRietveldTryJobs_4(self):
|
| + # Construct an instance that has both tests to trigger and tests that are
|
| + # pending results.
|
| + jobs = try_job_on_rietveld.RietveldTryJobs()
|
| + jobs.builders_and_tests = {
|
| + 'builder1': ['test10', 'test11'],
|
| + 'builder2': ['test20', 'test21'],
|
| + }
|
| + jobs.try_jobs['key1'] = try_job_on_rietveld.RietveldTryJob(
|
| + builder='builder1',
|
| + build=12,
|
| + revision=13,
|
| + requested_steps=['test10'],
|
| + started=time.time(),
|
| + passed=['test10'],
|
| + failed=[],
|
| + clobber=False,
|
| + completed=True,
|
| + tries=1)
|
| + jobs.try_jobs['key2'] = try_job_on_rietveld.RietveldTryJob(
|
| + builder='builder2',
|
| + build=13,
|
| + revision=14,
|
| + requested_steps=[],
|
| + started=time.time(),
|
| + passed=['test21'],
|
| + failed=[],
|
| + clobber=False,
|
| + completed=False,
|
| + tries=1)
|
| + jobs.pendings.append(
|
| + try_job_on_rietveld.RietveldTryJobPending(
|
| + builder='builder2',
|
| + revision=14,
|
| + requested_steps=['test20'],
|
| + clobber=False,
|
| + tries=1))
|
| + # test11 is still not queued to be run but build with test20 in it has still
|
| + # not started yet.
|
| + self.assertEquals({'builder1': ['test11']}, jobs.tests_need_to_be_run())
|
| + self.assertEquals(
|
| + {'builder1': ['test11'], 'builder2': ['test20']},
|
| + jobs.tests_waiting_for_result())
|
| +
|
|
|
| if __name__ == '__main__':
|
| logging.basicConfig(
|
|
|