Ejemplo n.º 1
0
 def test_get_feeds_by_title(self):
     serv1 = ServerMock(None)
     serv1.name = "test_serv1"
     serv2 = ServerMock(None)
     serv2.name = "test_serv2"
     chan1 = serv1.get_channel_by_name("test_chan1")
     user2 = serv1.get_user_by_name("test_user2")
     chan3 = serv2.get_channel_by_name("test_chan3")
     # Setup a feed list
     rfl = RssFeedList()
     rf1 = RssFeed()
     rf1.url = "http://spangle.org.uk/hallo/test_feed.xml?1"
     rf1.title = "test_feed1"
     rf1.server_name = chan1.server.name
     rf1.channel_name = chan1.name
     rfl.add_feed(rf1)
     rf2 = RssFeed()
     rf2.url = "http://spangle.org.uk/hallo/test_feed.xml?2"
     rf2.title = "test_feed2"
     rf2.server_name = user2.server.name
     rf2.user_name = user2.name
     rfl.add_feed(rf2)
     rf3 = RssFeed()
     rf3.url = "http://spangle.org.uk/hallo/test_feed.xml?3"
     rf3.title = "test_feed3"
     rf3.server_name = chan3.server.name
     rf3.channel_name = chan3.name
     rfl.add_feed(rf3)
     rf4 = RssFeed()
     rf4.url = "http://spangle.org.uk/hallo/test_feed.xml?4"
     rf4.title = "test_feed4"
     rf4.server_name = chan3.server.name
     rf4.channel_name = chan3.name
     rfl.add_feed(rf4)
     rf5 = RssFeed()
     rf5.url = "http://spangle.org.uk/hallo/test_feed.xml?5"
     rf5.title = "test_feed3"
     rf5.server_name = chan3.server.name
     rf5.channel_name = chan3.name
     rfl.add_feed(rf5)
     # Check function
     feed_list = rfl.get_feeds_by_title("test_feed3", chan3)
     assert len(feed_list) == 2
     assert rf3 in feed_list
     assert rf5 in feed_list
Ejemplo n.º 2
0
 def test_xml(self):
     # Setup a feed list
     rfl = RssFeedList()
     rf1 = RssFeed()
     rf1.url = "http://spangle.org.uk/hallo/test_feed.xml?1"
     rf1.title = "test_feed1"
     rf1.update_frequency = Commons.load_time_delta("P0T3600S")
     rf1.server_name = "test_serv1"
     rf1.channel_name = "test_chan1"
     rfl.add_feed(rf1)
     rf2 = RssFeed()
     rf2.url = "http://spangle.org.uk/hallo/test_feed.xml?2"
     rf2.title = "test_feed2"
     rf2.update_frequency = Commons.load_time_delta("P1TS")
     rf2.server_name = "test_serv2"
     rf2.channel_name = "test_chan2"
     rfl.add_feed(rf2)
     rf3 = RssFeed()
     rf3.url = "http://spangle.org.uk/hallo/test_feed.xml?3"
     rf3.title = "test_feed3"
     rf3.update_frequency = Commons.load_time_delta("PT60S")
     rf3.server_name = "test_serv3"
     rf3.user_name = "test_user3"
     rfl.add_feed(rf3)
     # Save to XML and load
     try:
         try:
             os.rename("store/rss_feeds.xml", "store/rss_feeds.xml.tmp")
         except OSError:
             pass
         rfl.to_xml()
         new_rfl = RssFeedList.from_xml()
         assert len(new_rfl.feed_list) == 3
     finally:
         try:
             os.remove("store/rss_feeds.xml")
         except OSError:
             pass
         try:
             os.rename("store/rss_feeds.xml.tmp", "store/rss_feeds.xml")
         except OSError:
             pass
Ejemplo n.º 3
0
 def test_output_item(self):
     # Create example rss item element
     item_title = "test_title1"
     item_link = "http://example.com/item1"
     feed_title = "feed_title1"
     rss_data = "<channel><item><title>" + item_title + "</title><link>" + item_link + "</link></item></channel>"
     rss_elem = ElementTree.fromstring(rss_data)
     item_elem = rss_elem.find("item")
     # Check output works with given server and channel
     rf1 = RssFeed()
     rf1.update_frequency = Commons.load_time_delta("P1TS")
     rf1.title = feed_title
     serv1 = ServerMock(None)
     serv1.name = "test_serv1"
     chan1 = serv1.get_channel_by_name("test_chan1")
     rf1.output_item(item_elem, None, serv1, chan1)
     data = serv1.get_send_data(1, chan1, Server.MSG_MSG)
     assert feed_title in data[0][0]
     assert item_title in data[0][0]
     assert item_link in data[0][0]
     # Check output works with given server not channel
     rf2 = RssFeed()
     rf2.update_frequency = Commons.load_time_delta("P1TS")
     rf2.title = feed_title
     rf2.channel_name = "test_chan2"
     serv2 = ServerMock(None)
     serv2.name = "test_serv2"
     chan2 = serv2.get_channel_by_name("test_chan2")
     rf2.output_item(item_elem, None, serv2)
     data = serv2.get_send_data(1, chan2, Server.MSG_MSG)
     assert feed_title in data[0][0]
     assert item_title in data[0][0]
     assert item_link in data[0][0]
     # Check output works with given server not user
     rf3 = RssFeed()
     rf3.update_frequency = Commons.load_time_delta("P1TS")
     rf3.title = feed_title
     rf3.user_name = "test_user3"
     serv3 = ServerMock(None)
     serv3.name = "test_serv3"
     user3 = serv3.get_user_by_name("test_user3")
     rf3.output_item(item_elem, None, serv3)
     data = serv3.get_send_data(1, user3, Server.MSG_MSG)
     assert feed_title in data[0][0]
     assert item_title in data[0][0]
     assert item_link in data[0][0]
     # Check output works without given server with given channel
     rf4 = RssFeed()
     rf4.update_frequency = Commons.load_time_delta("P1TS")
     rf4.title = feed_title
     rf4.server_name = "test_serv4"
     serv4 = ServerMock(None)
     serv4.name = "test_serv4"
     hallo4 = Hallo()
     hallo4.add_server(serv4)
     chan4 = serv4.get_channel_by_name("test_chan4")
     rf4.output_item(item_elem, hallo4, None, chan4)
     data = serv4.get_send_data(1, chan4, Server.MSG_MSG)
     assert feed_title in data[0][0]
     assert item_title in data[0][0]
     assert item_link in data[0][0]
     # Check output works without given server with given user
     rf5 = RssFeed()
     rf5.update_frequency = Commons.load_time_delta("P1TS")
     rf5.title = feed_title
     rf5.server_name = "test_serv5"
     serv5 = ServerMock(None)
     serv5.name = "test_serv5"
     hallo5 = Hallo()
     hallo5.add_server(serv5)
     chan5 = serv5.get_channel_by_name("test_chan5")
     rf5.output_item(item_elem, hallo5, None, chan5)
     data = serv5.get_send_data(1, chan5, Server.MSG_MSG)
     assert feed_title in data[0][0]
     assert item_title in data[0][0]
     assert item_link in data[0][0]
     # Check output works without given server or channel to channel
     rf6 = RssFeed()
     rf6.update_frequency = Commons.load_time_delta("P1TS")
     rf6.title = feed_title
     rf6.server_name = "test_serv6"
     rf6.channel_name = "test_chan6"
     serv6 = ServerMock(None)
     serv6.name = "test_serv6"
     hallo6 = Hallo()
     hallo6.add_server(serv6)
     chan6 = serv6.get_channel_by_name("test_chan6")
     rf6.output_item(item_elem, hallo6)
     data = serv6.get_send_data(1, chan6, Server.MSG_MSG)
     assert feed_title in data[0][0]
     assert item_title in data[0][0]
     assert item_link in data[0][0]
     # Check output works without given server or channel to user
     rf7 = RssFeed()
     rf7.update_frequency = Commons.load_time_delta("P1TS")
     rf7.title = feed_title
     rf7.server_name = "test_serv7"
     rf7.user_name = "test_user7"
     serv7 = ServerMock(None)
     serv7.name = "test_serv7"
     hallo7 = Hallo()
     hallo7.add_server(serv7)
     user7 = serv7.get_user_by_name("test_user7")
     rf7.output_item(item_elem, hallo7)
     data = serv7.get_send_data(1, user7, Server.MSG_MSG)
     assert feed_title in data[0][0]
     assert item_title in data[0][0]
     assert item_link in data[0][0]
     # Check invalid server output (server name is none)
     rf8 = RssFeed()
     rf8.update_frequency = Commons.load_time_delta("P1TS")
     rf8.title = feed_title
     hallo8 = Hallo()
     resp = rf8.output_item(item_elem, hallo8)
     assert "error" in resp.lower()
     assert "server" in resp.lower()
     # Check invalid server output ( server name is not in hallo obj)
     rf9 = RssFeed()
     rf9.update_frequency = Commons.load_time_delta("P1TS")
     rf9.title = feed_title
     rf9.server_name = "not_a_server"
     hallo9 = Hallo()
     resp = rf9.output_item(item_elem, hallo9)
     assert "error" in resp.lower()
     assert "server" in resp.lower()
     # Check invalid channel/user output (only possible if channel name and user name are none) (with given server)
     rf10 = RssFeed()
     rf10.update_frequency = Commons.load_time_delta("P1TS")
     rf10.title = feed_title
     serv10 = ServerMock(None)
     serv10.name = "test_serv10"
     hallo10 = Hallo()
     hallo10.add_server(serv10)
     resp = rf10.output_item(item_elem, hallo10, serv10)
     assert "error" in resp.lower()
     assert "destination" in resp.lower()
     # Check invalid channel/user output (only possible if channel name and user name are none) (with named server)
     rf11 = RssFeed()
     rf11.update_frequency = Commons.load_time_delta("P1TS")
     rf11.title = feed_title
     rf11.server_name = "test_serv11"
     serv11 = ServerMock(None)
     serv11.name = "test_serv11"
     hallo11 = Hallo()
     hallo11.add_server(serv11)
     resp = rf11.output_item(item_elem, hallo11)
     assert "error" in resp.lower()
     assert "destination" in resp.lower()