Merge pull request #2833 from mitmproxy/issue-2824

Improve error message for missing scripts, fix #2824
This commit is contained in:
Maximilian Hils 2018-02-01 10:17:38 +01:00 committed by GitHub
commit 6d8731e144
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View File

@ -44,13 +44,15 @@ class Script:
def __init__(self, path):
self.name = "scriptmanager:" + path
self.path = path
self.fullpath = os.path.expanduser(path)
self.fullpath = os.path.expanduser(
path.strip("'\" ")
)
self.ns = None
self.last_load = 0
self.last_mtime = 0
if not os.path.isfile(self.fullpath):
raise exceptions.OptionsError("No such script: %s" % path)
raise exceptions.OptionsError('No such script: "%s"' % self.fullpath)
@property
def addons(self):

View File

@ -68,6 +68,18 @@ class TestScript:
with pytest.raises(exceptions.OptionsError):
script.Script("nonexistent")
def test_quotes_around_filename(self):
"""
Test that a script specified as '"foo.py"' works to support the calling convention of
mitmproxy 2.0, as e.g. used by Cuckoo Sandbox.
"""
path = tutils.test_data.path("mitmproxy/data/addonscripts/recorder/recorder.py")
s = script.Script(
'"{}"'.format(path)
)
assert '"' not in s.fullpath
def test_simple(self):
with taddons.context() as tctx:
sc = script.Script(