gh-76760: test that uuid.uuid1() sets the version field (#139033)

This commit is contained in:
Bénédikt Tran 2025-09-17 15:31:51 +02:00 committed by GitHub
parent 2fc7004d54
commit 3a04be986a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 0 deletions

View file

@ -590,6 +590,7 @@ class BaseTestUUID:
# dependent on the underlying platform support. At least it cannot be
# unknown (unless I suppose the platform is buggy).
self.assertNotEqual(u.is_safe, self.uuid.SafeUUID.unknown)
self.assertEqual(u.version, 1)
@contextlib.contextmanager
def mock_generate_time_safe(self, safe_value):
@ -612,24 +613,28 @@ class BaseTestUUID:
with self.mock_generate_time_safe(None):
u = self.uuid.uuid1()
self.assertEqual(u.is_safe, self.uuid.SafeUUID.unknown)
self.assertEqual(u.version, 1)
@unittest.skipUnless(os.name == 'posix', 'POSIX-only test')
def test_uuid1_is_safe(self):
with self.mock_generate_time_safe(0):
u = self.uuid.uuid1()
self.assertEqual(u.is_safe, self.uuid.SafeUUID.safe)
self.assertEqual(u.version, 1)
@unittest.skipUnless(os.name == 'posix', 'POSIX-only test')
def test_uuid1_is_unsafe(self):
with self.mock_generate_time_safe(-1):
u = self.uuid.uuid1()
self.assertEqual(u.is_safe, self.uuid.SafeUUID.unsafe)
self.assertEqual(u.version, 1)
@unittest.skipUnless(os.name == 'posix', 'POSIX-only test')
def test_uuid1_bogus_return_value(self):
with self.mock_generate_time_safe(3):
u = self.uuid.uuid1()
self.assertEqual(u.is_safe, self.uuid.SafeUUID.unknown)
self.assertEqual(u.version, 1)
def test_uuid1_time(self):
with mock.patch.object(self.uuid, '_generate_time_safe', None), \

View file

@ -737,6 +737,7 @@ def uuid1(node=None, clock_seq=None):
is_safe = SafeUUID(safely_generated)
except ValueError:
is_safe = SafeUUID.unknown
# The version field is assumed to be handled by _generate_time_safe().
return UUID(bytes=uuid_time, is_safe=is_safe)
global _last_timestamp