def test_no_urlopen_when_cache_is_hot(self): flock.cache.get = mock.MagicMock(return_value=pickle.dumps(self.subreddit_list)) subreddit_list = flock.getSubredditList() self.assertFalse(flock.urllib2.urlopen.called) self.assertItemsEqual(subreddit_list, self.subreddit_list)
def test_kimono_error(self, mock_makeRequest, mock_get): mock_get.return_value = None mock_makeRequest.return_value = io.StringIO(u""" { "error": "somestring" } """) subreddits = flock.getSubredditList() self.assertEquals(subreddits, [])
def test_cache_is_warmed_when_cold(self): flock.cache.get = mock.MagicMock(return_value=None) flock.cache.set = mock.MagicMock() subreddit_list = flock.getSubredditList() self.assertTrue(flock.urllib2.urlopen.called) flock.cache.set.assert_called_with('subreddits', pickle.dumps(subreddit_list), timeout=60*60*24*7)
def test_kimono_no_collections(self, mock_makeRequest, mock_get): mock_get.return_value = None mock_makeRequest.return_value = io.StringIO(u""" { "results": { } } """) subreddits = flock.getSubredditList() self.assertEquals(subreddits, [])
def test_invalid_kimono_result(self): flock.urllib2.urlopen = mock.MagicMock(return_value=io.StringIO(u'<xml/>')) subreddit_list = flock.getSubredditList() self.assertEqual(subreddit_list, [])
def test_no_kimono_response(self): flock.urllib2.urlopen = mock.MagicMock(side_effect=IOError) subreddit_list = flock.getSubredditList() self.assertEqual(subreddit_list, [])
def test_subreddits_are_parsed(self): subreddit_list = flock.getSubredditList() self.assertItemsEqual(subreddit_list, self.subreddit_list)