@@ -721,22 +721,23 @@ def test_uuid7(self):
721721 fake_nanoseconds = 1545052026752910643
722722 # some fake 74 = 12 + 62 random bits speared over 76 bits
723723 # are generated by generating a random 76-bit number, and
724- # split into chunks of 62 (hi) and 12 (lo) bits. It is a
725- rand_a = random .getrandbits (12 )
726- rand_b = random .getrandbits (62 )
727- fake_bytes = (rand_b << 12 ) | rand_a
728- fake_bytes = fake_bytes .to_bytes (19 , byteorder = 'big' )
729-
730- with mock .patch .object (self .uuid , '_last_timestamp_v7' , None ), \
731- mock .patch ('time.time_ns' , return_value = fake_nanoseconds ), \
732- mock .patch ('os.urandom' , return_value = fake_bytes ):
733- u = self .uuid .uuid7 ()
734- equal (u .variant , self .uuid .RFC_4122 )
735- equal (u .version , 7 )
736- fake_milliseconds = (fake_nanoseconds // 1_000_000 ) & 0xffffffffffff
737- equal ((u .int >> 80 ) & 0xffffffffffff , fake_milliseconds )
738- equal ((u .int >> 64 ) & 0x0fff , rand_a )
739- equal (u .int & 0x3fffffffffffffff , rand_b )
724+ # split into chunks of 62 (hi) and 12 (lo) bits.
725+ for _ in range (100 ):
726+ rand_a = random .getrandbits (12 )
727+ rand_b = random .getrandbits (62 )
728+ fake_bytes = (rand_b << 12 ) | rand_a
729+ fake_bytes = fake_bytes .to_bytes (10 , byteorder = 'big' )
730+
731+ with mock .patch .object (self .uuid , '_last_timestamp_v7' , None ), \
732+ mock .patch ('time.time_ns' , return_value = fake_nanoseconds ), \
733+ mock .patch ('os.urandom' , return_value = fake_bytes ):
734+ u = self .uuid .uuid7 ()
735+ equal (u .variant , self .uuid .RFC_4122 )
736+ equal (u .version , 7 )
737+ fake_milliseconds = (fake_nanoseconds // 1_000_000 ) & 0xffffffffffff
738+ equal ((u .int >> 80 ) & 0xffffffffffff , fake_milliseconds )
739+ equal ((u .int >> 64 ) & 0x0fff , rand_a )
740+ equal (u .int & 0x3fffffffffffffff , rand_b )
740741
741742 def test_uuid8 (self ):
742743 equal = self .assertEqual
0 commit comments