From f682e9edcebb05f349788fc9546c57ea1fe29664 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Thu, 10 Apr 2025 14:30:58 +0300 Subject: [PATCH] gh-132316: Require `socket` and `GITHUB_TOKEN` env to use `GitHubArtifactDatabase` (GH-132348) (cherry picked from commit fcf2d07228ada64bc864380cd8e3e304d9768caa) Co-authored-by: sobolevn Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- Lib/test/support/hypothesis_helper.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Lib/test/support/hypothesis_helper.py b/Lib/test/support/hypothesis_helper.py index 40f58a2f59c6c3..a99a4963ffecc9 100644 --- a/Lib/test/support/hypothesis_helper.py +++ b/Lib/test/support/hypothesis_helper.py @@ -7,7 +7,8 @@ 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 .os_helper import SAVEDCWD + 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")) @@ -28,7 +29,14 @@ # 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,