···220 res = driver.polling_conditions.pop()
221 assert res is self.condition
22200000000000000223 if fun_ is None:
224 return Poll
225 else:
···220 res = driver.polling_conditions.pop()
221 assert res is self.condition
222223+ def wait(self, timeout: int = 900) -> None:
224+ def condition(last: bool) -> bool:
225+ if last:
226+ rootlog.info(f"Last chance for {self.condition.description}")
227+ ret = self.condition.check(force=True)
228+ if not ret and not last:
229+ rootlog.info(
230+ f"({self.condition.description} failure not fatal yet)"
231+ )
232+ return ret
233+234+ with rootlog.nested(f"waiting for {self.condition.description}"):
235+ retry(condition, timeout=timeout)
236+237 if fun_ is None:
238 return Poll
239 else:
···49 start_all()
5051 machine.wait_for_unit('graphical.target')
52- machine.wait_until_succeeds('pgrep -x codium')
53054 with codium_running:
55 # Wait until vscodium is visible. "File" is in the menu bar.
56 machine.wait_for_text('Get Started')
···49 start_all()
5051 machine.wait_for_unit('graphical.target')
05253+ codium_running.wait()
54 with codium_running:
55 # Wait until vscodium is visible. "File" is in the menu bar.
56 machine.wait_for_text('Get Started')