mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 00:01:36 +00:00
optmanager: tweaks and cleanups
This commit is contained in:
parent
e59ba13417
commit
ec2ae19e22
@ -91,7 +91,7 @@ class OptManager:
|
||||
mutation doesn't change the option state inadvertently.
|
||||
"""
|
||||
def __init__(self):
|
||||
self._deferred: typing.Dict[str, str] = {}
|
||||
self.deferred: typing.Dict[str, str] = {}
|
||||
self.changed = blinker.Signal()
|
||||
self.errored = blinker.Signal()
|
||||
# Options must be the last attribute here - after that, we raise an
|
||||
@ -219,7 +219,7 @@ class OptManager:
|
||||
|
||||
def update_defer(self, **kwargs):
|
||||
unknown = self.update_known(**kwargs)
|
||||
self._deferred.update(unknown)
|
||||
self.deferred.update(unknown)
|
||||
|
||||
def update(self, **kwargs):
|
||||
u = self.update_known(**kwargs)
|
||||
@ -307,7 +307,7 @@ class OptManager:
|
||||
else:
|
||||
unknown[optname] = optval
|
||||
if defer:
|
||||
self._deferred.update(unknown)
|
||||
self.deferred.update(unknown)
|
||||
elif unknown:
|
||||
raise exceptions.OptionsError("Unknown options: %s" % ", ".join(unknown.keys()))
|
||||
self.update(**vals)
|
||||
@ -318,12 +318,12 @@ class OptManager:
|
||||
have since been added.
|
||||
"""
|
||||
update = {}
|
||||
for optname, optval in self._deferred.items():
|
||||
for optname, optval in self.deferred.items():
|
||||
if optname in self._options:
|
||||
update[optname] = self.parse_setval(self._options[optname], optval)
|
||||
self.update(**update)
|
||||
for k in update.keys():
|
||||
del self._deferred[k]
|
||||
del self.deferred[k]
|
||||
|
||||
def parse_setval(self, o: _Option, optstr: typing.Optional[str]) -> typing.Any:
|
||||
"""
|
||||
|
@ -270,12 +270,12 @@ def test_serialize():
|
||||
t = "# a comment"
|
||||
optmanager.load(o2, t)
|
||||
optmanager.load(o2, "foobar: '123'")
|
||||
assert o2._deferred == {"foobar": "123"}
|
||||
assert o2.deferred == {"foobar": "123"}
|
||||
|
||||
t = ""
|
||||
optmanager.load(o2, t)
|
||||
optmanager.load(o2, "foobar: '123'")
|
||||
assert o2._deferred == {"foobar": "123"}
|
||||
assert o2.deferred == {"foobar": "123"}
|
||||
|
||||
|
||||
def test_serialize_defaults():
|
||||
@ -300,7 +300,7 @@ def test_saving(tmpdir):
|
||||
with open(dst, 'a') as f:
|
||||
f.write("foobar: '123'")
|
||||
optmanager.load_paths(o, dst)
|
||||
assert o._deferred == {"foobar": "123"}
|
||||
assert o.deferred == {"foobar": "123"}
|
||||
|
||||
with open(dst, 'a') as f:
|
||||
f.write("'''")
|
||||
@ -429,13 +429,13 @@ def test_set():
|
||||
assert opts.seqstr == []
|
||||
|
||||
with pytest.raises(exceptions.OptionsError):
|
||||
opts.set("deferred=wobble")
|
||||
opts.set("deferredoption=wobble")
|
||||
|
||||
opts.set("deferred=wobble", defer=True)
|
||||
assert "deferred" in opts._deferred
|
||||
opts.set("deferredoption=wobble", defer=True)
|
||||
assert "deferredoption" in opts.deferred
|
||||
opts.process_deferred()
|
||||
assert "deferred" in opts._deferred
|
||||
opts.add_option("deferred", str, "default", "help")
|
||||
assert "deferredoption" in opts.deferred
|
||||
opts.add_option("deferredoption", str, "default", "help")
|
||||
opts.process_deferred()
|
||||
assert "deferred" not in opts._deferred
|
||||
assert opts.deferred == "wobble"
|
||||
assert "deferredoption" not in opts.deferred
|
||||
assert opts.deferredoption == "wobble"
|
||||
|
Loading…
Reference in New Issue
Block a user