mirror of https://github.com/python/cpython
gh-86275: improve Hypothesis configuration for CI and local runs (#104468)
This commit is contained in:
parent
be0c106789
commit
014dd301b5
|
@ -368,6 +368,14 @@ jobs:
|
|||
echo "HYPOVENV=${VENV_LOC}" >> $GITHUB_ENV
|
||||
echo "VENV_PYTHON=${VENV_PYTHON}" >> $GITHUB_ENV
|
||||
./python -m venv $VENV_LOC && $VENV_PYTHON -m pip install -U hypothesis
|
||||
- name: 'Restore Hypothesis database'
|
||||
id: cache-hypothesis-database
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ./hypothesis
|
||||
key: hypothesis-database-${{ github.head_ref || github.run_id }}
|
||||
restore-keys: |
|
||||
- hypothesis-database-
|
||||
- name: "Run tests"
|
||||
working-directory: ${{ env.CPYTHON_BUILDDIR }}
|
||||
run: |
|
||||
|
@ -388,6 +396,11 @@ jobs:
|
|||
-x test_subprocess \
|
||||
-x test_signal \
|
||||
-x test_sysconfig
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: hypothesis-example-db
|
||||
path: .hypothesis/examples/
|
||||
|
||||
|
||||
build_asan:
|
||||
|
|
|
@ -1,4 +1,35 @@
|
|||
import os
|
||||
|
||||
try:
|
||||
import hypothesis
|
||||
except ImportError:
|
||||
from . import _hypothesis_stubs as hypothesis
|
||||
else:
|
||||
# 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.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")
|
||||
|
|
Loading…
Reference in New Issue