Skip to content

Commit

Permalink
pythongh-94808: Cover PyObject_PyBytes case with custom __bytes__
Browse files Browse the repository at this point in the history
… method (python#96610)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
  • Loading branch information
sobolevn and JelleZijlstra committed Oct 6, 2022
1 parent 0d68879 commit e39ae6b
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions Lib/test/test_long.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit e39ae6b

Please sign in to comment.