aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2017-06-13 09:33:29 +1200
committerAldo Cortesi <aldo@corte.si>2017-06-13 09:43:12 +1200
commitd95f28e6bf581c65a06d410137160a50e584dbfd (patch)
treea46e743fef47c4cfc7f9ab3b8dfe704819b85588
parent06cb68c799e5cd302fdc21c2bc548adf30dd39b3 (diff)
downloadmitmproxy-d95f28e6bf581c65a06d410137160a50e584dbfd.tar.gz
mitmproxy-d95f28e6bf581c65a06d410137160a50e584dbfd.tar.bz2
mitmproxy-d95f28e6bf581c65a06d410137160a50e584dbfd.zip
config: don't crash with a config file containing only comments
-rw-r--r--mitmproxy/optmanager.py2
-rw-r--r--test/mitmproxy/test_optmanager.py4
2 files changed, 6 insertions, 0 deletions
diff --git a/mitmproxy/optmanager.py b/mitmproxy/optmanager.py
index 70f60bb6..1680d346 100644
--- a/mitmproxy/optmanager.py
+++ b/mitmproxy/optmanager.py
@@ -432,6 +432,8 @@ def parse(text):
raise exceptions.OptionsError("Could not parse options.")
if isinstance(data, str):
raise exceptions.OptionsError("Config error - no keys found.")
+ elif data is None:
+ return {}
return data
diff --git a/test/mitmproxy/test_optmanager.py b/test/mitmproxy/test_optmanager.py
index 04ec7ded..cadc5d76 100644
--- a/test/mitmproxy/test_optmanager.py
+++ b/test/mitmproxy/test_optmanager.py
@@ -257,6 +257,10 @@ def test_serialize():
with pytest.raises(Exception, match="Config error"):
optmanager.load(o2, t)
+ t = "# a comment"
+ optmanager.load(o2, t)
+ assert optmanager.load(o2, "foobar: '123'") == {"foobar": "123"}
+
t = ""
optmanager.load(o2, t)
assert optmanager.load(o2, "foobar: '123'") == {"foobar": "123"}