From e9c4450cf83b635e1530af8c1cab56aaacc0f09f Mon Sep 17 00:00:00 2001 From: Joe Gordon Date: Tue, 12 Aug 2014 12:15:18 -0700 Subject: [PATCH] Fix MessageConfig MessageConfig is a dictionary, but __init__ was updating __dict__ and not self. This bug was causing elastic-recheck to stacktrace when it tries to comment on a gerrit patch. Change-Id: Ic4304336692226acfe60d0845edaf2acb383acc6 --- elastic_recheck/bot.py | 3 ++- elastic_recheck/tests/unit/test_bot.py | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/elastic_recheck/bot.py b/elastic_recheck/bot.py index a9a9211b..5470fc1b 100755 --- a/elastic_recheck/bot.py +++ b/elastic_recheck/bot.py @@ -218,7 +218,8 @@ class RecheckWatch(threading.Thread): class MessageConfig(dict): def __init__(self, data): - self.__dict__.update(data['messages']) + super(MessageConfig, self).__init__() + self.update(data['messages']) class ChannelConfig(object): diff --git a/elastic_recheck/tests/unit/test_bot.py b/elastic_recheck/tests/unit/test_bot.py index 3d4b534a..b55d1b5d 100644 --- a/elastic_recheck/tests/unit/test_bot.py +++ b/elastic_recheck/tests/unit/test_bot.py @@ -135,3 +135,8 @@ class TestBotWithTestTools(tests.TestCase): job.bugs = ['123456'] self.assertTrue(self.recheck_watch.display('channel', event)) self.recheck_watch.error_found('channel', event) + + def test_message_config(self): + data = {'messages': {'test': 'message'}} + config = bot.MessageConfig(data) + self.assertEqual(config['test'], data['messages']['test'])