mirror of
https://github.com/python/cpython
synced 2024-10-14 19:55:22 +00:00
gh-94808: Cover PyObject_PyBytes
case with custom __bytes__
method (#96610)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
parent
0d68879104
commit
e39ae6bef2
|
@ -1518,6 +1518,22 @@ def __init__(self, value):
|
|||
self.assertEqual(i, 1)
|
||||
self.assertEqual(getattr(i, 'foo', 'none'), 'bar')
|
||||
|
||||
class ValidBytes:
|
||||
def __bytes__(self):
|
||||
return b'\x01'
|
||||
class InvalidBytes:
|
||||
def __bytes__(self):
|
||||
return 'abc'
|
||||
class MissingBytes: ...
|
||||
class RaisingBytes:
|
||||
def __bytes__(self):
|
||||
1 / 0
|
||||
|
||||
self.assertEqual(int.from_bytes(ValidBytes()), 1)
|
||||
self.assertRaises(TypeError, int.from_bytes, InvalidBytes())
|
||||
self.assertRaises(TypeError, int.from_bytes, MissingBytes())
|
||||
self.assertRaises(ZeroDivisionError, int.from_bytes, RaisingBytes())
|
||||
|
||||
@support.cpython_only
|
||||
def test_from_bytes_small(self):
|
||||
# bpo-46361
|
||||
|
|
Loading…
Reference in a new issue