Files
feedcrawler/testenv/tests/feed/testfeed.py
2016-07-01 09:39:03 +02:00

148 lines
7.5 KiB
Python
Executable File

__author__ = 'dev'
import unittest
from feed.feed import Feed
import os.path
import feedparser
import utilities.file_methods as fm
class TestFeed(unittest.TestCase):
def setUp(self):
super().setUp()
self.testFeed = Feed("sbk", "podcast", "audio/opus", "testfeeds/podcast/sbk/sbk.xml")
def test_load_new_feed(self):
fm.check_and_remove_file("testfeeds/podcast/sbk/sbk.json")
self.testFeed.load_new_feed()
self.assertTrue(os.path.exists("testfeeds/podcast/sbk/sbk.json"))
self.assertIsNotNone(fm.read_json_file("testfeeds/podcast/sbk/sbk.json"))
def test_load_new_feed_error_feed_already_exits(self):
self.assertRaises(AssertionError, self.testFeed.load_new_feed)
def test_load_new_feed_error_none_serializer(self):
self.testFeed.serializer = None
self.assertRaises(AssertionError, self.testFeed.load_new_feed)
def test_load_existing_feed(self):
self.testFeed.load_existing_feed()
self.assertTrue(os.path.exists("testfeeds/podcast/sbk/sbk.json"))
def test_load_existing_feed_error_feed_not_exits(self):
fm.check_and_remove_file("testfeeds/podcast/sbk/sbk.json")
self.assertRaises(AssertionError, self.testFeed.load_existing_feed)
def test_load_existing_feed_error_none_serializer(self):
self.testFeed.serializer = None
self.assertRaises(AssertionError, self.testFeed.load_existing_feed)
def test_load_feed(self):
feed = self.testFeed.load_feed()
self.assertIsInstance(self.testFeed.load_feed(), feedparser.FeedParserDict)
self.assertEqual(0, feed["bozo"])
def test_load_feed_error_none_config(self):
self.testFeed.feed_config = None
self.assertRaises(AssertionError, self.testFeed.load_feed)
def test_load_feed_error_wrong_url(self):
self.testFeed = Feed("sbk", "podcast", "audio/mpeg", "testfeeds/podcast/sbk/sbk.xm")
feed = self.testFeed.load_feed()
self.assertIsInstance(self.testFeed.load_feed(), feedparser.FeedParserDict)
self.assertEqual(1, feed["bozo"])
def test_setup_feed(self):
self.assertTrue(os.path.exists("testfeeds/podcast/sbk/"))
self.assertTrue(os.path.exists("testfeeds/podcast/sbk/sbk-config.json"))
self.assertIsNotNone(fm.read_json_file("testfeeds/podcast/sbk/sbk-config.json"))
self.assertIsNotNone(self.testFeed.feed_config)
self.assertIsNotNone(self.testFeed.feed_folder_path)
self.assertIsNotNone(self.testFeed.config_path)
def test_setup_feed_error_none_parameter(self):
self.assertRaises(AssertionError, self.testFeed.setup_feed, None, "podcast", "audio/mpeg",
"http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/")
self.assertRaises(AssertionError, self.testFeed.setup_feed, "sbk", None, "audio/mpeg",
"http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/")
self.assertRaises(AssertionError, self.testFeed.setup_feed, "sbk", "podcast", None,
"http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/")
self.assertRaises(AssertionError, self.testFeed.setup_feed, "sbk", "podcast", "audio/mpeg", None)
def test_create_feed_config_path(self):
self.testFeed.config_path = "foo"
self.assertEqual(self.testFeed.create_feed_config_path(), "foo")
def test_new_feed_folder(self):
self.assertTrue(os.path.exists(self.testFeed.new_feed_folder()))
def test_new_feed_folder_no_feed_config(self):
self.testFeed.feed_folder_path = None
self.testFeed.feed_config = None
self.assertRaises(AssertionError, self.testFeed.new_feed_folder)
def test_create_feed_config_file(self):
feed_config = Feed.create_feed_config_file("sbk", "podcast", "audio/mpeg",
"http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/")
self.assertIsNotNone(feed_config)
self.assertEqual("sbk", feed_config["FeedName"])
self.assertEqual("podcast", feed_config["FeedType"])
self.assertEqual("audio/mpeg", feed_config["LinkType"])
self.assertEqual("http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/", feed_config["FeedUrl"])
def test_create_feed_config_file_error_wrong_parameter(self):
self.assertRaises(AssertionError, Feed.create_feed_config_file, None, "podcast",
"audio/mpeg", "http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/")
self.assertRaises(AssertionError, Feed.create_feed_config_file, "sbk", None,
"audio/mpeg", "http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/")
self.assertRaises(AssertionError, Feed.create_feed_config_file, "sbk", "podcast", None,
"http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/")
self.assertRaises(AssertionError, Feed.create_feed_config_file, "sbk", "podcast",
"audio/mpeg", None)
self.assertRaises(AssertionError, Feed.create_feed_config_file, "sbk", "podcast",
"audiomg", None)
def test_create_feed_from_feed_config(self):
newFeed = Feed.create_feed_from_feed_config(self.testFeed.feed_config)
self.assertEqual(self.testFeed.config_path, newFeed.config_path)
self.assertEqual(self.testFeed.feed_file_path, newFeed.feed_file_path)
self.assertEqual(self.testFeed.feed_folder, newFeed.feed_folder)
self.assertEqual(self.testFeed.feed_folder_path, newFeed.feed_folder_path)
def test_create_feed_from_feed_config_error(self):
self.assertRaises(AssertionError, Feed.create_feed_from_feed_config, None)
def test_create_feed_from_feed_config_path(self):
newFeed = Feed.create_feed_from_feed_config_path(self.testFeed.config_path)
self.assertEqual(self.testFeed.config_path, newFeed.config_path)
self.assertEqual(self.testFeed.feed_file_path, newFeed.feed_file_path)
self.assertEqual(self.testFeed.feed_folder, newFeed.feed_folder)
self.assertEqual(self.testFeed.feed_folder_path, newFeed.feed_folder_path)
def test_create_feed_from_feed_config_path_error(self):
self.assertRaises(TypeError, Feed.create_feed_from_feed_config_path, None)
self.assertRaises(AssertionError, Feed.create_feed_from_feed_config_path, "/root")
self.assertRaises(AssertionError, Feed.create_feed_from_feed_config_path, ".")
self.assertRaises(AssertionError, Feed.create_feed_from_feed_config_path, "bla.json")
def test_create_feed_from_feed_folder_path(self):
newFeed = Feed.create_feed_from_feed_folder_path(self.testFeed.feed_folder_path)
self.assertEqual(self.testFeed.config_path, newFeed.config_path)
self.assertEqual(self.testFeed.feed_file_path, newFeed.feed_file_path)
self.assertEqual(self.testFeed.feed_folder, newFeed.feed_folder)
self.assertEqual(self.testFeed.feed_folder_path, newFeed.feed_folder_path)
def test_create_feed_from_feed_folder_path_error(self):
self.assertRaises(TypeError, Feed.create_feed_from_feed_folder_path, None)
self.assertRaises(IndexError, Feed.create_feed_from_feed_folder_path, "/root")
self.assertRaises(IndexError, Feed.create_feed_from_feed_folder_path, ".")
self.assertRaises(AssertionError, Feed.create_feed_from_feed_folder_path, "bla.json")
def test_create_feeds_from_storage_folder(self):
feeds = Feed.create_feeds_from_storage_folder()
self.assertEqual(2, len(feeds))
if __name__ == '__main__':
unittest.main()