def testMultiCached(self): srs = [ Subreddit(id=1, name="exists"), Subreddit(id=2, name="also"), ] self.cache.get_multi.return_value = {sr.name: sr._id for sr in srs} self.subreddit_byID.return_value = srs ret = Subreddit._by_name(["exists", "also"]) self.assertEqual(ret, {sr.name: sr for sr in srs}) self.assertEqual(self.subreddit_query.call_count, 0)
def testSingleCached(self): subreddit = Subreddit(id=1, name="exists") self.cache.get_multi.return_value = {"exists": subreddit._id} self.subreddit_byID.return_value = [subreddit] ret = Subreddit._by_name("exists") self.assertEqual(ret, subreddit) self.assertEqual(self.subreddit_query.call_count, 0)
def testSingleFromDB(self): subreddit = Subreddit(id=1, name="exists") self.cache.get_multi.return_value = {} self.subreddit_query.return_value = [subreddit] self.subreddit_byID.return_value = [subreddit] ret = Subreddit._by_name("exists") self.assertEqual(ret, subreddit) self.assertEqual(self.cache.add_multi.call_count, 1)
def testForceUpdate(self): sr = Subreddit(id=1, name="exists") self.cache.get_multi.return_value = {sr.name: sr._id} self.subreddit_query.return_value = [sr] self.subreddit_byID.return_value = [sr] ret = Subreddit._by_name("exists", _update=True) self.assertEqual(ret, sr) self.cache.add_multi.assert_called_once_with({sr.name: sr._id}, prefix="srid:")
def testMultiSomeInvalid(self): sr = Subreddit(id=1, name="exists") self.cache.get_multi.return_value = {sr.name: sr._id} self.subreddit_query.return_value = [] self.subreddit_byID.return_value = [sr] ret = Subreddit._by_name(["exists", "_illegalunderscore"]) self.assertEqual(ret, {sr.name: sr}) self.assertEqual(self.cache.get_multi.call_count, 1) self.assertEqual(self.subreddit_query.call_count, 0)
def testMultiSomeDontExist(self): sr = Subreddit(id=1, name="exists") self.cache.get_multi.return_value = {sr.name: sr._id} self.subreddit_query.return_value = [] self.subreddit_byID.return_value = [sr] ret = Subreddit._by_name(["exists", "doesnt"]) self.assertEqual(ret, {sr.name: sr}) self.assertEqual(self.cache.get_multi.call_count, 1) self.assertEqual(self.subreddit_query.call_count, 1)
def setUp(self): a = Account() a._commit() sr = Subreddit() sr._commit() self.rel = SRMember(sr, a, 'test')