Exemplo n.º 1
0
    def test_decide_alert_returns_true_and_two_action_messages(self):
        # Given
        controller = StreamController()
        controller.query = '@STREAM1@ and @STREAM2@'
        messages = [
            StreamControllerMessage(_alert=True, _msg='MSG', _sender='STREAM1'),
            StreamControllerMessage(_alert=True, _msg='MSG', _sender='STREAM2')
        ]

        # When
        result, action_msgs = controller.decide_alert(messages)

        # Then
        self.assertTrue(result)
        self.assertEqual(2, len(action_msgs))
Exemplo n.º 2
0
    def streamcontroller_from_dict(self, obj_dict: dict):
        """
		:param obj_dict: JSON structure
		:return: StreamController object
		"""
        try:
            stream_controller = StreamController()
            stream_controller.query = obj_dict['query']
            stream_controller.msg_limit = int(obj_dict['msg_limit'])
            stream_controller.polling_interval = int(
                obj_dict['polling_interval'])

            action_class_name = obj_dict['action'][PCASystemJSONEncoder.TYPE]
            parameters_dict = obj_dict['action'][
                PCASystemJSONEncoder.PARAMETERS]

            stream_controller.action = self.loaded_actions[action_class_name](
                parameters_dict)
            return stream_controller
        except KeyError:
            PCASystemJSONDecoder.LOGGER.error(
                'Cannot load StreamController from JSON')
            raise