]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-110164: regrtest disables random if SOURCE_DATE_EPOCH (#110168)
authorVictor Stinner <vstinner@python.org>
Sun, 1 Oct 2023 20:41:03 +0000 (22:41 +0200)
committerGitHub <noreply@github.com>
Sun, 1 Oct 2023 20:41:03 +0000 (22:41 +0200)
If the SOURCE_DATE_EPOCH environment variable is defined, regrtest
now disables randomization of tests.

Lib/test/libregrtest/main.py
Lib/test/test_regrtest.py
Misc/NEWS.d/next/Core and Builtins/2023-10-01-02-58-00.gh-issue-110164.z7TMCq.rst [new file with mode: 0644]

index 5f2baac9cba9e014a1086fb15888794d9ffcf534..af5fb0f464f5b59ab4e7d07b60500a60030d3ac9 100644 (file)
@@ -106,8 +106,6 @@ class Regrtest:
         self.fail_env_changed: bool = ns.fail_env_changed
         self.fail_rerun: bool = ns.fail_rerun
         self.forever: bool = ns.forever
-        self.randomize: bool = ns.randomize
-        self.random_seed: int | None = ns.random_seed
         self.output_on_failure: bool = ns.verbose3
         self.timeout: float | None = ns.timeout
         if ns.huntrleaks:
@@ -129,6 +127,13 @@ class Regrtest:
         self.coverage_dir: StrPath | None = ns.coverdir
         self.tmp_dir: StrPath | None = ns.tempdir
 
+        # Randomize
+        self.randomize: bool = ns.randomize
+        self.random_seed: int | None = ns.random_seed
+        if 'SOURCE_DATE_EPOCH' in os.environ:
+            self.randomize = False
+            self.random_seed = None
+
         # tests
         self.first_runtests: RunTests | None = None
 
index 0e052e28ec2609f00e7c9681553668c878ff06a4..38071341006092fc0c49a6ea84940a96793e7edb 100644 (file)
@@ -148,6 +148,14 @@ class ParseArgsTestCase(unittest.TestCase):
                 ns = self.parse_args([opt])
                 self.assertTrue(ns.randomize)
 
+        with os_helper.EnvironmentVarGuard() as env:
+            env['SOURCE_DATE_EPOCH'] = '1'
+
+            ns = self.parse_args(['--randomize'])
+            regrtest = main.Regrtest(ns)
+            self.assertFalse(regrtest.randomize)
+            self.assertIsNone(regrtest.random_seed)
+
     def test_randseed(self):
         ns = self.parse_args(['--randseed', '12345'])
         self.assertEqual(ns.random_seed, 12345)
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-10-01-02-58-00.gh-issue-110164.z7TMCq.rst b/Misc/NEWS.d/next/Core and Builtins/2023-10-01-02-58-00.gh-issue-110164.z7TMCq.rst
new file mode 100644 (file)
index 0000000..086d70f
--- /dev/null
@@ -0,0 +1,2 @@
+regrtest: If the ``SOURCE_DATE_EPOCH`` environment variable is defined,
+regrtest now disables tests randomization. Patch by Victor Stinner.