Add test for @concurrent decorator in class.

This commit is contained in:
Matthew Shao 2017-02-21 16:56:48 +08:00
parent f9714fbf3e
commit 5fc4fc28b6
2 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,13 @@
import time
from mitmproxy.script import concurrent
class ConcurrentClass:
@concurrent
def request(flow):
time.sleep(0.1)
def start():
return ConcurrentClass()

View File

@ -44,3 +44,21 @@ class TestConcurrent(tservers.MasterTest):
)
sc.start()
assert "decorator not supported" in tctx.master.event_log[0][1]
def test_concurrent_class(self):
with taddons.context() as tctx:
sc = script.Script(
tutils.test_data.path(
"mitmproxy/data/addonscripts/concurrent_decorator_class.py"
)
)
sc.start()
f1, f2 = tflow.tflow(), tflow.tflow()
tctx.cycle(sc, f1)
tctx.cycle(sc, f2)
start = time.time()
while time.time() - start < 5:
if f1.reply.state == f2.reply.state == "committed":
return
raise ValueError("Script never acked")