From e0f133bbe64f2cc3a2c4ec3b29a2893b150f0c61 Mon Sep 17 00:00:00 2001 From: "Dustin J. Mitchell" Date: Sat, 12 Jan 2013 15:50:47 -0500 Subject: [PATCH] be extra-careful about validation --- master/buildbot/test/util/validation.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/master/buildbot/test/util/validation.py b/master/buildbot/test/util/validation.py index 023fadeb321..0592cecf5c2 100644 --- a/master/buildbot/test/util/validation.py +++ b/master/buildbot/test/util/validation.py @@ -174,7 +174,10 @@ def __init__(self, keyFields, events, messageValidator): self.messageValidator = messageValidator def validate(self, name, routingKey_message): - routingKey, message = routingKey_message + try: + routingKey, message = routingKey_message + except (TypeError, ValueError) as e: + yield "%r: not a routing key and message: %s" % (routingKey_message, e) routingKeyBad = False for msg in self.routingKeyValidator.validate("routingKey", routingKey): yield msg @@ -208,7 +211,10 @@ def add(self, selector, validator): self.selectors.append((selector, validator)) def validate(self, name, arg_object): - arg, object = arg_object + try: + arg, object = arg_object + except (TypeError, ValueError) as e: + yield "%r: not a not data options and data dict: %s" % (arg_object, e) for selector, validator in self.selectors: if selector is None or selector(arg): for msg in validator.validate(name, object):