add simple write method
This commit is contained in:
@@ -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)
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user