bpo-41052: Opt out serialization/deserialization for _random.Random (GH-21002)
diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index a3710f4..a80e71e 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -5,6 +5,8 @@
import time
import pickle
import warnings
+import test.support
+
from functools import partial
from math import log, exp, pi, fsum, sin, factorial
from test import support
@@ -372,6 +374,14 @@
restoredseq = [newgen.random() for i in range(10)]
self.assertEqual(origseq, restoredseq)
+ @test.support.cpython_only
+ def test_bug_41052(self):
+ # _random.Random should not be allowed to serialization
+ import _random
+ for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+ r = _random.Random()
+ self.assertRaises(TypeError, pickle.dumps, r, proto)
+
def test_bug_1727780(self):
# verify that version-2-pickles can be loaded
# fine, whether they are created on 32-bit or 64-bit