MCPcopy Index your code
hub / github.com/python/cpython / _check_random_seed

Method _check_random_seed

Lib/test/test_regrtest.py:2152–2184  ·  view source on GitHub ↗
(self, run_workers: bool)

Source from the content-addressed store, hash-verified

2150 stats=TestStats(1, 2, 1))
2151
2152 def _check_random_seed(self, run_workers: bool):
2153 # gh-109276: When -r/--randomize is used, random.seed() is called
2154 # with the same random seed before running each test file.
2155 code = textwrap.dedent(r'''
2156 import random
2157 import unittest
2158
2159 class RandomSeedTest(unittest.TestCase):
2160 def test_randint(self):
2161 numbers = [random.randint(0, 1000) for _ in range(10)]
2162 print(f"Random numbers: {numbers}")
2163 ''')
2164 tests = [self.create_test(name=f'test_random{i}', code=code)
2165 for i in range(1, 3+1)]
2166
2167 random_seed = 856_656_202
2168 cmd = ["--randomize", f"--randseed={random_seed}"]
2169 if run_workers:
2170 # run as many worker processes than the number of tests
2171 cmd.append(f'-j{len(tests)}')
2172 cmd.extend(tests)
2173 output = self.run_tests(*cmd)
2174
2175 random.seed(random_seed)
2176 # Make the assumption that nothing consume entropy between libregrest
2177 # setup_tests() which calls random.seed() and RandomSeedTest calling
2178 # random.randint().
2179 numbers = [random.randint(0, 1000) for _ in range(10)]
2180 expected = f"Random numbers: {numbers}"
2181
2182 regex = r'^Random numbers: .*$'
2183 matches = re.findall(regex, output, flags=re.MULTILINE)
2184 self.assertEqual(matches, [expected] * len(tests))
2185
2186 def test_random_seed(self):
2187 self._check_random_seed(run_workers=False)

Callers 2

test_random_seedMethod · 0.95

Calls 9

run_testsMethod · 0.95
create_testMethod · 0.80
randintMethod · 0.80
dedentMethod · 0.45
appendMethod · 0.45
extendMethod · 0.45
seedMethod · 0.45
findallMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected