simplify concurrency tests

This commit is contained in:
Maximilian Hils 2022-02-04 17:07:13 +01:00
parent 068204fc59
commit 4f5930ec5d

View File

@ -7,18 +7,14 @@ from mitmproxy.test import tflow
from mitmproxy.test import taddons from mitmproxy.test import taddons
class Thing:
def __init__(self):
self.live = True
class TestConcurrent: class TestConcurrent:
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_concurrent(self, tdata): @pytest.mark.parametrize("addon", ["concurrent_decorator.py", "concurrent_decorator_class.py"])
async def test_concurrent(self, addon, tdata):
with taddons.context() as tctx: with taddons.context() as tctx:
sc = tctx.script( sc = tctx.script(
tdata.path( tdata.path(
"mitmproxy/data/addonscripts/concurrent_decorator.py" f"mitmproxy/data/addonscripts/{addon}"
) )
) )
f1, f2 = tflow.tflow(), tflow.tflow() f1, f2 = tflow.tflow(), tflow.tflow()
@ -28,7 +24,8 @@ class TestConcurrent:
tctx.cycle(sc, f2), tctx.cycle(sc, f2),
) )
end = time.time() end = time.time()
assert 0.3 < end - start < 0.7 # This test may fail on overloaded CI systems, increase upper bound if necessary.
assert 0.3 < end - start < 1
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_concurrent_err(self, tdata): async def test_concurrent_err(self, tdata):
@ -39,20 +36,3 @@ class TestConcurrent:
) )
) )
await tctx.master.await_log("decorator not supported") await tctx.master.await_log("decorator not supported")
@pytest.mark.asyncio
async def test_concurrent_class(self, tdata):
with taddons.context() as tctx:
sc = tctx.script(
tdata.path(
"mitmproxy/data/addonscripts/concurrent_decorator_class.py"
)
)
f1, f2 = tflow.tflow(), tflow.tflow()
start = time.time()
await asyncio.gather(
tctx.cycle(sc, f1),
tctx.cycle(sc, f2),
)
end = time.time()
assert 0.3 < end - start < 0.7