Work on feed properties dialog, added some properties to Feed model class.
[straw.git] / test / TestFeedManager.py
blob079701624254a146f8dc187fa7c75dceb69fb96b
1 from gobject import GObject, SIGNAL_RUN_FIRST
2 from straw import FeedManager
3 from threading import Thread
4 import gobject
5 import os
6 import time
8 TEST_DB_PATH = "test.db"
9 TEST_OPML_PATH = "data/default_subscriptions.opml"
10 #TEST_OPML_PATH = "data/test.opml"
11 #TEST_OPML_PATH = "/home/ppawel/feedlist.opml"
13 class TestFeedManager(object):
14 def setUp(self):
15 FeedManager.setup(storage_path = TEST_DB_PATH)
16 FeedManager.init()
18 def tearDown(self):
19 os.remove(TEST_DB_PATH)
21 def testCategories(self):
22 FeedManager.save_category("test")
24 for i in xrange(100):
25 FeedManager.save_category("subtest", pid = (i + 1))
27 tree = FeedManager.get_category_tree()
29 assert tree[0].children[0].name == "subtest"
30 assert tree[0].children[0].children[0].children[0].name == "subtest"
32 def testImportOPML(self):
33 dummy = DummyStraw("import_opml")
34 dummy.start()
35 dummy.join()
37 feeds = FeedManager.get_feeds()
38 print len(feeds)
39 assert feeds != None
41 def testUpdateAllFeeds(self):
42 FeedManager.import_opml(TEST_OPML_PATH)
44 time.sleep(1)
46 dummy = DummyStraw("update_all_feeds")
47 dummy.start()
48 dummy.join()
50 #feeds = FeedManager.upda()
51 #print len(feeds)
52 #assert feeds != None
54 class DummyStraw(Thread):
55 def __init__(self, action, observers = None):
56 Thread.__init__(self)
57 self.action = action
58 self.observers = observers
60 def run(self):
61 sleep_time = 2
63 if self.action == "import_opml":
64 FeedManager.import_opml(TEST_OPML_PATH)
65 elif self.action == "update_all_feeds":
66 FeedManager.update_all_feeds(self.observers)
67 sleep_time = 5
69 # processing happens in the background so we have to emulate
70 # real application GUI loop by sleeping
72 time.sleep(sleep_time)
74 class DummyObserver(GObject):
75 def __init__(self):
76 gobject.GObject.__init__(self)
77 pass
79 def handle(self, object, arg1):
80 print "HANDLE!"
81 print object
82 print arg1