Use the new icon.
[straw.git] / test / TestSQLiteDAO.py
blob5ab4852bfb2e94caf11a46d36fc6d0a503480937
1 from straw.model import Feed, Item
2 from straw.storage import DAO, Storage
3 import nose
4 import os
6 TEST_DB_PATH = "test.db"
8 class TestSQLiteDAO:
9 def setUp(self):
10 self.storage = Storage(TEST_DB_PATH)
11 self.dao = DAO(self.storage)
13 def tearDown(self):
14 os.remove(TEST_DB_PATH)
16 def _create_test_feed(self):
17 feed = Feed()
18 feed.title = "test feed title"
19 return feed
21 def _create_test_item(self, feed):
22 item = Item()
23 item.title = "test feed title"
24 item.feed_id = feed.id
25 return item
27 def testSaveFeeds(self):
28 feeds = []
29 for i in xrange(100):
30 feed = self._create_test_feed()
31 feeds.append(feed)
32 self.dao.save(feed)
34 i = 0
35 for feed in feeds:
36 assert feed.id != None
37 i += 1
38 feed.title = "bla bla %s" % (i)
39 self.dao.save(feed)
41 i = 0
42 for feed in feeds:
43 i += 1
44 assert feed.title == "bla bla %s" % (i)
46 def testSaveItems(self):
47 items = []
48 feeds = []
50 for i in xrange(10):
51 feed = self._create_test_feed()
52 feeds.append(feed)
53 self.dao.save(feed)
55 for i in xrange(10):
56 item = self._create_test_item(feed)
57 items.append(item)
58 self.dao.save(item)
60 i = 0
61 for item in items:
62 assert item.id != None
63 i += 1
64 item.title = "item bla bla %s" % (i)
65 self.dao.save(item)
67 i = 0
68 for item in items:
69 i += 1
70 assert item.title == "item bla bla %s" % (i)
72 def testListFeeds(self):
73 feed = self._create_test_feed()
74 self.dao.save(feed)
75 assert len(self.dao.list_all()) > 0
77 def testListItems(self):
78 feed = self._create_test_feed()
79 self.dao.save(feed)
80 item = self._create_test_item(feed)
81 self.dao.save(item)
82 assert len(self.dao.get(Item)) > 0