diff options
Diffstat (limited to 'tests/test_entry.py')
-rw-r--r-- | tests/test_entry.py | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/tests/test_entry.py b/tests/test_entry.py new file mode 100644 index 0000000..adfd8b5 --- /dev/null +++ b/tests/test_entry.py @@ -0,0 +1,180 @@ +# -*- coding: utf-8 -*- + +""" +Tests for a basic entry + +These are test cases for a basic entry. +""" + +import unittest + +from feedgen.feed import FeedGenerator + + +class TestSequenceFunctions(unittest.TestCase): + + def setUp(self): + fg = FeedGenerator() + self.feedId = 'http://example.com' + self.title = 'Some Testfeed' + + fg.id(self.feedId) + fg.title(self.title) + fg.link(href='http://lkiesow.de', rel='alternate')[0] + fg.description('...') + + fe = fg.add_entry() + fe.id('http://lernfunk.de/media/654321/1') + fe.title('The First Episode') + fe.content(u'…') + + # Use also the different name add_item + fe = fg.add_item() + fe.id('http://lernfunk.de/media/654321/1') + fe.title('The Second Episode') + fe.content(u'…') + + fe = fg.add_entry() + fe.id('http://lernfunk.de/media/654321/1') + fe.title('The Third Episode') + fe.content(u'…') + + self.fg = fg + + def test_setEntries(self): + fg2 = FeedGenerator() + fg2.entry(self.fg.entry()) + self.assertEqual(len(fg2.entry()), 3) + self.assertEqual(self.fg.entry(), fg2.entry()) + + def test_loadExtension(self): + fe = self.fg.add_item() + fe.id('1') + fe.title(u'…') + fe.content(u'…') + fe.load_extension('base') + self.assertTrue(fe.base) + self.assertTrue(self.fg.atom_str()) + + def test_checkEntryNumbers(self): + fg = self.fg + self.assertEqual(len(fg.entry()), 3) + + def test_TestEntryItems(self): + fe = self.fg.add_item() + fe.title('qwe') + self.assertEqual(fe.title(), 'qwe') + author = fe.author(email='ldoe@example.com')[0] + self.assertFalse(author.get('name')) + self.assertEqual(author.get('email'), 'ldoe@example.com') + author = fe.author(name='John Doe', email='jdoe@example.com', + replace=True)[0] + self.assertEqual(author.get('name'), 'John Doe') + self.assertEqual(author.get('email'), 'jdoe@example.com') + contributor = fe.contributor(name='John Doe', email='jdoe@ex.com')[0] + self.assertEqual(contributor, fe.contributor()[0]) + self.assertEqual(contributor.get('name'), 'John Doe') + self.assertEqual(contributor.get('email'), 'jdoe@ex.com') + link = fe.link(href='http://lkiesow.de', rel='alternate')[0] + self.assertEqual(link, fe.link()[0]) + self.assertEqual(link.get('href'), 'http://lkiesow.de') + self.assertEqual(link.get('rel'), 'alternate') + fe.guid('123') + self.assertEqual(fe.guid().get('guid'), '123') + fe.updated('2017-02-05 13:26:58+01:00') + self.assertEqual(fe.updated().year, 2017) + fe.summary('asdf') + self.assertEqual(fe.summary(), {'summary': 'asdf'}) + fe.description('asdfx') + self.assertEqual(fe.description(), 'asdfx') + fe.pubDate('2017-02-05 13:26:58+01:00') + self.assertEqual(fe.pubDate().year, 2017) + fe.rights('asdfx') + self.assertEqual(fe.rights(), 'asdfx') + source = fe.source(url='https://example.com', title='Test') + self.assertEqual(source.get('title'), 'Test') + self.assertEqual(source.get('url'), 'https://example.com') + fe.comments('asdfx') + self.assertEqual(fe.comments(), 'asdfx') + fe.enclosure(url='http://lkiesow.de', type='text/plain', length='1') + self.assertEqual(fe.enclosure().get('url'), 'http://lkiesow.de') + fe.ttl(8) + self.assertEqual(fe.ttl(), 8) + + self.fg.rss_str() + self.fg.atom_str() + + def test_checkItemNumbers(self): + fg = self.fg + self.assertEqual(len(fg.item()), 3) + + def test_checkEntryContent(self): + fg = self.fg + self.assertTrue(fg.entry()) + + def test_removeEntryByIndex(self): + fg = FeedGenerator() + self.feedId = 'http://example.com' + self.title = 'Some Testfeed' + + fe = fg.add_entry() + fe.id('http://lernfunk.de/media/654321/1') + fe.title('The Third Episode') + self.assertEqual(len(fg.entry()), 1) + fg.remove_entry(0) + self.assertEqual(len(fg.entry()), 0) + + def test_removeEntryByEntry(self): + fg = FeedGenerator() + self.feedId = 'http://example.com' + self.title = 'Some Testfeed' + + fe = fg.add_entry() + fe.id('http://lernfunk.de/media/654321/1') + fe.title('The Third Episode') + + self.assertEqual(len(fg.entry()), 1) + fg.remove_entry(fe) + self.assertEqual(len(fg.entry()), 0) + + def test_categoryHasDomain(self): + fg = FeedGenerator() + fg.title('some title') + fg.link(href='http://www.dontcare.com', rel='alternate') + fg.description('description') + fe = fg.add_entry() + fe.id('http://lernfunk.de/media/654321/1') + fe.title('some title') + fe.category([ + {'term': 'category', + 'scheme': 'http://somedomain.com/category', + 'label': 'Category', + }]) + + result = fg.rss_str() + self.assertIn(b'domain="http://somedomain.com/category"', result) + + def test_content_cdata_type(self): + fg = FeedGenerator() + fg.title('some title') + fg.id('http://lernfunk.de/media/654322/1') + fe = fg.add_entry() + fe.id('http://lernfunk.de/media/654322/1') + fe.title('some title') + fe.content('content', type='CDATA') + result = fg.atom_str() + expected = b'<content type="CDATA"><![CDATA[content]]></content>' + self.assertIn(expected, result) + + def test_summary_html_type(self): + fg = FeedGenerator() + fg.title('some title') + fg.id('http://lernfunk.de/media/654322/1') + fe = fg.add_entry() + fe.id('http://lernfunk.de/media/654322/1') + fe.title('some title') + fe.link(href='http://lernfunk.de/media/654322/1') + fe.summary('<p>summary</p>', type='html') + result = fg.atom_str() + expected = b'<summary type="html"><p>summary</p></summary>' + self.assertIn(expected, result) |