Skip to content

Commit a169e89

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

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

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
raise ValueError('badly formed hexadecimal UUID string')
161161
int = int_(hex, 16)
162162
if bytes_le is not None:
163-
if not isinstance(bytes_le, (bytes_, bytearray)):
163+
# Don't cast int to bytes to get a TypeError above
164+
if not isinstance(bytes_le, (bytes_, bytearray, int_)):
164165
bytes_le = bytes_(bytes_le)
165166
if len(bytes_le) != 16:
166167
raise ValueError('bytes_le is not a 16-char string')

0 commit comments

Comments
 (0)