def testFailsOnRss(self): """Tests that parsing an RSS feed as Atom will fail.""" data = open(os.path.join(self.testdata, 'rss2sample.xml')).read() try: feed_diff.filter(data, 'atom') except feed_diff.Error, e: self.assertTrue('Enclosing tag is not <feed></feed>' in str(e))
def testFailsOnAtom(self): """Tests that parsing an Atom feed as RSS will fail.""" data = open(os.path.join(self.testdata, 'parsing.xml')).read() try: feed_diff.filter(data, 'rss') except feed_diff.Error, e: self.assertTrue('Enclosing tag is not <rss></rss>' in str(e))
def testMissingId(self): """Tests when an Atom entry is missing its ID field.""" data = open(os.path.join(self.testdata, 'missing_entry_id.xml')).read() try: feed_diff.filter(data, 'atom') except feed_diff.Error, e: self.assertTrue('<entry> element missing <id>' in str(e))
def testInvalidFeed(self): """Tests when the feed is not a valid Atom document.""" data = open(os.path.join(self.testdata, 'bad_atom_feed.xml')).read() try: feed_diff.filter(data, 'atom') except feed_diff.Error, e: self.assertTrue('Enclosing tag is not <feed></feed>' in str(e))
def testCData(self): """Tests a feed that has a CData section.""" data = open(os.path.join(self.testdata, 'cdata_test.xml')).read() header_footer, entries = feed_diff.filter(data, 'atom') expected_list = [u'tag:blog.livedoor.jp,2010:coupon_123.1635380'] self.verify_entries(expected_list, entries) self.assertTrue( ('<generator url="http://blog.livedoor.com/" ' 'version="1.0">livedoor Blog</generator>') in header_footer) entry_data = entries['tag:blog.livedoor.jp,2010:coupon_123.1635380'] # Here the CData section is rewritten. self.assertTrue('</FONT>' in entry_data)
def testCData(self): """Tests a feed that has a CData section.""" data = open(os.path.join(self.testdata, 'cdata_test.xml')).read() header_footer, entries = feed_diff.filter(data, 'atom') expected_list = [ u'tag:blog.livedoor.jp,2010:coupon_123.1635380' ] self.verify_entries(expected_list, entries) self.assertTrue( ('<generator url="http://blog.livedoor.com/" ' 'version="1.0">livedoor Blog</generator>') in header_footer) entry_data = entries['tag:blog.livedoor.jp,2010:coupon_123.1635380'] # Here the CData section is rewritten. self.assertTrue('</FONT>' in entry_data)
def load_feed(self, path): data = open(os.path.join(self.testdata, path)).read() header_footer, entries = feed_diff.filter(data, self.format) self.assertTrue(header_footer.startswith(self.feed_open)) self.assertTrue(header_footer.endswith(self.feed_close)) return header_footer, entries
def testNoXmlHeader(self): """Tests that feeds with no XML header are accepted.""" data = open(os.path.join(self.testdata, 'no_xml_header.xml')).read() header_footer, entries = feed_diff.filter(data, 'atom') self.assertEquals(1, len(entries))