From 2de20539a93dfc3d342017bbc1db408f53061854 Mon Sep 17 00:00:00 2001 From: ShaharNaveh <50263213+ShaharNaveh@users.noreply.github.com> Date: Sat, 23 Aug 2025 21:46:28 +0300 Subject: [PATCH] Update `support/hypothesis_helper.py` from 3.13.7 --- Lib/test/support/hypothesis_helper.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Lib/test/support/hypothesis_helper.py b/Lib/test/support/hypothesis_helper.py index db93eea5e..a99a4963f 100644 --- a/Lib/test/support/hypothesis_helper.py +++ b/Lib/test/support/hypothesis_helper.py @@ -5,6 +5,14 @@ try: except ImportError: from . import _hypothesis_stubs as hypothesis else: + # Regrtest changes to use a tempdir as the working directory, so we have + # to tell Hypothesis to use the original in order to persist the database. + from test.support import has_socket_support + from test.support.os_helper import SAVEDCWD + from hypothesis.configuration import set_hypothesis_home_dir + + set_hypothesis_home_dir(os.path.join(SAVEDCWD, ".hypothesis")) + # When using the real Hypothesis, we'll configure it to ignore occasional # slow tests (avoiding flakiness from random VM slowness in CI). hypothesis.settings.register_profile( @@ -21,7 +29,14 @@ else: # of failing examples, and also use a pull-through cache to automatically # replay any failing examples discovered in CI. For details on how this # works, see https://hypothesis.readthedocs.io/en/latest/database.html - if "CI" not in os.environ: + # We only do that if a GITHUB_TOKEN env var is provided, see: + # https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens + # And Python is built with socket support: + if ( + has_socket_support + and "CI" not in os.environ + and "GITHUB_TOKEN" in os.environ + ): from hypothesis.database import ( GitHubArtifactDatabase, MultiplexedDatabase,