SF 643115: Set._update() had a special case for dictionaries which allowed
non-true values to leak in. This threw-off equality testing which depends
on the underlying dictionaries having both the same keys and values.
diff --git a/Lib/sets.py b/Lib/sets.py
index 5dac370..2605c98 100644
--- a/Lib/sets.py
+++ b/Lib/sets.py
@@ -315,9 +315,6 @@
if isinstance(iterable, BaseSet):
data.update(iterable._data)
return
- if isinstance(iterable, dict):
- data.update(iterable)
- return
value = True
diff --git a/Lib/test/test_sets.py b/Lib/test/test_sets.py
index 9bc3eeb..f80d58e 100644
--- a/Lib/test/test_sets.py
+++ b/Lib/test/test_sets.py
@@ -179,6 +179,9 @@
def setUp(self):
self.set = Set((2, 4, 6))
+ def test_eq(self): # SF bug 643115
+ self.assertEqual(self.set, Set({2:1,4:3,6:5}))
+
def test_union_subset(self):
result = self.set | Set([2])
self.assertEqual(result, Set((2, 4, 6)))