Skip to content

Commit

Permalink
gh-94808: Cover PyObject_PyBytes case with custom __bytes__ method (
Browse files Browse the repository at this point in the history
GH-96610)

Co-authored-by: Jelle Zijlstra <[email protected]>
(cherry picked from commit e39ae6b)

Co-authored-by: Nikita Sobolev <[email protected]>
  • Loading branch information
miss-islington and sobolevn authored Oct 6, 2022
1 parent 1144cf6 commit 4aa93af
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 4aa93af

Please sign in to comment.