Commit 38dddc5d authored by Jeremy Hylton's avatar Jeremy Hylton

Sync tests with current cache impl.

parent c5f30fd1
...@@ -180,9 +180,14 @@ class LRUCacheTests(CacheTestBase): ...@@ -180,9 +180,14 @@ class LRUCacheTests(CacheTestBase):
for i in range(CONNS): for i in range(CONNS):
self.noodle_new_connection() self.noodle_new_connection()
# The DB cacheSize() method returns the number of non-ghost self.assertEquals(self.db.cacheSize(), CACHE_SIZE * CONNS)
# objects, which should be zero. details = self.db.cacheDetailSize()
self.assertEquals(self.db.cacheSize(), 0) self.assertEquals(len(details), CONNS)
for d in details:
self.assertEquals(d['ngsize'], CACHE_SIZE)
# the root is also in the cache as ghost, because
# the connection holds a reference to it
self.assertEquals(d['size'], CACHE_SIZE + 1)
def checkDetail(self): def checkDetail(self):
CACHE_SIZE = 10 CACHE_SIZE = 10
...@@ -192,15 +197,20 @@ class LRUCacheTests(CacheTestBase): ...@@ -192,15 +197,20 @@ class LRUCacheTests(CacheTestBase):
for i in range(CONNS): for i in range(CONNS):
self.noodle_new_connection() self.noodle_new_connection()
# the only thing in the cache is the root objects, for klass, count in self.db.cacheDetail():
# which are referenced explicitly by the connection. if klass.endswith('MinPO'):
[(klass, count)] = self.db.cacheDetail() self.assertEqual(count, CONNS * CACHE_SIZE)
self.assertEqual(klass, "Persistence.PersistentMapping") if klass.endswith('PersistentMapping'):
self.assertEqual(count, CONNS) # one root per connection
self.assertEqual(count, CONNS)
for details in self.db.cacheExtremeDetail(): for details in self.db.cacheExtremeDetail():
self.assertEqual(details["klass"], "Persistence.PersistentMapping") # one dict per object. keys:
self.assertEqual(details['state'], None) if details['klass'].endswith('PersistentMapping'):
self.assertEqual(details['state'], None)
else:
self.assert_(details['klass'].endswith('MinPO'))
self.assertEqual(details['state'], 0)
class StubDataManager: class StubDataManager:
def setklassstate(self, object): def setklassstate(self, object):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment