From 16eead76df8d159cb0d3c67ef94395e75de8954b Mon Sep 17 00:00:00 2001 From: Tristan Cacqueray Date: Thu, 30 May 2019 00:16:42 +0000 Subject: [PATCH] test_v3: replace while loop with iterate_timeout This change improves the TestPostPlaybooks to prevent infinit loop. Change-Id: Ic5969670a4d1aca99eb164d47eee1c3b14c0208d --- tests/unit/test_v3.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/unit/test_v3.py b/tests/unit/test_v3.py index 00950ffbd9..96203658c9 100644 --- a/tests/unit/test_v3.py +++ b/tests/unit/test_v3.py @@ -18,7 +18,6 @@ import logging import os import textwrap import gc -import time from unittest import skip import paramiko @@ -2831,17 +2830,16 @@ class TestPostPlaybooks(AnsibleZuulTestCase): A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1)) - while not len(self.builds): - time.sleep(0.1) + for _ in iterate_timeout(60, 'job started'): + if len(self.builds): + break build = self.builds[0] post_start = os.path.join(self.test_root, build.uuid + '.post_start.flag') - start = time.time() - while time.time() < start + 90: + for _ in iterate_timeout(60, 'job post running'): if os.path.exists(post_start): break - time.sleep(0.1) # The post playbook has started, abort the job self.fake_gerrit.addEvent(A.getChangeAbandonedEvent()) self.waitUntilSettled()