From d1e64e66dea2034583d8028e096ba1ff8d480d49 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Sat, 26 Jul 2014 00:45:40 +0200 Subject: [PATCH] add create onif file and new folder --- src/config/config.py | 4 +- src/feed/feed.py | 47 ++++++++++++++++++++++- testenv/testfeeds/podcast/sbk-config.json | 5 ++- testenv/tests/config/testconfig.py | 11 ++++++ testenv/tests/feed/testfeed.py | 18 ++++++++- 5 files changed, 78 insertions(+), 7 deletions(-) diff --git a/src/config/config.py b/src/config/config.py index 23c211f..cc0dc51 100644 --- a/src/config/config.py +++ b/src/config/config.py @@ -4,5 +4,7 @@ Config = { "FeedLinkTypes" : {"application/x-bittorrent","mp3"}, "FeedTypes" : {"podcast","rss"}, "FeedStorageFolder" : "testfeeds", - "FeedStoragePrefix" : { "0" : "FeedTypes"} + "FeedStoragePrefix" : { "0" : "FeedType", "1" : "FeedName"}, + "ConfigFileSuffix" : "-config", + "ConfigFileExtension" : ".json" } \ No newline at end of file diff --git a/src/feed/feed.py b/src/feed/feed.py index 7118ff8..d0cc516 100644 --- a/src/feed/feed.py +++ b/src/feed/feed.py @@ -1,6 +1,49 @@ __author__ = 'dev' +from utilities.jsonfile import JsonFile +from config.config import Config +import os + class Feed: - def __init__(self): - self.valid_file_types = {"application/x-bittorrent","mp3"} \ No newline at end of file + def __init__(self, feed_name=None, feed_type=None, link_type=None, feed_url=None): + self.valid_file_types = {"application/x-bittorrent","mp3"} + self.feed_config = self.create_feed_config_file(feed_name, feed_type, link_type, feed_url) + + def new_feed_folder(self): + feed_folder = Config["FeedStorageFolder"] + feed_folder_prefix = Config["FeedStoragePrefix"] + + for i in range(len(feed_folder_prefix)): + value = feed_folder_prefix.get(str(i)) + if value is not None: + tmpValue = self.feed_config.get(value) + if tmpValue is not None: + value = tmpValue + + feed_folder += "/" + value + else: + break + + if not os.path.exists(feed_folder): + os.mkdir(feed_folder) + + return os.path.abspath(feed_folder) + + + + + def create_feed_config_file(self, feed_name, feed_type, link_type, feed_url): + feed_config =\ + { + "FeedName": feed_name, + "FeedType": feed_type, + "FeedUrl": feed_url, + "LinkType": link_type + } + return feed_config + + + def write_feed_config_file(self, feed_folder): + file = JsonFile(feed_folder + self.feed_config["FeedName"] + Config["ConfigFileSuffix"] + Config["ConfigFileExtension"]) + file.write_json_file(self.feed_config) \ No newline at end of file diff --git a/testenv/testfeeds/podcast/sbk-config.json b/testenv/testfeeds/podcast/sbk-config.json index b59dcbe..a792fa2 100644 --- a/testenv/testfeeds/podcast/sbk-config.json +++ b/testenv/testfeeds/podcast/sbk-config.json @@ -1,4 +1,5 @@ { - "FeedUrl" : "http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/" - "LinkType" : "application/x-bittorrent" + "FeedName": "sbk", + "FeedUrl": "http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/", + "LinkType": "application/x-bittorrent" } \ No newline at end of file diff --git a/testenv/tests/config/testconfig.py b/testenv/tests/config/testconfig.py index 74d7927..6243507 100644 --- a/testenv/tests/config/testconfig.py +++ b/testenv/tests/config/testconfig.py @@ -32,6 +32,17 @@ class TestConfig(unittest.TestCase): self.assertIsNotNone(prefix) self.assertIsInstance(prefix, dict) + def test_feed_config_file_suffix(self): + suffix = Config.get("ConfigFileSuffix") + self.assertIsNotNone(suffix) + self.assertIsInstance(suffix, str) + + def test_feed_config_file_extension(self): + extension = Config.get("ConfigFileExtension") + self.assertIsNotNone(extension) + self.assertIsInstance(extension, str) + self.assertIn(".", extension) + if __name__ == '__main__': unittest.main() diff --git a/testenv/tests/feed/testfeed.py b/testenv/tests/feed/testfeed.py index 11d259b..ee4ac70 100644 --- a/testenv/tests/feed/testfeed.py +++ b/testenv/tests/feed/testfeed.py @@ -2,10 +2,18 @@ __author__ = 'dev' import unittest from feed.feed import Feed +from utilities.jsonfile import JsonFile +from config.config import Config +import os.path class TestFeed(unittest.TestCase): + def setUp(self): + super().setUp() + self.testFeed = Feed("sbk", "podcast", "application/x-bittorrent", + "http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/") + def test_load_new_feed(self): self.assertTrue(False) @@ -28,10 +36,16 @@ class TestFeed(unittest.TestCase): self.assertTrue(False) def test_new_feed_folder(self): - self.assertTrue(False) + self.assertTrue(os.path.exists(self.testFeed.new_feed_folder())) def test_create_feed_config_file(self): - self.assertTrue(False) + feed_config = self.testFeed.create_feed_config_file("sbk", "podcast", "application/x-bittorrent", + "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("application/x-bittorrent", feed_config["LinkType"]) + self.assertEqual("http://www.staatsbuergerkunde-podcast.de/feed/mp3-rss/", feed_config["FeedUrl"]) if __name__ == '__main__':