Mercurial > hg
changeset 28259:7829d0ba7459
testing: add a 'continuous' profile
This gives a good way of letting Hypothesis run until it
finds an error, save that error, and be restarted without it
picking up on the old bug. This lets you run long-running
Hypothesis processes and then perform a manual deduplication
task on the bugs found at the end.
It's not an entirely satisfying way of using this, but anything
much better would require extensive changes to Hypothesis itself.
author | David R. MacIver <david@drmaciver.com> |
---|---|
date | Wed, 24 Feb 2016 13:20:06 +0000 |
parents | fc7ee50a0d65 |
children | 0a17cfbe5429 |
files | tests/test-verify-repo-operations.py |
diffstat | 1 files changed, 28 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-verify-repo-operations.py Wed Feb 24 13:11:30 2016 +0000 +++ b/tests/test-verify-repo-operations.py Wed Feb 24 13:20:06 2016 +0000 @@ -41,6 +41,7 @@ rule, RuleBasedStateMachine, Bundle, precondition) from hypothesis import settings, note, strategies as st from hypothesis.configuration import set_hypothesis_home_dir +from hypothesis.database import ExampleDatabase testdir = os.path.abspath(os.environ["TESTDIR"]) @@ -530,6 +531,23 @@ with acceptableerrors("no shelved changes to apply"): self.hg("unshelve") +class writeonlydatabase(ExampleDatabase): + def __init__(self, underlying): + super(ExampleDatabase, self).__init__() + self.underlying = underlying + + def fetch(self, key): + return () + + def save(self, key, value): + self.underlying.save(key, value) + + def delete(self, key, value): + self.underlying.delete(key, value) + + def close(self): + self.underlying.close() + settings.register_profile( 'default', settings( timeout=300, @@ -548,6 +566,16 @@ ) ) +settings.register_profile( + 'continuous', settings( + timeout=-1, + stateful_step_count=1000, + max_examples=10 ** 8, + max_iterations=10 ** 8, + database=writeonlydatabase(settings.default.database) + ) +) + settings.load_profile(os.getenv('HYPOTHESIS_PROFILE', 'default')) verifyingtest = verifyingstatemachine.TestCase