Exemplo n.º 1
0
def apply_rule_set(item, provider, rule_set=None):
    """Applies rules set on the item to be ingested into the system.

    If there's no rule set then the item will
    be returned without any change.

    :param item: Item to be ingested
    :param provider: provider object from whom the item was received
    :return: item
    """
    try:
        if rule_set is None and provider.get('rule_set') is not None:
            rule_set = superdesk.get_resource_service('rule_sets').find_one(_id=provider['rule_set'], req=None)

        if rule_set and 'body_html' in item:
            body = item['body_html']

            for rule in rule_set['rules']:
                body = body.replace(rule['old'], rule['new'])

            item['body_html'] = body

        return item
    except Exception as ex:
        raise ProviderError.ruleError(ex, provider)
Exemplo n.º 2
0
def apply_rule_set(item, provider, rule_set=None):
    """
    Applies rules set on the item to be ingested into the system. If there's no rule set then the item will
    be returned without any change.

    :param item: Item to be ingested
    :param provider: provider object from whom the item was received
    :return: item
    """
    try:
        if rule_set is None and provider.get('rule_set') is not None:
            rule_set = superdesk.get_resource_service('rule_sets').find_one(
                _id=provider['rule_set'], req=None)

            if rule_set and 'body_html' in item:
                body = item['body_html']

                for rule in rule_set['rules']:
                    body = body.replace(rule['old'], rule['new'])

                item['body_html'] = body

        return item
    except Exception as ex:
        raise ProviderError.ruleError(ex, provider)
Exemplo n.º 3
0
 def test_raise_ruleError(self):
     with assert_raises(ProviderError) as error_context:
         try:
             ex = Exception("Testing ruleError")
             raise ex
         except Exception:
             raise ProviderError.ruleError(ex, self.provider)
     exception = error_context.exception
     self.assertTrue(exception.code == 2003)
     self.assertTrue(exception.message == "Rule could not be applied")
     self.assertIsNotNone(exception.system_exception)
     self.assertEqual(exception.system_exception.args[0], "Testing ruleError")
     self.assertEqual(len(self.mock_logger_handler.messages['error']), 1)
     self.assertEqual(self.mock_logger_handler.messages['error'][0],
                      "ProviderError Error 2003 - Rule could not be applied: "
                      "Testing ruleError on channel TestProvider")
Exemplo n.º 4
0
 def test_raise_ruleError(self):
     with assert_raises(ProviderError) as error_context:
         try:
             ex = Exception("Testing ruleError")
             raise ex
         except Exception:
             raise ProviderError.ruleError(ex, self.provider)
     exception = error_context.exception
     self.assertTrue(exception.code == 2003)
     self.assertTrue(exception.message == "Rule could not be applied")
     self.assertIsNotNone(exception.system_exception)
     self.assertEqual(exception.system_exception.args[0], "Testing ruleError")
     self.assertEqual(len(self.mock_logger_handler.messages['error']), 1)
     self.assertEqual(self.mock_logger_handler.messages['error'][0],
                      "ProviderError Error 2003 - Rule could not be applied: "
                      "Testing ruleError on channel TestProvider")