From: Josh Roesslein Date: Thu, 13 Aug 2009 06:52:40 +0000 (-0500) Subject: Added memcache cache test. All cache tests are passing. X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=e62f8c18977fd755c9d24a0abebd3b8087c75b45;p=tweepy.git Added memcache cache test. All cache tests are passing. --- diff --git a/TODO b/TODO index b61c1c4..d01366b 100644 --- a/TODO +++ b/TODO @@ -1,9 +1,11 @@ Stuff that needs to be done... - finish unit tests -- search API + - streaming tests + - api tests - caching system - - memcache? database? - + memory and file caches implemented -- needs docs, tutors, examples, etc + - database based +- reference docuements +- tutorial + - streaming - commandline client diff --git a/tests.py b/tests.py index 628e063..4d865de 100644 --- a/tests.py +++ b/tests.py @@ -134,11 +134,11 @@ class TweepyAuthTests(unittest.TestCase): class TweepyCacheTests(unittest.TestCase): timeout = 2.0 + memcache_servers = ['127.0.0.1:11211'] # must be running for test to pass - def _run_tests(self): + def _run_tests(self, do_cleanup=True): # test store and get self.cache.store('testkey', 'testvalue') - self.assertEqual(self.cache.count(), 1, 'Count is wrong') self.assertEqual(self.cache.get('testkey'), 'testvalue', 'Stored value does not match retrieved value') # test timeout @@ -146,14 +146,18 @@ class TweepyCacheTests(unittest.TestCase): self.assertEqual(self.cache.get('testkey'), None, 'Cache entry should have expired') # test cleanup - self.cache.store('testkey', 'testvalue') - sleep(self.timeout) - self.cache.cleanup() - self.assertEqual(self.cache.count(), 0, 'Cache cleanup failed') + if do_cleanup: + self.cache.store('testkey', 'testvalue') + sleep(self.timeout) + self.cache.cleanup() + self.assertEqual(self.cache.count(), 0, 'Cache cleanup failed') + + # test count + for i in range(0,20): + self.cache.store('testkey%i' % i, 'testvalue') + self.assertEqual(self.cache.count(), 20, 'Count is wrong') # test flush - for i in range(0,10): - self.cache.store('testkey%i' % i, 'testvalue') self.cache.flush() self.assertEqual(self.cache.count(), 0, 'Cache failed to flush') @@ -167,7 +171,10 @@ class TweepyCacheTests(unittest.TestCase): self._run_tests() self.cache.flush() os.rmdir('cache_test_dir') - + + def testmemcache(self): + self.cache = MemCache(self.memcache_servers, self.timeout) + self._run_tests(do_cleanup=False) if __name__ == '__main__': unittest.main() diff --git a/tweepy/cache.py b/tweepy/cache.py index 987cd37..e847ebc 100644 --- a/tweepy/cache.py +++ b/tweepy/cache.py @@ -234,11 +234,13 @@ class MemCache(Cache): return value def count(self): - # TODO: implement - raise NotImplementedError + count = 0 + for sid, stats in self.client.get_stats(): + count += int(stats.get('curr_items', 0)) + return count def cleanup(self): - # not implemented for this cache + # not implemented for this cache since server handles it return def flush(self):