diff options
author | Matthew Shao <me@matshao.com> | 2017-02-21 16:56:48 +0800 |
---|---|---|
committer | Matthew Shao <me@matshao.com> | 2017-02-21 16:56:48 +0800 |
commit | 5fc4fc28b682dda8ad2d3fd5b5ddf91938da5258 (patch) | |
tree | bed85224a3eb4f19cd368db89e7e467ef2eca9a2 | |
parent | f9714fbf3e595ba4c93ef036bfe63e3b63e256ab (diff) | |
download | mitmproxy-5fc4fc28b682dda8ad2d3fd5b5ddf91938da5258.tar.gz mitmproxy-5fc4fc28b682dda8ad2d3fd5b5ddf91938da5258.tar.bz2 mitmproxy-5fc4fc28b682dda8ad2d3fd5b5ddf91938da5258.zip |
Add test for @concurrent decorator in class.
-rw-r--r-- | test/mitmproxy/data/addonscripts/concurrent_decorator_class.py | 13 | ||||
-rw-r--r-- | test/mitmproxy/script/test_concurrent.py | 18 |
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") |