(self, run_workers: bool)
| 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) |
no test coverage detected