Ejemplo n.º 1
0
    def test_expected_args(self, event, monkeypatch):
        monkeypatch.setattr(requests, 'post', lambda *_: None)

        os.environ['MESSAGE_HOOKS_SLACK_URL'] = 'http://example.com'

        notifier = SlackNotifier()
        notifier.publish(event)
Ejemplo n.º 2
0
    def publish(self, event: dict) -> dict:
        slack_webhook_url = os.environ['SLACK_WEBHOOK_URL']
        table_name = os.environ['DATABASE_NAME']

        try:
            device_id = self.get_device_id_from_event(event)
            table = self.dynamodb.Table(table_name)
            res = table.query(
                KeyConditionExpression=Key('device_id').eq(device_id))['Items']

            if len(res) == 0:
                logger.info(f'{device_id} is not found.')
                return {}

            item = res[0]

            slack_username = item.get('slack_username', '')
            slack_text = item.get('slack_text', '')
            slack_icon_emoji = item.get('slack_icon_emoji', '')

            slack_message = {
                'slack_username': slack_username,
                'slack_text': slack_text,
                'slack_icon_emoji': slack_icon_emoji
            }

            SlackNotifier().publish(slack_webhook_url, slack_message)

            return slack_message
        except Exception as e:
            logger.error(f'Exception occurred: {e}', exc_info=True)
            raise e
Ejemplo n.º 3
0
def main():
    logger.info(">> CaseNotifier STARTS!!")
    fetched_case_list = fetch_jira_cases()
    print(fetched_case_list)

    notification_list = Filter.filter_cases(DB_PATH, fetched_case_list)
    #update_database(fetched_case_list)
    #send_notification_to_slack()

    slack = SlackNotifier(SLACK_CHANNEL)
    for case in notification_list:
        slack.send_case(case)
        logger.info("sent: {}".format(case))

    logger.info("sending notification completed")
    logger.info("<< CaseNotifier ENDS!!")
Ejemplo n.º 4
0
    # parser.add_argument('--lu', type=str, default=os.environ['LINE_USER_ID'], help='line user id')
    args = parser.parse_args()

    # Open video stream
    cam = cv2.VideoCapture(args.url)

    video_fps = cam.get(cv2.CAP_PROP_FPS)
    image_x = int(cam.get(cv2.CAP_PROP_FRAME_WIDTH))
    image_y = int(cam.get(cv2.CAP_PROP_FRAME_HEIGHT))

    print("[log] Video info: {:.2f}fps {}x{}".format(video_fps, image_x,
                                                     image_y))

    # Initialize
    face_recognizer = FaceRecognizer(args.face, args.tol)
    notifier = SlackNotifier(args.slack)
    # notifier = LineNotifier(args.lt, args.lu)
    data_store = DataStore()

    init_time = datetime(2000, 1, 1)
    detected_dict = dict(
        zip(cilab_people.keys(),
            [(init_time, 0) for i in range(len(cilab_people))]))
    recognized_dict = dict(
        zip(cilab_people.keys(),
            [init_time for i in range(len(cilab_people))]))

    read_error_count = (init_time, 0)

    # Monitoring
    print("[log] Start monitoring...")
Ejemplo n.º 5
0
def handler(event, context):
    SlackNotifier().publish(event)
Ejemplo n.º 6
0
    def test_expected_args(self, message, expected, monkeypatch):
        f = SlackNotifier()
        actual = f.make_payload(message)

        assert actual == expected
Ejemplo n.º 7
0
    def test_exception_args(self, api_endpoint, message, expected):
        f = SlackNotifier()

        with pytest.raises(expected):
            f.publish(api_endpoint, message)
Ejemplo n.º 8
0
    def test_expected_args(self, api_endpoint, message, expected, monkeypatch):
        monkeypatch.setattr(requests, 'post', lambda *_: None)

        f = SlackNotifier()

        assert f.publish(api_endpoint, message) == expected
Ejemplo n.º 9
0
    def test_expected_args(self, message, expected):
        notifier = SlackNotifier()
        actual = notifier.payload(message)

        assert actual == expected
Ejemplo n.º 10
0
 def test_unexpected_args(self, event):
     SlackNotifier().publish(event)
Ejemplo n.º 11
0
    def test_expected_args(self, message, hooks_url, expected):
        os.environ['MESSAGE_HOOKS_SLACK_URL'] = hooks_url

        actual = SlackNotifier().api_endpoint(message)

        assert actual == expected
Ejemplo n.º 12
0
    def test_expected_args(self, event, expected):
        actual = SlackNotifier().parse_message(event)

        assert actual == expected