try to reproduce (#4227)

This commit is contained in:
iequidoo
2023-04-02 15:53:36 -04:00
parent 2ba4381c39
commit c6fa2b6c15
2 changed files with 15 additions and 8 deletions

View File

@@ -114,11 +114,14 @@ class FFIEventTracker:
while True:
yield self.get(timeout=timeout, check_error=check_error)
def get_matching(self, event_name_regex, check_error=True, timeout=None):
def iter_matching(self, event_name_regex, check_error=True, timeout=None):
rex = re.compile(f"^(?:{event_name_regex})$")
for ev in self.iter_events(timeout=timeout, check_error=check_error):
if rex.match(ev.name):
return ev
yield ev
def get_matching(self, event_name_regex, check_error=True, timeout=None):
return next(self.iter_matching(event_name_regex=event_name_regex, check_error=check_error, timeout=timeout))
def get_info_contains(self, regex: str) -> FFIEvent:
rex = re.compile(regex)
@@ -129,8 +132,7 @@ class FFIEventTracker:
def get_info_regex_groups(self, regex, check_error=True):
rex = re.compile(regex)
while True:
ev = self.get_matching("DC_EVENT_INFO", check_error=check_error)
for ev in self.iter_matching("DC_EVENT_INFO", check_error=check_error):
m = rex.match(ev.data2)
if m is not None:
return m.groups()
@@ -175,9 +177,8 @@ class FFIEventTracker:
else:
assert not rex.match(ev.name), f"event found {ev}"
def wait_securejoin_inviter_progress(self, target):
while True:
event = self.get_matching("DC_EVENT_SECUREJOIN_INVITER_PROGRESS")
def wait_securejoin_inviter_progress(self, target, timeout=None):
for event in self.iter_matching("DC_EVENT_SECUREJOIN_INVITER_PROGRESS", timeout=timeout):
if event.data2 >= target:
print(f"** SECUREJOINT-INVITER PROGRESS {target}", self.account)
break

View File

@@ -165,7 +165,13 @@ def test_qr_verified_group_and_chatting(acfactory, lp):
lp.sec("ac3: start QR-code based setup contact protocol")
ch = ac3.qr_setup_contact(qr)
assert ch.id >= 10
ac1._evtracker.wait_securejoin_inviter_progress(1000)
try:
ac1._evtracker.wait_securejoin_inviter_progress(1000, timeout=5)
except Exception:
ac1.stop_io()
ac1.start_io()
ac1._evtracker.wait_securejoin_inviter_progress(1000)
assert False
lp.sec("ac1: add ac3 to verified group")
chat1.add_contact(ac3)