Added memcache cache test. All cache tests are passing.
authorJosh Roesslein <jroesslein@gmail.com>
Thu, 13 Aug 2009 06:52:40 +0000 (01:52 -0500)
committerJosh Roesslein <jroesslein@gmail.com>
Thu, 13 Aug 2009 06:52:40 +0000 (01:52 -0500)
TODO
tests.py
tweepy/cache.py

diff --git a/TODO b/TODO
index b61c1c4e5d2f5b670f2ee802a137590b7304ccba..d01366b53b66debd848e929ddb1e7e78c30cdf36 100644 (file)
--- 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
index 628e063cf7c173af78826d6104f8f169450db8cb..4d865de6e52e894c952b11ee57d014e4e4455da2 100644 (file)
--- 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()
index 987cd37ef2040d553f0629a86f76ef1c38f956e4..e847ebc2c826485e9c02eb94c3b8018288b884bd 100644 (file)
@@ -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):