Closed Zac-HD closed 1 month ago
So, it would be really great to have a designated exception or some other way to indicate that I need to abort the current iteration. And, as you're seeing here, that can happen not only when the test case runs, but also everywhere we realize values. How difficult would this be to support? I'm already doing a few horrible things in the plugin to work around this that have their own edge-case failure scenarios.
In the specific case of this timeout, I suspect we want to retain it, though perhaps ideally it'd be 2x the current test's deadline
or something like that.
So, it would be really great to have a designated exception or some other way to indicate that I need to abort the current iteration. And, as you're seeing here, that can happen not only when the test case runs, but also everywhere we realize values. How difficult would this be to support?
Perfectly reasonable, it'll just be a little fiddly to implement - but easy enough to test using a provider that fails on the 1,2,3,4,5,...th interaction to check that they're all handled properly.
In the specific case of this timeout, I suspect we want to retain it, though perhaps ideally it'd be 2x the current test's
deadline
or something like that.
Makes sense! With timeout=None
defaulting to ten seconds or something.
I think fixed by https://github.com/pschanely/hypothesis-crosshair/commit/dd7d1aeb8714fa7cd34e14fd71b495464a2c0473 (was #23), will reopen if I see it again 🙂
20 did indeed fix the ~dozens of
returning a symbolic type
errors that I was getting before, but in a few rare cases it looks like that's uncovered a new failure mode: this CI job has three tests failing withI'm not really sure what we should do here. Maybe we should have a known exception to indicate that the current test case can't be realized so that Hypothesis can skip it as if for
assume(False)
? (raised/caught here) Increasing the timeout will only make the problem less common rather than fixing it, but at the cost of rather slow tests. Maybe that - or removing it entirely - is worth it though?