bug 1399819, separate command handler from argument parsing, r=stas
MozReview-Commit-ID: JbW7iDyJmc9
--- a/compare_locales/commands.py
+++ b/compare_locales/commands.py
@@ -80,31 +80,17 @@ data in a json useful for Exhibit
def handle_(self):
"""The instance part of the classmethod call."""
self.parser = self.get_parser()
args = self.parser.parse_args()
# log as verbose or quiet as we want, warn by default
logging.basicConfig()
logging.getLogger().setLevel(logging.WARNING -
(args.v - args.q) * 10)
- observers = self.handle(args)
- rv = 0
- for observer in observers:
- print observer.serialize(type=args.data).encode('utf-8', 'replace')
- # summary is a dict of lang-summary dicts
- # find out if any of our results has errors, return 1 if so
- if rv > 0:
- continue # we already have errors
- for loc, summary in observer.summary.items():
- if summary.get('errors', 0) > 0:
- rv = 1
- # no need to check further summaries, but
- # continue to run through observers
- break
- return rv
+ return self.handle(args)
def handle(self, args):
# using nargs multiple times in argparser totally screws things
# up, repair that.
# First files are configs, then the base dir, everything else is
# locales
all_args = args.config + [args.l10n_base_dir] + args.locales
del args.config[:]
@@ -150,9 +136,23 @@ data in a json useful for Exhibit
configs,
stat_observer=unified_observer,
merge_stage=args.merge, clobber_merge=args.clobber)
except (OSError, IOError), exc:
print "FAIL: " + str(exc)
self.parser.exit(2)
if args.unified:
return [unified_observer]
- return observers
+
+ rv = 0
+ for observer in observers:
+ print observer.serialize(type=args.data).encode('utf-8', 'replace')
+ # summary is a dict of lang-summary dicts
+ # find out if any of our results has errors, return 1 if so
+ if rv > 0:
+ continue # we already have errors
+ for loc, summary in observer.summary.items():
+ if summary.get('errors', 0) > 0:
+ rv = 1
+ # no need to check further summaries, but
+ # continue to run through observers
+ break
+ return rv