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)
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)
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
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
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
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
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'])
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)
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())