]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Give UserDict new __contains__ and __iter__ methods.
authorTim Peters <tim.peters@gmail.com>
Sat, 21 Apr 2001 09:13:15 +0000 (09:13 +0000)
committerTim Peters <tim.peters@gmail.com>
Sat, 21 Apr 2001 09:13:15 +0000 (09:13 +0000)
Lib/UserDict.py
Lib/test/test_userdict.py

index b642db73b57e480c55dbd4af7474d0983d77e126..bbd4ca04c4af78e7da04fc7f315417de8893d2f2 100644 (file)
@@ -40,3 +40,7 @@ class UserDict:
         return self.data[key]
     def popitem(self):
         return self.data.popitem()
+    def __contains__(self, key):
+        return key in self.data
+    def __iter__(self):
+        return iter(self.data)
index 08b7a13e4a0b9da94f3d2bc6d86a168f190bf7c6..9aa01d0de772ff4838340c070e4089156be9fc76 100644 (file)
@@ -81,12 +81,15 @@ verify(u2.keys() == d2.keys())
 verify(u2.items() == d2.items())
 verify(u2.values() == d2.values())
 
-# Test has_key
+# Test has_key and "in".
 
 for i in u2.keys():
     verify(u2.has_key(i) == 1)
+    verify((i in u2) == 1)
     verify(u1.has_key(i) == d1.has_key(i))
+    verify((i in u1) == (i in d1))
     verify(u0.has_key(i) == d0.has_key(i))
+    verify((i in u0) == (i in d0))
 
 # Test update
 
@@ -100,3 +103,14 @@ for i in u2.keys():
     verify(u2.get(i) == u2[i])
     verify(u1.get(i) == d1.get(i))
     verify(u0.get(i) == d0.get(i))
+
+# Test "in" iteration.
+for i in xrange(20):
+    u2[i] = str(i)
+ikeys = []
+for k in u2:
+    ikeys.append(k)
+ikeys.sort()
+keys = u2.keys()
+keys.sort()
+verify(ikeys == keys)