Skip to content

Commit a169e89

Browse files
committed
Fix UUID(bytes_le=16)
1 parent d7262ad commit a169e89

2 files changed

Lines changed: 4 additions & 1 deletion

File tree

‎Lib/test/test_uuid.py‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,13 +225,15 @@ def test_exceptions(self):
225225
badvalue(lambda: self.uuid.UUID(bytes=b'abc'))
226226
badvalue(lambda: self.uuid.UUID(bytes=b'\0'*15))
227227
badvalue(lambda: self.uuid.UUID(bytes=b'\0'*17))
228+
badtype(lambda: self.uuid.UUID(bytes=16))
228229

229230
# Badly formed bytes_le.
230231
badtype(lambda: self.uuid.UUID(bytes_le='unicode'))
231232
badtype(lambda: self.uuid.UUID(bytes_le='u'*16))
232233
badvalue(lambda: self.uuid.UUID(bytes_le=b'abc'))
233234
badvalue(lambda: self.uuid.UUID(bytes_le=b'\0'*15))
234235
badvalue(lambda: self.uuid.UUID(bytes_le=b'\0'*17))
236+
badtype(lambda: self.uuid.UUID(bytes_le=16))
235237

236238
# Badly formed fields.
237239
badvalue(lambda: self.uuid.UUID(fields=(1,)))

‎Lib/uuid.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,8 @@ def __init__(self, hex=None, bytes=None, bytes_le=None, fields=None,
160160
raiseValueError('badly formed hexadecimal UUID string')
161161
int=int_(hex, 16)
162162
ifbytes_leisnotNone:
163-
ifnotisinstance(bytes_le, (bytes_, bytearray)):
163+
# Don't cast int to bytes to get a TypeError above
164+
ifnotisinstance(bytes_le, (bytes_, bytearray, int_)):
164165
bytes_le=bytes_(bytes_le)
165166
iflen(bytes_le) !=16:
166167
raiseValueError('bytes_le is not a 16-char string')

0 commit comments

Comments
 (0)