Commit f1d8e7cf authored by David H's avatar David H Committed by Victor Stinner

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

Added test for weakreferencing a uuid.UUID object.
parent 89669ffe
...@@ -9,6 +9,7 @@ import pickle ...@@ -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: ...@@ -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
......
...@@ -118,7 +118,7 @@ class UUID: ...@@ -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,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment