aboutsummaryrefslogtreecommitdiffstats
path: root/test/mitmproxy/script
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-03-18 20:36:57 +0100
committerMaximilian Hils <git@maximilianhils.com>2016-03-19 03:04:55 +0100
commitfb0b17ee93f463054c06f035f0d68a4f55c9b2af (patch)
tree703ab97f210c7a31a35edc93b560814e31189bc3 /test/mitmproxy/script
parent7e49b8c186c45bd2284f45fc181192aa0025be87 (diff)
downloadmitmproxy-fb0b17ee93f463054c06f035f0d68a4f55c9b2af.tar.gz
mitmproxy-fb0b17ee93f463054c06f035f0d68a4f55c9b2af.tar.bz2
mitmproxy-fb0b17ee93f463054c06f035f0d68a4f55c9b2af.zip
simplify tests for @concurrent
Diffstat (limited to 'test/mitmproxy/script')
-rw-r--r--test/mitmproxy/script/test_concurrent.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/mitmproxy/script/test_concurrent.py b/test/mitmproxy/script/test_concurrent.py
new file mode 100644
index 00000000..a9c9e153
--- /dev/null
+++ b/test/mitmproxy/script/test_concurrent.py
@@ -0,0 +1,32 @@
+from threading import Event
+
+from mitmproxy.script import Script
+from test.mitmproxy import tutils
+
+
+class Dummy:
+ def __init__(self, reply):
+ self.reply = reply
+
+
+@tutils.skip_appveyor
+def test_concurrent():
+ with Script(tutils.test_data.path("scripts/concurrent_decorator.py"), None) as s:
+ def reply():
+ reply.acked.set()
+ reply.acked = Event()
+
+ f1, f2 = Dummy(reply), Dummy(reply)
+ s.run("request", f1)
+ f1.reply()
+ s.run("request", f2)
+ f2.reply()
+ assert f1.reply.acked == reply.acked
+ assert not reply.acked.is_set()
+ assert reply.acked.wait(10)
+
+
+def test_concurrent_err():
+ s = Script(tutils.test_data.path("scripts/concurrent_decorator_err.py"), None)
+ with tutils.raises("Concurrent decorator not supported for 'start' method"):
+ s.load()