Skip to content

Commit

Permalink
#11649 Add a deterministic Hypothesis profile (#11672)
Browse files Browse the repository at this point in the history
Automatically activate that profile for all runs of trial's test suite.
  • Loading branch information
exarkun committed Sep 22, 2022
2 parents 4682c2e + 7387ca9 commit 9c1b10a
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
Empty file.
36 changes: 36 additions & 0 deletions src/twisted/trial/test/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,39 @@
"""
Unit tests for the Trial unit-testing framework.
"""

from hypothesis import HealthCheck, settings


def _activateHypothesisProfile():
"""
Load a Hypothesis profile appropriate for a Twisted test suite.
"""
deterministic = settings(
# Disable the deadline. It is too hard to guarantee that a particular
# piece of Python code will always run in less than some fixed amount
# of time. Hardware capabilities, the OS scheduler, the Python
# garbage collector, and other factors all combine to make substantial
# outliers possible. Such failures are a distraction from development
# and a hassle on continuous integration environments.
deadline=None,
suppress_health_check=[
# With the same reasoning as above, disable the Hypothesis time
# limit on data generation by example search strategies.
HealthCheck.too_slow,
],
# When a developer is working on one set of changes, or continuous
# integration system is testing them, it is disruptive for Hypothesis
# to discover a bug in pre-existing code. This is just what
# Hypothesis will do by default, by exploring a pseudo-randomly
# different set of examples each time. Such failures are a
# distraction from development and a hassle in continuous integration
# environments.
derandomize=True,
)

settings.register_profile("twisted_trial_test_profile_deterministic", deterministic)
settings.load_profile("twisted_trial_test_profile_deterministic")


_activateHypothesisProfile()

0 comments on commit 9c1b10a

Please sign in to comment.