diff options
| author | Maximilian Hils <git@maximilianhils.com> | 2016-03-18 19:03:56 +0100 | 
|---|---|---|
| committer | Maximilian Hils <git@maximilianhils.com> | 2016-03-19 03:04:55 +0100 | 
| commit | 7e49b8c186c45bd2284f45fc181192aa0025be87 (patch) | |
| tree | 4eb0fed1f984e48c0f9e4cc4017c2fefed6e2962 | |
| parent | 898f5d10b999a14835286d2a22f2519815fc6d92 (diff) | |
| download | mitmproxy-7e49b8c186c45bd2284f45fc181192aa0025be87.tar.gz mitmproxy-7e49b8c186c45bd2284f45fc181192aa0025be87.tar.bz2 mitmproxy-7e49b8c186c45bd2284f45fc181192aa0025be87.zip | |
add tests for mitmproxy.script.reloader
| -rw-r--r-- | mitmproxy/script/reloader.py | 6 | ||||
| -rw-r--r-- | test/mitmproxy/script/test_reloader.py | 29 | 
2 files changed, 32 insertions, 3 deletions
| diff --git a/mitmproxy/script/reloader.py b/mitmproxy/script/reloader.py index b4acf51b..99ce7f60 100644 --- a/mitmproxy/script/reloader.py +++ b/mitmproxy/script/reloader.py @@ -1,7 +1,7 @@  import os  import sys  from watchdog.events import RegexMatchingEventHandler -if sys.platform == 'darwin': +if sys.platform == 'darwin':  # pragma: no cover      from watchdog.observers.polling import PollingObserver as Observer  else:      from watchdog.observers import Observer @@ -14,8 +14,8 @@ _observers = {}  def watch(script, callback):      if script in _observers:          raise RuntimeError("Script already observed") -    script_dir = os.path.dirname(os.path.abspath(script.args[0])) -    script_name = os.path.basename(script.args[0]) +    script_dir = os.path.dirname(os.path.abspath(script.filename)) +    script_name = os.path.basename(script.filename)      event_handler = _ScriptModificationHandler(callback, filename=script_name)      observer = Observer()      observer.schedule(event_handler, script_dir) diff --git a/test/mitmproxy/script/test_reloader.py b/test/mitmproxy/script/test_reloader.py new file mode 100644 index 00000000..af0ab88f --- /dev/null +++ b/test/mitmproxy/script/test_reloader.py @@ -0,0 +1,29 @@ +import mock +from mitmproxy.script.reloader import watch, unwatch +from test.mitmproxy import tutils +from threading import Event + + +def test_simple(): +    with tutils.tmpdir(): +        with open("foo.py", "wb"): +            pass + +        script = mock.Mock() +        script.filename = "foo.py" + +        e = Event() + +        def _onchange(): +            e.set() + +        watch(script, _onchange) +        with tutils.raises("already observed"): +            watch(script, _onchange) + +        with open("foo.py", "ab") as f: +            f.write(".") + +        assert e.wait(10) + +        unwatch(script) | 
