Skip to content

Commit 4e5b9f3

Browse files
committed
test: stabilize proxy tests
1 parent 62cd8f9 commit 4e5b9f3

3 files changed

Lines changed: 14 additions & 16 deletions

File tree

tests/assertions.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -666,13 +666,18 @@ def assert_failed_proxy_auth_request(stdout):
666666
)
667667

668668

669-
def wait_for_file(path, timeout=10.0, poll_interval=0.1):
670-
import glob
669+
def wait_for(condition, timeout=10.0, interval=0.1):
671670
import time
672671

673672
deadline = time.time() + timeout
674673
while time.time() < deadline:
675-
if glob.glob(str(path)):
674+
if condition():
676675
return True
677-
time.sleep(poll_interval)
678-
return False
676+
time.sleep(interval)
677+
return condition()
678+
679+
680+
def wait_for_file(path, timeout=10.0, interval=0.1):
681+
import glob
682+
683+
return wait_for(lambda: glob.glob(str(path)), timeout, interval)

tests/proxy.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import pytest
1010

11-
from tests.assertions import assert_no_proxy_request
11+
from tests.assertions import assert_no_proxy_request, wait_for
1212

1313

1414
@contextlib.contextmanager
@@ -126,13 +126,14 @@ def proxy_test_finally(
126126
proxy_process,
127127
proxy_log_assert=assert_no_proxy_request,
128128
expected_proxy_logsize=None,
129+
timeout=10,
129130
):
130131
if expected_proxy_logsize is None:
131132
expected_proxy_logsize = expected_httpserver_logsize
132133

133134
if proxy_process:
134135
# Give mitmdump some time to get a response from the mock server
135-
time.sleep(0.5)
136+
wait_for(lambda: len(httpserver.log) >= expected_httpserver_logsize, timeout)
136137
proxy_process.terminate()
137138
stdout_bytes, _ = proxy_process.communicate()
138139
stdout = stdout_bytes.decode("utf-8", errors="replace")

tests/test_dotnet_signals.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import pytest
99

1010
from tests import adb
11+
from tests.assertions import wait_for
1112
from tests.conditions import is_android, is_arm32, is_tsan, is_x86, is_asan
1213

1314
project_fixture_path = pathlib.Path("tests/fixtures/dotnet_signal")
@@ -281,15 +282,6 @@ def test_aot_signals_inproc(cmake):
281282
ANDROID_PACKAGE = "io.sentry.ndk.dotnet.signal.test"
282283

283284

284-
def wait_for(condition, timeout=10, interval=0.5):
285-
start = time.time()
286-
while time.time() - start < timeout:
287-
if condition():
288-
return True
289-
time.sleep(interval)
290-
return condition()
291-
292-
293285
def run_android(args=None, strategy=None, reinit=False, timeout=30):
294286
if args is None:
295287
args = []

0 commit comments

Comments
 (0)