[IMP] runbot: add test for children

This commit is contained in:
Xavier-Do 2019-06-24 13:44:56 +02:00 committed by Christophe Monniez
parent 7adfa6c7eb
commit 239340e1bc

View File

@ -154,6 +154,86 @@ class Test_Build(common.TransactionCase):
self.assertEqual(build1.local_state, 'done', 'A killed pending duplicate build should mark the real build as done')
self.assertEqual(build1.local_result, 'skipped', 'A killed pending duplicate build should mark the real build as skipped')
def test_children(self):
build1 = self.Build.create({
'branch_id': self.branch_10.id,
'name': 'd0d0caca0000ffffffffffffffffffffffffffff',
})
self.env.cr.test = True
build1_1 = self.Build.create({
'branch_id': self.branch_10.id,
'name': 'd0d0caca0000ffffffffffffffffffffffffffff',
'parent_id': build1.id,
'hidden': True,
'extra_params': '2', # avoid duplicate
})
build1_2 = self.Build.create({
'branch_id': self.branch_10.id,
'name': 'd0d0caca0000ffffffffffffffffffffffffffff',
'parent_id': build1.id,
'extra_params': '3',
})
build1_1_1 = self.Build.create({
'branch_id': self.branch_10.id,
'name': 'd0d0caca0000ffffffffffffffffffffffffffff',
'parent_id': build1_1.id,
'extra_params': '4',
})
build1_1_2 = self.Build.create({
'branch_id': self.branch_10.id,
'name': 'd0d0caca0000ffffffffffffffffffffffffffff',
'parent_id': build1_1.id,
'extra_params': '5',
})
def assert_state(nb_pending, nb_testing, nb_running, global_state, build):
self.assertEqual(build.nb_pending, nb_pending)
self.assertEqual(build.nb_testing, nb_testing)
self.assertEqual(build.nb_running, nb_running)
self.assertEqual(build.global_state, global_state)
assert_state(5, 0, 0, 'pending', build1)
assert_state(3, 0, 0, 'pending', build1_1)
assert_state(1, 0, 0, 'pending', build1_2)
assert_state(1, 0, 0, 'pending', build1_1_1)
assert_state(1, 0, 0, 'pending', build1_1_2)
build1.local_state = 'testing'
build1_1.local_state = 'testing'
build1.local_state = 'done'
build1_1.local_state = 'done'
assert_state(3, 0, 0, 'waiting', build1)
assert_state(2, 0, 0, 'waiting', build1_1)
assert_state(1, 0, 0, 'pending', build1_2)
assert_state(1, 0, 0, 'pending', build1_1_1)
assert_state(1, 0, 0, 'pending', build1_1_2)
build1_1_1.local_state = 'testing'
assert_state(2, 1, 0, 'waiting', build1)
assert_state(1, 1, 0, 'waiting', build1_1)
assert_state(1, 0, 0, 'pending', build1_2)
assert_state(0, 1, 0, 'testing', build1_1_1)
assert_state(1, 0, 0, 'pending', build1_1_2)
build1_2.local_state = 'testing'
assert_state(1, 2, 0, 'waiting', build1)
assert_state(1, 1, 0, 'waiting', build1_1)
assert_state(0, 1, 0, 'testing', build1_2)
assert_state(0, 1, 0, 'testing', build1_1_1)
assert_state(1, 0, 0, 'pending', build1_1_2)
build1_1_2.local_state = 'done'
build1_1_1.local_state = 'done'
build1_2.local_state = 'done'
assert_state(0, 0, 0, 'done', build1)
assert_state(0, 0, 0, 'done', build1_1)
assert_state(0, 0, 0, 'done', build1_2)
assert_state(0, 0, 0, 'done', build1_1_1)
assert_state(0, 0, 0, 'done', build1_1_2)
def rev_parse(repo, branch_name):
"""