From b51df9a0b1cc9da1d7381421dfac481da6205a7a Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 7 Mar 2017 10:28:15 +1300 Subject: Cleanups and test coverage --- mitmproxy/optmanager.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'mitmproxy/optmanager.py') diff --git a/mitmproxy/optmanager.py b/mitmproxy/optmanager.py index 319fe622..3768b52c 100644 --- a/mitmproxy/optmanager.py +++ b/mitmproxy/optmanager.py @@ -110,7 +110,7 @@ class OptManager: self._options[name] = _Option(name, default, typespec, help, choices) @contextlib.contextmanager - def rollback(self, updated): + def rollback(self, updated, reraise=False): old = copy.deepcopy(self._options) try: yield @@ -120,6 +120,8 @@ class OptManager: # Rollback self.__dict__["_options"] = old self.changed.send(self, updated=updated) + if reraise: + raise e def subscribe(self, func, opts): """ @@ -337,7 +339,7 @@ class OptManager: dest=option, help=o.help ) - parser.set_defaults(**{option: o.default}) + parser.set_defaults(**{option: None}) elif o.typespec in (int, typing.Optional[int]): parser.add_argument( "--%s" % f, -- cgit v1.2.3