[Checkins] SVN: lovely.memcached/trunk/ added hits and misses
counter for the testing client.
Jürgen Kartnaller
juergen at kartnaller.at
Tue Jun 19 03:44:31 EDT 2007
Log message for revision 76781:
added hits and misses counter for the testing client.
bumped version to 0.1.1
Changed:
U lovely.memcached/trunk/CHANGES.txt
U lovely.memcached/trunk/setup.py
U lovely.memcached/trunk/src/lovely/memcached/testing/README.txt
U lovely.memcached/trunk/src/lovely/memcached/testing/memcache.py
-=-
Modified: lovely.memcached/trunk/CHANGES.txt
===================================================================
--- lovely.memcached/trunk/CHANGES.txt 2007-06-19 07:23:28 UTC (rev 76780)
+++ lovely.memcached/trunk/CHANGES.txt 2007-06-19 07:44:30 UTC (rev 76781)
@@ -2,6 +2,12 @@
Changes in lovely.memcached
===========================
+2007/06/19 0.1.1
+================
+
+- added hits and misses counter for the testing client
+
+
2007/06/04 0.1.0
================
Modified: lovely.memcached/trunk/setup.py
===================================================================
--- lovely.memcached/trunk/setup.py 2007-06-19 07:23:28 UTC (rev 76780)
+++ lovely.memcached/trunk/setup.py 2007-06-19 07:44:30 UTC (rev 76781)
@@ -3,7 +3,7 @@
setup (
name='lovely.memcached',
- version='0.1.0',
+ version='0.1.1',
author = "Lovely Systems",
author_email = "office at lovelysystems.com",
description = "A memcached client utiltiy for zope 3",
@@ -24,7 +24,7 @@
'zope.testbrowser',
]),
install_requires = ['setuptools',
- 'python-memcached',
+ 'python-memcached',
'zope.app.component',
'zope.app.intid',
'zope.event',
Modified: lovely.memcached/trunk/src/lovely/memcached/testing/README.txt
===================================================================
--- lovely.memcached/trunk/src/lovely/memcached/testing/README.txt 2007-06-19 07:23:28 UTC (rev 76780)
+++ lovely.memcached/trunk/src/lovely/memcached/testing/README.txt 2007-06-19 07:44:30 UTC (rev 76781)
@@ -26,6 +26,34 @@
>>> cache.query('key') is None
True
+The testcache has also a hit/misses counter which is sometimes useful for
+testing.
+
+ >>> cache.hits
+ 2
+ >>> cache.misses
+ 2
+ >>> cache.query('key') is None
+ True
+ >>> cache.hits
+ 2
+ >>> cache.misses
+ 3
+ >>> cache.set('value', 'key')
+ '613fb124907164bf8f0b04beb02cf59e'
+ >>> cache.query('key')
+ 'value'
+ >>> cache.hits
+ 3
+ >>> cache.misses
+ 3
+
+ >>> cache.resetCounts()
+ >>> cache.hits
+ 0
+ >>> cache.misses
+ 0
+
The TestMemcachedClient does it's best to simulate the behaviour of the
original memcached implementation.
Modified: lovely.memcached/trunk/src/lovely/memcached/testing/memcache.py
===================================================================
--- lovely.memcached/trunk/src/lovely/memcached/testing/memcache.py 2007-06-19 07:23:28 UTC (rev 76780)
+++ lovely.memcached/trunk/src/lovely/memcached/testing/memcache.py 2007-06-19 07:44:30 UTC (rev 76781)
@@ -27,11 +27,23 @@
def _instantiateClient(self, debug):
return SimulatedMemcached()
+ @property
+ def hits(self):
+ return self.client.hits
+ @property
+ def misses(self):
+ return self.client.misses
+
+ def resetCounts(self):
+ self.client.resetCounts()
+
+
class SimulatedMemcached(object):
def __init__(self):
self.cache = {}
+ self.resetCounts()
def getStats(self):
return []
@@ -51,10 +63,13 @@
str(key)
data = self.cache.get(key, None)
if data is None:
+ self._misses += 1
return None
if data[1] is None or datetime.now()<data[1]:
+ self._hits += 1
return data[0]
del self.cache[key]
+ self._misses += 1
return None
def delete(self, key):
@@ -64,3 +79,15 @@
def flush_all(self):
self.cache = {}
+ @property
+ def hits(self):
+ return self._hits
+
+ @property
+ def misses(self):
+ return self._misses
+
+ def resetCounts(self):
+ self._hits = 0
+ self._misses = 0
+
More information about the Checkins
mailing list