예제 #1
0
 def _parse_file(self, filename):
     dirname = os.path.dirname(os.path.realpath(__file__))
     fixture = os.path.normpath(
         os.path.join(dirname, '../fixtures', filename))
     provider = {'name': 'Test'}
     with open(fixture, 'rb') as f:
         self.root_elt = etree.fromstring(f.read())
         self.item = RitzauFeedParser().parse(self.root_elt, provider)
예제 #2
0
 def setUp(self):
     with self.app.app_context():
         self.app.data.insert('vocabularies', self.vocab)
     dirname = os.path.dirname(os.path.realpath(__file__))
     fixture = os.path.normpath(os.path.join(dirname, '../fixtures', self.filename))
     provider = {'name': 'Test'}
     with open(fixture, 'rb') as f:
         self.root_elt = etree.fromstring(f.read())
         self.item = RitzauFeedParser().parse(self.root_elt, provider)
예제 #3
0
 def test_cest_timezone(self):
     self.assertEqual(
         RitzauFeedParser()._publish_date_filter(
             '2018-09-18T13:09:18.397').isoformat(),
         '2018-09-18T11:09:18.397000+00:00')
예제 #4
0
 def test_can_parse(self):
     self._parse_file('ritzau_news.xml')
     self.assertTrue(RitzauFeedParser().can_parse(self.root_elt))
예제 #5
0
# at https://www.sourcefabric.org/superdesk/license

from superdesk.io.feed_parsers.ritzau import RitzauFeedParser
from superdesk.io.registry import register_feed_parser
from superdesk.errors import ParserError
from . import utils


class RitzauFeedParser(RitzauFeedParser):
    """
    Feed Parser which can parse Ritzau XML feed
    """

    _subjects_map = None

    NAME = 'ntb_ritzau'
    label = "NTB Ritzau feed"

    def parse(self, xml, provider=None):
        item = super().parse(xml, provider)
        try:
            category = utils.ingest_category_from_subject(item.get('subject'))
            item.setdefault('subject', []).append(category)
            utils.set_default_service(item)
        except Exception as ex:
            raise ParserError.parseMessageError(ex, provider)
        return item


register_feed_parser(RitzauFeedParser.NAME, RitzauFeedParser())
예제 #6
0
 def test_can_parse(self):
     self.assertTrue(RitzauFeedParser().can_parse(self.root_elt))