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)
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)
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')
def test_can_parse(self): self._parse_file('ritzau_news.xml') self.assertTrue(RitzauFeedParser().can_parse(self.root_elt))
# 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())
def test_can_parse(self): self.assertTrue(RitzauFeedParser().can_parse(self.root_elt))