2023-05-21 08:52:29 -03:00
|
|
|
import os
|
|
|
|
|
2023-05-12 09:35:53 -03:00
|
|
|
try:
|
|
|
|
import hypothesis
|
|
|
|
except ImportError:
|
|
|
|
from . import _hypothesis_stubs as hypothesis
|
2023-05-21 08:52:29 -03:00
|
|
|
else:
|
2024-05-29 09:13:18 -03:00
|
|
|
# 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 hypothesis.configuration import set_hypothesis_home_dir
|
|
|
|
|
|
|
|
set_hypothesis_home_dir(os.path.join(SAVEDCWD, ".hypothesis"))
|
|
|
|
|
2023-05-21 08:52:29 -03:00
|
|
|
# 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,
|
2023-09-04 15:31:58 -03:00
|
|
|
suppress_health_check=[
|
|
|
|
hypothesis.HealthCheck.too_slow,
|
|
|
|
hypothesis.HealthCheck.differing_executors,
|
|
|
|
],
|
2023-05-21 08:52:29 -03:00
|
|
|
)
|
|
|
|
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
|
|
|
|
if "CI" not 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")
|