From 440e04c6ba1dfae2d6fbb55b120763e3d0da6cd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?louiz=E2=80=99?= Date: Wed, 13 Nov 2019 23:17:01 +0100 Subject: e2e: Add a 10s timeout for expect_stanza MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise, if we expect a stanza and biboumi never sends it, we just hang here. Now, we display a nice error after 10 seconds, and move on to the next test, as other failures (xpath doesn’t match) do --- tests/end_to_end/functions.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tests/end_to_end/functions.py') diff --git a/tests/end_to_end/functions.py b/tests/end_to_end/functions.py index 176dca5..97cdfb0 100644 --- a/tests/end_to_end/functions.py +++ b/tests/end_to_end/functions.py @@ -127,7 +127,9 @@ def expect_stanza(*args, optional=False, after=None): replacements = common_replacements replacements.update(xmpp.saved_values) check_func = check_xpath if not optional else check_xpath_optional - xmpp.stanza_checker = partial(check_func, [xpath.format_map(replacements) for xpath in xpaths], xmpp, after) + formatted_xpaths = [xpath.format_map(replacements) for xpath in xpaths] + xmpp.stanza_checker = partial(check_func, formatted_xpaths, xmpp, after) + xmpp.timeout_handler = asyncio.get_event_loop().call_later(10, partial(xmpp.on_timeout, formatted_xpaths)) return partial(f, *args, optional=optional, after=after) def send_stanza(stanza): @@ -148,6 +150,7 @@ def expect_unordered(*args): formatted_xpaths.append(formatted_xpath) formatted_list_of_xpaths.append(tuple(formatted_xpaths)) expect_unordered_already_formatted(formatted_list_of_xpaths, xmpp, biboumi) + xmpp.timeout_handler = asyncio.get_event_loop().call_later(10, partial(xmpp.on_timeout, formatted_list_of_xpaths)) return partial(f, *args) def expect_unordered_already_formatted(formatted_list_of_xpaths, xmpp, biboumi): -- cgit v1.2.3