From 16de30033ee98919d3ba7a4c40289cb2152c97eb Mon Sep 17 00:00:00 2001 From: ravench Date: Thu, 23 Jul 2015 19:45:05 +0200 Subject: [PATCH 1/7] Extended command_HELLO --- master/buildbot/status/words.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/master/buildbot/status/words.py b/master/buildbot/status/words.py index b39e68839b1..c8376539842 100644 --- a/master/buildbot/status/words.py +++ b/master/buildbot/status/words.py @@ -1,3 +1,4 @@ +# coding: utf-8 # This file is part of Buildbot. Buildbot is free software: you can # redistribute it and/or modify it under the terms of the GNU General Public # License as published by the Free Software Foundation, version 2. @@ -158,6 +159,7 @@ def __init__(self, bot, user=None, channel=None): self.user = user self.channel = channel + self.did_say_yes = False # silliness @@ -274,7 +276,13 @@ def splitArgs(self, args): raise UsageError(e) def command_HELLO(self, args): - self.send("yes?") + if self.did_say_yes: + # List of 'Hi' in 100 languages. If you update this remember to also adjust master/buildbot/test/unit/test_status_words.py + greetings = ["ږغ كول ، هركلى كول ږغ، هركلى", "Goeie dag", "Tungjatjeta", "Yatasay", "Ahlan bik", "Voghdzuyin", "hola", "kaixo", "Horas", "Pryvitańnie", "Nomoskar", "Oki", "Selam", "Dez-mat", "Zdrávejte", "Mingala ba", "Hola", "Hafa dai", "Oh-see-YOH", "Nín hao", "Bonjou", "Zdravo", "Nazdar", "Hallo", "Hallo", "Iiti", "Kotáka", "Saluton", "Tere", "Hallo", "Hallo", "Bula", "Helo", "Hei", "Goede morgen", "Bonjour", "Hoi", "Ola", "Gamardžoba", "Guten Tag", "Mauri", "Geia!", "Inuugujoq", "Kem cho", "Sannu", "Aloha", "Shalóm", "Namasté", "Szia", "Halló", "Hai", "Kiana", "Dia is muire dhuit", "Buongiorno", "Kónnichi wa", "Salam", "Annyeonghaseyo", "Na", "Sabai dii", "Ave", "Es mīlu tevi", "Labas.", "Selamat petang", "Ni hao", "Kia ora", "Yokwe", "Kwe", "sain baina uu", "niltze", "Yá'át'ééh", "Namaste", "Hallo.", "Salâm", "Witajcie", "Olá", "Kâils", "Aroha", "Salut", "Privét", "Talofa", "Namo namah", "ćao", "Nazdar", "Zdravo", "Hola", "Jambo", "Hej", "Sälü", "Halo", "Selam", "Sàwàtdee kráp", "Dumela", "Merhaba", "Pryvít", "Adaab arz hai", "Chào", "Glidis", "Helo", "Sawubona", "Hoi"] + self.send(random.choice(greetings)) + else: + self.did_say_yes = True + self.send("yes?") def command_VERSION(self, args): self.send("buildbot-%s at your service" % version) From f2eb45b1fe45909ec99a20d6c7e95d248bbc4618 Mon Sep 17 00:00:00 2001 From: ravench Date: Thu, 23 Jul 2015 19:47:17 +0200 Subject: [PATCH 2/7] Added test for command_HELLO --- master/buildbot/test/unit/test_status_words.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/master/buildbot/test/unit/test_status_words.py b/master/buildbot/test/unit/test_status_words.py index 0df92254b19..3cb48c1e202 100644 --- a/master/buildbot/test/unit/test_status_words.py +++ b/master/buildbot/test/unit/test_status_words.py @@ -1,3 +1,4 @@ +# coding: utf-8 # This file is part of Buildbot. Buildbot is free software: you can # redistribute it and/or modify it under the terms of the GNU General Public # License as published by the Free Software Foundation, version 2. @@ -299,6 +300,14 @@ def test_command_hustle(self): yield self.do_test_command('hustle', clock_ticks=[1.0] * 2, exp_usage=False) self.assertEqual(self.actions, ['does the hustle']) + @defer.inlineCallbacks + def test_command_hello(self): + greetings = ["ږغ كول ، هركلى كول ږغ، هركلى", "Goeie dag", "Tungjatjeta", "Yatasay", "Ahlan bik", "Voghdzuyin", "hola", "kaixo", "Horas", "Pryvitańnie", "Nomoskar", "Oki", "Selam", "Dez-mat", "Zdrávejte", "Mingala ba", "Hola", "Hafa dai", "Oh-see-YOH", "Nín hao", "Bonjou", "Zdravo", "Nazdar", "Hallo", "Hallo", "Iiti", "Kotáka", "Saluton", "Tere", "Hallo", "Hallo", "Bula", "Helo", "Hei", "Goede morgen", "Bonjour", "Hoi", "Ola", "Gamardžoba", "Guten Tag", "Mauri", "Geia!", "Inuugujoq", "Kem cho", "Sannu", "Aloha", "Shalóm", "Namasté", "Szia", "Halló", "Hai", "Kiana", "Dia is muire dhuit", "Buongiorno", "Kónnichi wa", "Salam", "Annyeonghaseyo", "Na", "Sabai dii", "Ave", "Es mīlu tevi", "Labas.", "Selamat petang", "Ni hao", "Kia ora", "Yokwe", "Kwe", "sain baina uu", "niltze", "Yá'át'ééh", "Namaste", "Hallo.", "Salâm", "Witajcie", "Olá", "Kâils", "Aroha", "Salut", "Privét", "Talofa", "Namo namah", "ćao", "Nazdar", "Zdravo", "Hola", "Jambo", "Hej", "Sälü", "Halo", "Selam", "Sàwàtdee kráp", "Dumela", "Merhaba", "Pryvít", "Adaab arz hai", "Chào", "Glidis", "Helo", "Sawubona", "Hoi"] + yield self.do_test_command('hello', exp_usage=False) + self.assertEqual(self.sent, ['yes?']) + yield self.do_test_command('hello', exp_usage=False) + self.assertIn(self.sent[0], greetings) + @defer.inlineCallbacks def test_command_list(self): yield self.do_test_command('list', exp_UsageError=True) From 5a8c9b3bf48ec8125a5f1587cf4a6f48c53da495 Mon Sep 17 00:00:00 2001 From: ravench Date: Thu, 23 Jul 2015 19:53:56 +0200 Subject: [PATCH 3/7] Added relnote for the updates to command_HELLO --- master/docs/relnotes/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/master/docs/relnotes/index.rst b/master/docs/relnotes/index.rst index 4836385e0f6..6a1f49cdc14 100644 --- a/master/docs/relnotes/index.rst +++ b/master/docs/relnotes/index.rst @@ -14,7 +14,7 @@ Master Features ~~~~~~~~ - +* ``hello`` now returns 'Hello' in a random language if invoked more than once. Fixes ~~~~~ From f52fcd0d5ce2c25da4cbedd60e3b565cd0669c47 Mon Sep 17 00:00:00 2001 From: ravench Date: Fri, 24 Jul 2015 13:34:47 +0200 Subject: [PATCH 4/7] Moved greetings to the module-level and renamed it GREETINGS. --- master/buildbot/status/words.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/master/buildbot/status/words.py b/master/buildbot/status/words.py index c8376539842..772a2e4966e 100644 --- a/master/buildbot/status/words.py +++ b/master/buildbot/status/words.py @@ -40,6 +40,8 @@ from buildbot.status.results import SUCCESS from buildbot.status.results import WARNINGS +# Used in command_HELLO and it's test/ 'Hi' in 100 languages. +GREETINGS = ["ږغ كول ، هركلى كول ږغ، هركلى", "Goeie dag", "Tungjatjeta", "Yatasay", "Ahlan bik", "Voghdzuyin", "hola", "kaixo", "Horas", "Pryvitańnie", "Nomoskar", "Oki", "Selam", "Dez-mat", "Zdrávejte", "Mingala ba", "Hola", "Hafa dai", "Oh-see-YOH", "Nín hao", "Bonjou", "Zdravo", "Nazdar", "Hallo", "Hallo", "Iiti", "Kotáka", "Saluton", "Tere", "Hallo", "Hallo", "Bula", "Helo", "Hei", "Goede morgen", "Bonjour", "Hoi", "Ola", "Gamardžoba", "Guten Tag", "Mauri", "Geia!", "Inuugujoq", "Kem cho", "Sannu", "Aloha", "Shalóm", "Namasté", "Szia", "Halló", "Hai", "Kiana", "Dia is muire dhuit", "Buongiorno", "Kónnichi wa", "Salam", "Annyeonghaseyo", "Na", "Sabai dii", "Ave", "Es mīlu tevi", "Labas.", "Selamat petang", "Ni hao", "Kia ora", "Yokwe", "Kwe", "sain baina uu", "niltze", "Yá'át'ééh", "Namaste", "Hallo.", "Salâm", "Witajcie", "Olá", "Kâils", "Aroha", "Salut", "Privét", "Talofa", "Namo namah", "ćao", "Nazdar", "Zdravo", "Hola", "Jambo", "Hej", "Sälü", "Halo", "Selam", "Sàwàtdee kráp", "Dumela", "Merhaba", "Pryvít", "Adaab arz hai", "Chào", "Glidis", "Helo", "Sawubona", "Hoi"] # This should probably move to the irc class. def maybeColorize(text, color, useColors): @@ -277,9 +279,7 @@ def splitArgs(self, args): def command_HELLO(self, args): if self.did_say_yes: - # List of 'Hi' in 100 languages. If you update this remember to also adjust master/buildbot/test/unit/test_status_words.py - greetings = ["ږغ كول ، هركلى كول ږغ، هركلى", "Goeie dag", "Tungjatjeta", "Yatasay", "Ahlan bik", "Voghdzuyin", "hola", "kaixo", "Horas", "Pryvitańnie", "Nomoskar", "Oki", "Selam", "Dez-mat", "Zdrávejte", "Mingala ba", "Hola", "Hafa dai", "Oh-see-YOH", "Nín hao", "Bonjou", "Zdravo", "Nazdar", "Hallo", "Hallo", "Iiti", "Kotáka", "Saluton", "Tere", "Hallo", "Hallo", "Bula", "Helo", "Hei", "Goede morgen", "Bonjour", "Hoi", "Ola", "Gamardžoba", "Guten Tag", "Mauri", "Geia!", "Inuugujoq", "Kem cho", "Sannu", "Aloha", "Shalóm", "Namasté", "Szia", "Halló", "Hai", "Kiana", "Dia is muire dhuit", "Buongiorno", "Kónnichi wa", "Salam", "Annyeonghaseyo", "Na", "Sabai dii", "Ave", "Es mīlu tevi", "Labas.", "Selamat petang", "Ni hao", "Kia ora", "Yokwe", "Kwe", "sain baina uu", "niltze", "Yá'át'ééh", "Namaste", "Hallo.", "Salâm", "Witajcie", "Olá", "Kâils", "Aroha", "Salut", "Privét", "Talofa", "Namo namah", "ćao", "Nazdar", "Zdravo", "Hola", "Jambo", "Hej", "Sälü", "Halo", "Selam", "Sàwàtdee kráp", "Dumela", "Merhaba", "Pryvít", "Adaab arz hai", "Chào", "Glidis", "Helo", "Sawubona", "Hoi"] - self.send(random.choice(greetings)) + self.send(random.choice(GREETINGS)) else: self.did_say_yes = True self.send("yes?") From 72907c6324cfcdaa9fdadb123138a8cda096d45b Mon Sep 17 00:00:00 2001 From: ravench Date: Fri, 24 Jul 2015 13:36:27 +0200 Subject: [PATCH 5/7] Changed the command_HELLO test to using words.GREETINGS. --- master/buildbot/test/unit/test_status_words.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/master/buildbot/test/unit/test_status_words.py b/master/buildbot/test/unit/test_status_words.py index 3cb48c1e202..a9ce714bdf4 100644 --- a/master/buildbot/test/unit/test_status_words.py +++ b/master/buildbot/test/unit/test_status_words.py @@ -1,4 +1,3 @@ -# coding: utf-8 # This file is part of Buildbot. Buildbot is free software: you can # redistribute it and/or modify it under the terms of the GNU General Public # License as published by the Free Software Foundation, version 2. @@ -302,11 +301,10 @@ def test_command_hustle(self): @defer.inlineCallbacks def test_command_hello(self): - greetings = ["ږغ كول ، هركلى كول ږغ، هركلى", "Goeie dag", "Tungjatjeta", "Yatasay", "Ahlan bik", "Voghdzuyin", "hola", "kaixo", "Horas", "Pryvitańnie", "Nomoskar", "Oki", "Selam", "Dez-mat", "Zdrávejte", "Mingala ba", "Hola", "Hafa dai", "Oh-see-YOH", "Nín hao", "Bonjou", "Zdravo", "Nazdar", "Hallo", "Hallo", "Iiti", "Kotáka", "Saluton", "Tere", "Hallo", "Hallo", "Bula", "Helo", "Hei", "Goede morgen", "Bonjour", "Hoi", "Ola", "Gamardžoba", "Guten Tag", "Mauri", "Geia!", "Inuugujoq", "Kem cho", "Sannu", "Aloha", "Shalóm", "Namasté", "Szia", "Halló", "Hai", "Kiana", "Dia is muire dhuit", "Buongiorno", "Kónnichi wa", "Salam", "Annyeonghaseyo", "Na", "Sabai dii", "Ave", "Es mīlu tevi", "Labas.", "Selamat petang", "Ni hao", "Kia ora", "Yokwe", "Kwe", "sain baina uu", "niltze", "Yá'át'ééh", "Namaste", "Hallo.", "Salâm", "Witajcie", "Olá", "Kâils", "Aroha", "Salut", "Privét", "Talofa", "Namo namah", "ćao", "Nazdar", "Zdravo", "Hola", "Jambo", "Hej", "Sälü", "Halo", "Selam", "Sàwàtdee kráp", "Dumela", "Merhaba", "Pryvít", "Adaab arz hai", "Chào", "Glidis", "Helo", "Sawubona", "Hoi"] yield self.do_test_command('hello', exp_usage=False) self.assertEqual(self.sent, ['yes?']) yield self.do_test_command('hello', exp_usage=False) - self.assertIn(self.sent[0], greetings) + self.assertIn(self.sent[0], words.GREETINGS) @defer.inlineCallbacks def test_command_list(self): From 8150783c43aadb630fabf9f70a3e1f29fbadc9d7 Mon Sep 17 00:00:00 2001 From: ravench Date: Fri, 24 Jul 2015 13:50:08 +0200 Subject: [PATCH 6/7] self.did_say_yes > self._did_say_yes: --- master/buildbot/status/words.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/master/buildbot/status/words.py b/master/buildbot/status/words.py index 772a2e4966e..46cdeec7b2e 100644 --- a/master/buildbot/status/words.py +++ b/master/buildbot/status/words.py @@ -40,9 +40,10 @@ from buildbot.status.results import SUCCESS from buildbot.status.results import WARNINGS -# Used in command_HELLO and it's test/ 'Hi' in 100 languages. +# Used in command_HELLO and it's test. 'Hi' in 100 languages. GREETINGS = ["ږغ كول ، هركلى كول ږغ، هركلى", "Goeie dag", "Tungjatjeta", "Yatasay", "Ahlan bik", "Voghdzuyin", "hola", "kaixo", "Horas", "Pryvitańnie", "Nomoskar", "Oki", "Selam", "Dez-mat", "Zdrávejte", "Mingala ba", "Hola", "Hafa dai", "Oh-see-YOH", "Nín hao", "Bonjou", "Zdravo", "Nazdar", "Hallo", "Hallo", "Iiti", "Kotáka", "Saluton", "Tere", "Hallo", "Hallo", "Bula", "Helo", "Hei", "Goede morgen", "Bonjour", "Hoi", "Ola", "Gamardžoba", "Guten Tag", "Mauri", "Geia!", "Inuugujoq", "Kem cho", "Sannu", "Aloha", "Shalóm", "Namasté", "Szia", "Halló", "Hai", "Kiana", "Dia is muire dhuit", "Buongiorno", "Kónnichi wa", "Salam", "Annyeonghaseyo", "Na", "Sabai dii", "Ave", "Es mīlu tevi", "Labas.", "Selamat petang", "Ni hao", "Kia ora", "Yokwe", "Kwe", "sain baina uu", "niltze", "Yá'át'ééh", "Namaste", "Hallo.", "Salâm", "Witajcie", "Olá", "Kâils", "Aroha", "Salut", "Privét", "Talofa", "Namo namah", "ćao", "Nazdar", "Zdravo", "Hola", "Jambo", "Hej", "Sälü", "Halo", "Selam", "Sàwàtdee kráp", "Dumela", "Merhaba", "Pryvít", "Adaab arz hai", "Chào", "Glidis", "Helo", "Sawubona", "Hoi"] + # This should probably move to the irc class. def maybeColorize(text, color, useColors): irc_colors = [ @@ -161,7 +162,7 @@ def __init__(self, bot, user=None, channel=None): self.user = user self.channel = channel - self.did_say_yes = False + self._did_say_yes = False # silliness @@ -278,10 +279,10 @@ def splitArgs(self, args): raise UsageError(e) def command_HELLO(self, args): - if self.did_say_yes: + if self._did_say_yes: self.send(random.choice(GREETINGS)) else: - self.did_say_yes = True + self._did_say_yes = True self.send("yes?") def command_VERSION(self, args): From 9217c2c0dbe3b7599e39b90b7c1d18d8e6748c63 Mon Sep 17 00:00:00 2001 From: ravench Date: Sat, 25 Jul 2015 19:54:34 +0200 Subject: [PATCH 7/7] Simplified command_HELLO Implemented a friend's recommendations. --- master/buildbot/status/words.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/master/buildbot/status/words.py b/master/buildbot/status/words.py index 46cdeec7b2e..d493c2df505 100644 --- a/master/buildbot/status/words.py +++ b/master/buildbot/status/words.py @@ -162,7 +162,7 @@ def __init__(self, bot, user=None, channel=None): self.user = user self.channel = channel - self._did_say_yes = False + self._next_HELLO = 'yes?' # silliness @@ -279,11 +279,8 @@ def splitArgs(self, args): raise UsageError(e) def command_HELLO(self, args): - if self._did_say_yes: - self.send(random.choice(GREETINGS)) - else: - self._did_say_yes = True - self.send("yes?") + self.send(self._next_HELLO) + self._next_HELLO = random.choice(GREETINGS) def command_VERSION(self, args): self.send("buildbot-%s at your service" % version)