add simple write method

This commit is contained in:
stubbfel
2014-06-06 10:13:59 +02:00
parent 84b3759cf4
commit eb77523afd
2 changed files with 54 additions and 2 deletions

View File

@@ -1 +1,31 @@
__author__ = 'stubbfel'
import feedparser
from utilities.textfile import TextFile
class FeedFile(TextFile):
def __init__(self, filename):
"""
init class
:param filename: path to the file
"""
super(FeedFile, self).__init__(filename)
def read_feed_file(self):
"""
method read and convert the content of the file to a FeedParserDict
:return: dict - feed object
"""
feed_str = self.read_text_file()
return feedparser.parse(feed_str)
def write_feed_file(self, feed, serializer):
assert isinstance(feed, feedparser.FeedParserDict)
if serializer is None:
feed_string = str(feed)
else:
feed_string = serializer.toString(feed)
self.write_text_file(feed_string)

View File

@@ -1,12 +1,34 @@
__author__ = 'stubbfel'
import unittest
import feedparser
from utilities.feedfile import FeedFile
class MyTestCase(unittest.TestCase):
def test_something(self):
self.assertEqual(True, False)
def setUp(self):
self.__ff = FeedFile("testfeeds/rss/feed.xml")
def test_read_feed_file(self):
feed = self.__ff.read_feed_file()
self.assertTrue(isinstance(feed, feedparser.FeedParserDict))
def test_write_feed_file(self):
feed = self.__ff.read_feed_file()
ff2 = FeedFile("testfeed.xml")
serializer = None
ff2.write_feed_file(feed, serializer)
feed2 = ff2.read_feed_file()
self.assertTrue(isinstance(feed2, feedparser.FeedParserDict))
ff2.check_and_remove_file()
# self.assertDictEqual(feed, feed2)
def test_write_feed_file_none_feedparser_object(self):
feed = "Fail"
ff2 = FeedFile("testfeed.xml")
serializer = None
self.assertRaises(AssertionError, ff2.write_feed_file, feed, serializer)
ff2.check_and_remove_file()
if __name__ == '__main__':
unittest.main()