]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
implement missing inequality on WeakSet
authorBenjamin Peterson <benjamin@python.org>
Wed, 22 May 2013 20:25:41 +0000 (13:25 -0700)
committerBenjamin Peterson <benjamin@python.org>
Wed, 22 May 2013 20:25:41 +0000 (13:25 -0700)
Lib/_weakrefset.py
Lib/test/test_weakset.py
Misc/NEWS

index 43f9a6e447dba273e2fbceebb6e6acead62ee418..990c3a6bbcdc10f1888eb13a516bb5b2e140c334 100644 (file)
@@ -171,6 +171,12 @@ class WeakSet(object):
             return NotImplemented
         return self.data == set(ref(item) for item in other)
 
+    def __ne__(self, other):
+        opposite = self.__eq__(other)
+        if opposite is NotImplemented:
+            return NotImplemented
+        return not opposite
+
     def symmetric_difference(self, other):
         newset = self.copy()
         newset.symmetric_difference_update(other)
index d9e091ed02f86e12f50dda2da2c6b91fd7d22974..fb9e8d73db36bbe62b12908364ab49d8cc97c197 100644 (file)
@@ -351,6 +351,12 @@ class TestWeakSet(unittest.TestCase):
         self.assertFalse(self.s == tuple(self.items))
         self.assertFalse(self.s == 1)
 
+    def test_ne(self):
+        self.assertTrue(self.s != set(self.items))
+        s1 = WeakSet()
+        s2 = WeakSet()
+        self.assertFalse(s1 != s2)
+
     def test_weak_destroy_while_iterating(self):
         # Issue #7105: iterators shouldn't crash when a key is implicitly removed
         # Create new items to be sure no-one else holds a reference
index 391ecc5288cce3f3a7718d306804735adff2275e..7a720309184e6cf7b7390c0e20c6e9a82ba6697c 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -15,6 +15,8 @@ Core and Builtins
 Library
 -------
 
+- Implement inequality on weakref.WeakSet.
+
 - Issue #17981: Closed socket on error in SysLogHandler.
 
 - Issue #17754: Make ctypes.util.find_library() independent of the locale.