[Zope-Checkins] CVS: Zope3/lib/python/Persistence/BTrees/tests - testBTrees.py:1.14
Tim Peters
tim.one@comcast.net
Tue, 18 Jun 2002 15:43:14 -0400
Update of /cvs-repository/Zope3/lib/python/Persistence/BTrees/tests
In directory cvs.zope.org:/tmp/cvs-serv25027/tests
Modified Files:
testBTrees.py
Log Message:
Implemented the new-in-Python-2.2 sq_contains slot for Sets, Buckets,
TreeSets, and BTrees. This allows writing:
if key in set_bucket_treeset_or_btree:
if key not in set_bucket_treeset_or_btree:
under Python 2.2 or later. They're the same as:
if set_bucket_treeset_or_btree.has_key(key):
if not set_bucket_treeset_or_btree.has_key(key):
but are a little quicker because the former way avoids needing to load
the "has_key" string and doing a general method lookup. Note that the
sq_contains slot implements a true Boolean (True/False in 2.3; 1/0 in
2.2) function, while the BTree has_key method actually returns the
depth of the bucket in which a key is found.
=== Zope3/lib/python/Persistence/BTrees/tests/testBTrees.py 1.13 => 1.14 ===
self.t[1] = 1
self.assert_(self.t.has_key(1))
+ self.assert_(1 in self.t)
+ self.assert_(0 not in self.t)
+ self.assert_(2 not in self.t)
def testValuesWorks(self):
for x in range(100):
@@ -367,6 +370,8 @@
t = self.t
t.insert(1)
self.assert_(t.has_key(1))
+ self.assert_(1 in t)
+ self.assert_(2 not in t)
def testBigInsert(self):
t = self.t
@@ -375,6 +380,7 @@
t.insert(x)
for x in r:
self.assert_(t.has_key(x))
+ self.assert_(x in t)
def testRemoveSucceeds(self):
t = self.t
@@ -391,6 +397,7 @@
def testHasKeyFails(self):
t = self.t
self.assert_(not t.has_key(1))
+ self.assert_(1 not in t)
def testKeys(self):
t = self.t
@@ -423,6 +430,10 @@
self.assertEqual(t.minKey() , 1)
self.assertEqual(t.minKey(3) , 3)
self.assertEqual(t.minKey(9) , 10)
+ self.assert_(t.minKey() in t)
+ self.assert_(t.minKey()-1 not in t)
+ self.assert_(t.maxKey() in t)
+ self.assert_(t.maxKey()+1 not in t)
def testUpdate(self):
d={}
@@ -432,11 +443,11 @@
d[k]=i
l.append(k)
- items=d.keys()
+ items = d.keys()
items.sort()
self.t.update(l)
- self.assertEqual(list(self.t.keys()) , items)
+ self.assertEqual(list(self.t.keys()), items)
def testEmptyRangeSearches(self):
t = self.t
@@ -604,6 +615,7 @@
for x in r:
k = random.choice(r)
if self.t.has_key(k):
+ self.assert_(k in self.t)
del self.t[k]
deleted.append(k)
if self.t.has_key(k):
@@ -939,7 +951,7 @@
self.assertEqual(t.has_key(7), 5)
self.assertEqual(t.has_key(11), 5)
for i in 0, 2, 4, 6, 8, 9, 10, 12:
- self.assertEqual(t.has_key(i), 0)
+ self.assert_(i not in t)
def _checkRanges(self, tree, keys):
self.assertEqual(len(tree), len(keys))
@@ -947,7 +959,7 @@
sorted_keys.sort()
self.assertEqual(list(tree.keys()), sorted_keys)
for k in keys:
- self.assert_(tree.has_key(k))
+ self.assert_(k in tree)
if keys:
lokey = sorted_keys[0]
hikey = sorted_keys[-1]