mirror of
https://github.com/chatmail/core.git
synced 2026-05-16 21:36:30 +03:00
try to reproduce (#4227)
This commit is contained in:
@@ -114,11 +114,14 @@ class FFIEventTracker:
|
|||||||
while True:
|
while True:
|
||||||
yield self.get(timeout=timeout, check_error=check_error)
|
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})$")
|
rex = re.compile(f"^(?:{event_name_regex})$")
|
||||||
for ev in self.iter_events(timeout=timeout, check_error=check_error):
|
for ev in self.iter_events(timeout=timeout, check_error=check_error):
|
||||||
if rex.match(ev.name):
|
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:
|
def get_info_contains(self, regex: str) -> FFIEvent:
|
||||||
rex = re.compile(regex)
|
rex = re.compile(regex)
|
||||||
@@ -129,8 +132,7 @@ class FFIEventTracker:
|
|||||||
|
|
||||||
def get_info_regex_groups(self, regex, check_error=True):
|
def get_info_regex_groups(self, regex, check_error=True):
|
||||||
rex = re.compile(regex)
|
rex = re.compile(regex)
|
||||||
while True:
|
for ev in self.iter_matching("DC_EVENT_INFO", check_error=check_error):
|
||||||
ev = self.get_matching("DC_EVENT_INFO", check_error=check_error)
|
|
||||||
m = rex.match(ev.data2)
|
m = rex.match(ev.data2)
|
||||||
if m is not None:
|
if m is not None:
|
||||||
return m.groups()
|
return m.groups()
|
||||||
@@ -175,9 +177,8 @@ class FFIEventTracker:
|
|||||||
else:
|
else:
|
||||||
assert not rex.match(ev.name), f"event found {ev}"
|
assert not rex.match(ev.name), f"event found {ev}"
|
||||||
|
|
||||||
def wait_securejoin_inviter_progress(self, target):
|
def wait_securejoin_inviter_progress(self, target, timeout=None):
|
||||||
while True:
|
for event in self.iter_matching("DC_EVENT_SECUREJOIN_INVITER_PROGRESS", timeout=timeout):
|
||||||
event = self.get_matching("DC_EVENT_SECUREJOIN_INVITER_PROGRESS")
|
|
||||||
if event.data2 >= target:
|
if event.data2 >= target:
|
||||||
print(f"** SECUREJOINT-INVITER PROGRESS {target}", self.account)
|
print(f"** SECUREJOINT-INVITER PROGRESS {target}", self.account)
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -165,7 +165,13 @@ def test_qr_verified_group_and_chatting(acfactory, lp):
|
|||||||
lp.sec("ac3: start QR-code based setup contact protocol")
|
lp.sec("ac3: start QR-code based setup contact protocol")
|
||||||
ch = ac3.qr_setup_contact(qr)
|
ch = ac3.qr_setup_contact(qr)
|
||||||
assert ch.id >= 10
|
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")
|
lp.sec("ac1: add ac3 to verified group")
|
||||||
chat1.add_contact(ac3)
|
chat1.add_contact(ac3)
|
||||||
|
|||||||
Reference in New Issue
Block a user