From 68af23b76efe31784df1529299900b28e544ead9 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 13 Sep 2018 22:41:30 +0200 Subject: [PATCH] Try getting selection multiple times --- tests/unit/browser/test_caret.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/unit/browser/test_caret.py b/tests/unit/browser/test_caret.py index 0864a9947..2ec81da9c 100644 --- a/tests/unit/browser/test_caret.py +++ b/tests/unit/browser/test_caret.py @@ -49,8 +49,21 @@ class Selection: self._callback_checker = utils.CallbackChecker(qtbot) def check(self, expected): - self._caret.selection(self._callback_checker.callback) - self._callback_checker.check(expected) + """Check whether we got the expected selection. + + Since (especially on Windows) the selection is empty if we're too + quickly, we try to read it multiple times. + """ + for _ in range(10): + with self._qtbot.wait_signal(self._callback_checker.got_result) as blocker: + self._caret.selection(self._callback_checker.callback) + + selection = blocker.args[0] + if selection: + assert selection == expected + return + + self._qtbot.wait(50) def check_multiline(self, expected): self.check(textwrap.dedent(expected).strip())