mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| 
 | |
| try:
 | |
|     import hypothesis
 | |
| 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(
 | |
|         "slow-is-ok",
 | |
|         deadline=None,
 | |
|         suppress_health_check=[
 | |
|             hypothesis.HealthCheck.too_slow,
 | |
|             hypothesis.HealthCheck.differing_executors,
 | |
|         ],
 | |
|     )
 | |
|     hypothesis.settings.load_profile("slow-is-ok")
 | |
| 
 | |
|     # For local development, we'll write to the default on-local-disk database
 | |
|     # 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
 | |
|     # 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,
 | |
|             ReadOnlyDatabase,
 | |
|         )
 | |
| 
 | |
|         hypothesis.settings.register_profile(
 | |
|             "cpython-local-dev",
 | |
|             database=MultiplexedDatabase(
 | |
|                 hypothesis.settings.default.database,
 | |
|                 ReadOnlyDatabase(GitHubArtifactDatabase("python", "cpython")),
 | |
|             ),
 | |
|         )
 | |
|         hypothesis.settings.load_profile("cpython-local-dev")
 | 
