aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMatthew Shao <me@matshao.com>2017-02-21 16:56:48 +0800
committerMatthew Shao <me@matshao.com>2017-02-21 16:56:48 +0800
commit5fc4fc28b682dda8ad2d3fd5b5ddf91938da5258 (patch)
treebed85224a3eb4f19cd368db89e7e467ef2eca9a2 /test
parentf9714fbf3e595ba4c93ef036bfe63e3b63e256ab (diff)
downloadmitmproxy-5fc4fc28b682dda8ad2d3fd5b5ddf91938da5258.tar.gz
mitmproxy-5fc4fc28b682dda8ad2d3fd5b5ddf91938da5258.tar.bz2
mitmproxy-5fc4fc28b682dda8ad2d3fd5b5ddf91938da5258.zip
Add test for @concurrent decorator in class.
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/data/addonscripts/concurrent_decorator_class.py13
-rw-r--r--test/mitmproxy/script/test_concurrent.py18
2 files changed, 31 insertions, 0 deletions
diff --git a/test/mitmproxy/data/addonscripts/concurrent_decorator_class.py b/test/mitmproxy/data/addonscripts/concurrent_decorator_class.py
new file mode 100644
index 00000000..bd047c99
--- /dev/null
+++ b/test/mitmproxy/data/addonscripts/concurrent_decorator_class.py
@@ -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()
diff --git a/test/mitmproxy/script/test_concurrent.py b/test/mitmproxy/script/test_concurrent.py
index fb932d9a..e81c023d 100644
--- a/test/mitmproxy/script/test_concurrent.py
+++ b/test/mitmproxy/script/test_concurrent.py
@@ -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")