def _waitForCompareResult(func,args,compareobj,timeout=10,interval=0.5):
''' ????????
:param actualfunc: ??????????
:param actargs: ???????????
:param compareobj: ??????????????????????
:return comparefunc: True or False
:param timeout: ????
:param interval: ??????
:return type: tuple,(True,try_count,actual,expect)
'''
start = time.time()
waited = 0.0
try_count = 0
while True:
try_count +=1
actret = _getFuncResult(func,args)
if isinstance(compareobj,types.MethodType) or isinstance(compareobj,types.LambdaType):
expret = _getFuncResult(compareobj,actret)
if expret == True:
return True,try_count,actret,expret
else:
expret = compareobj
if actret == expret:
return True,try_count,actret,expret
waited = time.time() - start
if waited < timeout:
time.sleep(min(interval, timeout - waited))
else:
return False,try_count,actret,expret
评论列表
文章目录