Issue #26711: Fixed the comparison of plistlib.Data with other types.

This commit is contained in:
Serhiy Storchaka 2016-05-01 13:36:42 +03:00
commit 47d1d7f48a
3 changed files with 7 additions and 5 deletions

View File

@ -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))

View File

@ -514,15 +514,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)

View File

@ -256,6 +256,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