예제 #1
0
 def testGetBetweenCount(self):
     twok11 = dt.now().replace(year=2011)
     twok9 = twok11.replace(year=2009)
     ci1 = taoutils.create_contentitem(datetime=twok11.replace(year=2010))
     ci2 = taoutils.create_contentitem(datetime=twok11.replace(year=2008))
     self.db.insert_items(ci1, ci2)
     result = list(self.db.get_between(twok9, twok11))
     self.assertEqual(len(result), 1)
예제 #2
0
 def testGetBetweenOrder(self):
     twok11 = dt.now().replace(year=2011)
     twok6 = twok11.replace(year=2006)
     ci1 = taoutils.create_contentitem(datetime=dt.now().replace(year=2010))
     ci2 = taoutils.create_contentitem(datetime=dt.now().replace(year=2008))
     ci3 = taoutils.create_contentitem(datetime=dt.now().replace(year=2009))
     self.db.insert_items(ci1, ci2, ci3)
     result = list(self.db.get_between(twok6, twok11))
     self.assertEqual(result[0]['datetime'].year, 2010)
     self.assertEqual(result[1]['datetime'].year, 2009)
     self.assertEqual(result[2]['datetime'].year, 2008)
예제 #3
0
 def _nativeentry_to_contentitem(self, entry):
     """Convert an rss entry dictionary (from a parsed feed's ['entries'] value) into a ContentItem."""
     html = self._get_entry_html(entry)
     ci = taoutils.create_contentitem(title=self._get_entry_title(entry),
                      summary=self._get_entry_summary(entry),
                      html=html,
                      author=self._get_entry_author(entry),
                      datetime=taoutils.parse_datetime(self._get_entry_datetimestr(entry)),
                      id=self._get_entry_id(entry),
                      url=self._get_entry_url(entry))
     return ci
예제 #4
0
 def _nativeentry_to_contentitem(self, tweet):
     """Convert a tweet from the twitter API into a ContentItem."""
     parsedtime = taoutils.parse_datetime(tweet, 'created_at')
     text = tweet['text']
     ci = taoutils.create_contentitem(title=self._get_title_for_tweet(tweet),
                      summary=text,
                      html=text,
                      author=tweet['user']['screen_name'],
                      datetime=parsedtime,
                      id=tweet['id'],
                      url=self._screenname_to_url(tweet))
     return ci
예제 #5
0
 def testUpdatePersistsOnUpdate(self):
     itemOrig = taoutils.create_contentitem()
     itemClone = copy.copy(itemOrig)
     itemClone['metadata'] = copy.copy(itemClone['metadata'])
     #add the item
     self.db.insert_items(itemOrig)
     #change a clone
     itemClone['url'] = 'BLAH'
     #update with clone
     self.db.update_items(itemClone)
     #fetch the updated and see if it is the same
     gotten = taoutils.first(self.db.get_slice())
     self.assertEqual(itemClone['url'], gotten['url'])
def createTestContentItems(title='', html=''):
    items = [
        taoutils.create_contentitem(id=1, title=title, html=html, datetime=dt(2010, 1, 2, 4, 20, 0)),
        taoutils.create_contentitem(id=3, title=title, html=html, datetime=dt(2010, 1, 8, 3, 20, 10)),
        taoutils.create_contentitem(id=2, title=title, html=html, datetime=dt(2010, 1, 9, 6, 40, 11)),
        taoutils.create_contentitem(id=8, title=title, html=html, datetime=dt(2010, 1, 8, 1, 20, 10)),
        taoutils.create_contentitem(id=8, title=title, html=html, datetime=dt(2010, 1, 8, 2, 20, 10)),
        taoutils.create_contentitem(id=4, title=title, html=html, datetime=dt(2010, 1, 1, 1, 1, 1))]
    return items
예제 #7
0
 def insertItems(self, number, db=None):
     if db is None:
         db = self.db
     items = [taoutils.create_contentitem() for i in range(0, number)]
     db.insert_items(*items)
     return items
예제 #8
0
 def testUpdatePersistsOnAdd(self):
     orig = taoutils.create_contentitem()
     self.db.update_items(orig)
     gotten = taoutils.first(self.db.get_slice())
     self.assertEqual(orig['metadata']['guid'], gotten['metadata']['guid'])
예제 #9
0
 def testInsertFailsOnDupes(self):
     uid = uuid.uuid4()
     item = taoutils.create_contentitem(meta=taoutils.create_contentitem_metadata(guid=uid))
     self.db.insert_items(item)
     self.assertRaises(sqlalchemy.exc.IntegrityError, self.db.insert_items, item)
예제 #10
0
 def testInsertInsertsCorrectAmount(self):
     items = [taoutils.create_contentitem() for i in range(0, 10)]
     self.db.insert_items(*items)
     self.assertEqual(len(items), self.db.itemcount())