def process(service, labels, messages_details): for item in messages_details: subject = Msg.get_subject(item) if Msg.is_gocd_pattern(subject): gocd_details = Msg.get_gocd_details(subject) if slack.is_matching_send_rule(gocd_details): body = Msg.get_body(item) changeset = Msg.get_changeset_info(body) text = (slack .message_builder(gocd_details, changeset, GOCD_DASHBOARD_URL)) slack.send_to_slack(text, WEBHOOK_URL) Gm.add_label(service, Msg.get_id(item), 'SENT_TO_SLACK', labels) Gm.remove_label(service, Msg.get_id(item), 'UNREAD', labels)
def test_unknown_build_status(self): for status in ['unknown', 'error']: details = self.factory(status=status) self.assertFalse(is_matching_send_rule(details))
def test_list_of_allowed_fixed_build_stage(self): for stage in ['Package'] + TEST_DEPLOY_STAGES: details = self.factory(stage=stage, status='is fixed') self.assertTrue(is_matching_send_rule(details))
def test_list_of_ignored_passing_build_stage(self): for stage in ['Build', 'Test', 'Unit']: details = self.factory(stage=stage, status='passed') self.assertFalse(is_matching_send_rule(details))
def test_all_broken_builds_are_sent_regardless_of_stage(self): for stage in TEST_CI_STAGES + TEST_DEPLOY_STAGES: details = self.factory(stage=stage, status='is broken') self.assertTrue(is_matching_send_rule(details))