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

This commit is contained in:
Serhiy Storchaka 2016-05-01 13:36:16 +03:00
parent f5f37d784b
commit dd1bcdf618
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

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

View File

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