Skip to content

Commit 6c5bbf7

Browse files
committed
remove thread from test case
1 parent 57064dc commit 6c5bbf7

File tree

3 files changed

+17
-44
lines changed

3 files changed

+17
-44
lines changed

Lib/test/test_defaultdict.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,5 +186,20 @@ def test_union(self):
186186
with self.assertRaises(TypeError):
187187
i |= None
188188

189+
def test_factory_conflict_with_setted_value(self):
190+
test_dict = None
191+
count = 0
192+
key = "conflict_test"
193+
def default_factory():
194+
nonlocal count
195+
nonlocal test_dict
196+
nonlocal key
197+
count += 1
198+
if count == 1:
199+
test_dict[key] = "setted_value"
200+
return "default_factory_value"
201+
test_dict = defaultdict(default_factory)
202+
self.assertEqual(test_dict[key], "setted_value")
203+
189204
if __name__ == "__main__":
190205
unittest.main()

Lib/test/test_free_threading/test_defaultdict.py

Lines changed: 0 additions & 43 deletions
This file was deleted.
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
:class:`collections.defaultdict` now prioritizes :meth:`~object.__setitem__`
22
when inserting default values from ``default_factory``. This prevents race
3-
conditions where a default value would overwrite a value set by another thread.
3+
conditions where a default value would overwrite a value set before
4+
``default_factory`` returns.

0 commit comments

Comments
 (0)