bpo-35701: Added __weakref__ slot to uuid.UUID (GH-11570)

Added test for weakreferencing a uuid.UUID object.
This commit is contained in:
David H 2019-01-17 13:16:51 +01:00 committed by Victor Stinner
parent 89669ffe10
commit f1d8e7cf17
2 changed files with 7 additions and 1 deletions

View file

@ -9,6 +9,7 @@ import pickle
import shutil import shutil
import subprocess import subprocess
import sys import sys
import weakref
from unittest import mock from unittest import mock
py_uuid = support.import_fresh_module('uuid', blocked=['_uuid']) py_uuid = support.import_fresh_module('uuid', blocked=['_uuid'])
@ -657,6 +658,11 @@ class BaseTestUUID:
self.assertNotEqual(parent_value, child_value) self.assertNotEqual(parent_value, child_value)
def test_uuid_weakref(self):
# bpo-35701: check that weak referencing to a UUID object can be created
strong = self.uuid.uuid4()
weak = weakref.ref(strong)
self.assertIs(strong, weak())
class TestUUIDWithoutExtModule(BaseTestUUID, unittest.TestCase): class TestUUIDWithoutExtModule(BaseTestUUID, unittest.TestCase):
uuid = py_uuid uuid = py_uuid

View file

@ -118,7 +118,7 @@ class UUID:
uuid_generate_time_safe(3). uuid_generate_time_safe(3).
""" """
__slots__ = ('int', 'is_safe') __slots__ = ('int', 'is_safe', '__weakref__')
def __init__(self, hex=None, bytes=None, bytes_le=None, fields=None, def __init__(self, hex=None, bytes=None, bytes_le=None, fields=None,
int=None, version=None, int=None, version=None,