def destalinate_job(): print("Destalinating") if "SB_TOKEN" not in os.environ or "API_TOKEN" not in os.environ: print "ERR: Missing at least one Slack environment variable." else: warner = Warner() archiver = Archiver() announcer = Announcer() flagger = Flagger() print("Warning") warner.warn() print("Archiving") archiver.archive() print("Announcing") announcer.announce() print("Flagging") flagger.flag() print("OK: destalinated") print("END: destalinate_job")
class AnnouncerTestCase(TestCase): def setUp(self): self.announcer = Announcer() def test_subscribe_do_with_announcement(self): a = A() a.holder = 10 self.holder = 0 def func(announcement): self.holder = announcement.holder self.announcer.subscribe(when=A, do=func) self.assertEqual(self.holder, 0) self.announcer.announce(a) self.assertEqual(self.holder, 10) def test_subscribe_send_to(self): a = A() a.holder = 10 self.holder = 0 self.announcer.subscribe(when=A, send='setHolder', to=self) self.assertEqual(self.holder, 0) self.announcer.announce(a) self.assertEqual(self.holder, 10) def setHolder(self, announcement): self.holder = announcement.holder def test_subscribe_send_to_with_multi_subscriber(self): a = A() a.holder = 5 self.holder = 0 for i in range(2): self.announcer.subscribe(when=A, send='addHolder', to=self) self.assertEqual(self.holder, 0) self.announcer.announce(a) self.assertEqual(self.holder, 10) def addHolder(self, announcement): self.holder += announcement.holder def test_subscribe_send_to_with_inherited_announcement(self): a = A() b1 = B1() b2 = B2() def makeAppendHolderOf(s): def appendHolder(ann): self.holder.add(s) return appendHolder self.announcer.subscribe(when=A, do=makeAppendHolderOf('A')) self.announcer.subscribe(when=B1, do=makeAppendHolderOf('B1')) self.announcer.subscribe(when=B2, do=makeAppendHolderOf('B2')) self.holder = set() self.announcer.announce(b1) self.assertTrue({'B1'} == self.holder) self.holder = set() self.announcer.announce(b2) self.assertTrue({'B2'} == self.holder) self.holder = set() self.announcer.announce(a) self.assertTrue({'A', 'B1', 'B2'} == self.holder) def appendHolder(self, announcement): self.holder.add(announcement.value())