From dd1bcdf6187ff18fb1536a6190926b0f03336186 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sun, 1 May 2016 13:36:16 +0300 Subject: [PATCH] Issue #26711: Fixed the comparison of plistlib.Data with other types. --- Lib/plistlib.py | 4 ++-- Lib/test/test_plistlib.py | 6 +++--- Misc/NEWS | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Lib/plistlib.py b/Lib/plistlib.py index a39151fb0be..b66639ca9e5 100644 --- a/Lib/plistlib.py +++ b/Lib/plistlib.py @@ -225,10 +225,10 @@ class Data: def __eq__(self, other): if isinstance(other, self.__class__): return self.data == other.data - elif isinstance(other, str): + elif isinstance(other, bytes): return self.data == other else: - return id(self) == id(other) + return NotImplemented def __repr__(self): return "%s(%s)" % (self.__class__.__name__, repr(self.data)) diff --git a/Lib/test/test_plistlib.py b/Lib/test/test_plistlib.py index f0e9e5a9ea3..16114f9f6f3 100644 --- a/Lib/test/test_plistlib.py +++ b/Lib/test/test_plistlib.py @@ -515,15 +515,15 @@ class TestPlistlibDeprecated(unittest.TestCase): cur = plistlib.loads(buf) self.assertEqual(cur, out_data) - self.assertNotEqual(cur, in_data) + self.assertEqual(cur, in_data) cur = plistlib.loads(buf, use_builtin_types=False) - self.assertNotEqual(cur, out_data) + self.assertEqual(cur, out_data) self.assertEqual(cur, in_data) with self.assertWarns(DeprecationWarning): cur = plistlib.readPlistFromBytes(buf) - self.assertNotEqual(cur, out_data) + self.assertEqual(cur, out_data) self.assertEqual(cur, in_data) diff --git a/Misc/NEWS b/Misc/NEWS index 89403b04e89..678fac1469e 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -107,6 +107,8 @@ Core and Builtins Library ------- +- Issue #26711: Fixed the comparison of plistlib.Data with other types. + - Issue #24114: Fix an uninitialized variable in `ctypes.util`. The bug only occurs on SunOS when the ctypes implementation searches