summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2002-11-25 20:43:55 (GMT)
committerRaymond Hettinger <python@rcn.com>2002-11-25 20:43:55 (GMT)
commit35e48d2426e50306cb957da26777b1e3469c53b3 (patch)
tree65bbc08c8b4a46f639a8913befc092d30ebecc5f
parent919000e9ec36c513f08253091b71a3aead2aff08 (diff)
downloadcpython-35e48d2426e50306cb957da26777b1e3469c53b3.zip
cpython-35e48d2426e50306cb957da26777b1e3469c53b3.tar.gz
cpython-35e48d2426e50306cb957da26777b1e3469c53b3.tar.bz2
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.
-rw-r--r--Lib/sets.py3
-rw-r--r--Lib/test/test_sets.py3
2 files changed, 3 insertions, 3 deletions
diff --git a/Lib/sets.py b/Lib/sets.py
index 5dac370a..2605c98 100644
--- a/Lib/sets.py
+++ b/Lib/sets.py
@@ -315,9 +315,6 @@ class BaseSet(object):
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 @@ class TestBinaryOps(unittest.TestCase):
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)))