self = <hypothesis.core.StateForActualGivenExecution object at 0x7f87af33ad30>
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def _execute_once_for_engine(self, data):
"""Wrapper around ``execute_once`` that intercepts test failure
exceptions and single-test control exceptions, and turns them into
appropriate method calls to `data` instead.
This allows the engine to assume that any exception other than
``StopTest`` must be a fatal error, and should stop the entire engine.
"""
try:
trace = frozenset()
if (
self.failed_normally
and Phase.explain in self.settings.phases
and sys.gettrace() is None
and not PYPY
): # pragma: no cover
# This is in fact covered by our *non-coverage* tests, but due to the
# settrace() contention *not* by our coverage tests. Ah well.
tracer = Tracer()
try:
sys.settrace(tracer.trace)
result = self.execute_once(data)
if data.status == Status.VALID:
self.explain_traces[None].add(frozenset(tracer.branches))
finally:
sys.settrace(None)
trace = frozenset(tracer.branches)
else:
> result = self.execute_once(data)
.tox/py3/lib/python3.7/site-packages/hypothesis/core.py:683:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <hypothesis.core.StateForActualGivenExecution object at 0x7f87af33ad30>
data = ConjectureData(INTERESTING, 29 bytes, frozen), print_example = False
is_final = False, expected_failure = None
def execute_once(
self, data, print_example=False, is_final=False, expected_failure=None
):
"""Run the test function once, using ``data`` as input.
If the test raises an exception, it will propagate through to the
caller of this method. Depending on its type, this could represent
an ordinary test failure, or a fatal error, or a control exception.
If this method returns normally, the test might have passed, or
it might have placed ``data`` in an unsuccessful state and then
swallowed the corresponding control exception.
"""
data.is_find = self.is_find
text_repr = [None]
if self.settings.deadline is None:
test = self.test
else:
@proxies(self.test)
def test(*args, **kwargs):
self.__test_runtime = None
initial_draws = len(data.draw_times)
start = time.perf_counter()
result = self.test(*args, **kwargs)
finish = time.perf_counter()
internal_draw_time = sum(data.draw_times[initial_draws:])
runtime = datetime.timedelta(
seconds=finish - start - internal_draw_time
)
self.__test_runtime = runtime
current_deadline = self.settings.deadline
if not is_final:
current_deadline = (current_deadline // 4) * 5
if runtime >= current_deadline:
raise DeadlineExceeded(runtime, self.settings.deadline)
return result
def run(data):
# Set up dynamic context needed by a single test run.
with local_settings(self.settings):
with deterministic_PRNG():
with BuildContext(data, is_final=is_final):
# Generate all arguments to the test function.
args, kwargs = data.draw(self.search_strategy)
if expected_failure is not None:
text_repr[0] = arg_string(test, args, kwargs)
if print_example or current_verbosity() >= Verbosity.verbose:
output = StringIO()
printer = RepresentationPrinter(output)
if print_example:
printer.text("Falsifying example:")
else:
printer.text("Trying example:")
if self.print_given_args:
printer.text(" ")
printer.text(test.__name__)
with printer.group(indent=4, open="(", close=""):
printer.break_()
for v in args:
printer.pretty(v)
# We add a comma unconditionally because
# generated arguments will always be kwargs,
# so there will always be more to come.
printer.text(",")
printer.breakable()
for i, (k, v) in enumerate(kwargs.items()):
printer.text(k)
printer.text("=")
printer.pretty(v)
printer.text(",")
if i + 1 < len(kwargs):
printer.breakable()
printer.break_()
printer.text(")")
printer.flush()
report(output.getvalue())
return test(*args, **kwargs)
# Run the test function once, via the executor hook.
# In most cases this will delegate straight to `run(data)`.
> result = self.test_runner(data, run)
.tox/py3/lib/python3.7/site-packages/hypothesis/core.py:619:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
data = ConjectureData(INTERESTING, 29 bytes, frozen)
function = <function StateForActualGivenExecution.execute_once.<locals>.run at 0x7f87af0f19d8>
def default_new_style_executor(data, function):
> return function(data)
.tox/py3/lib/python3.7/site-packages/hypothesis/executors.py:52:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def run(data):
# Set up dynamic context needed by a single test run.
with local_settings(self.settings):
with deterministic_PRNG():
with BuildContext(data, is_final=is_final):
# Generate all arguments to the test function.
> args, kwargs = data.draw(self.search_strategy)
.tox/py3/lib/python3.7/site-packages/hypothesis/core.py:578:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = WithRunner(TupleStrategy((just(()), fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(l...e).map(sorted)}).map(lambda args: dict(args, **kwargs)))), runner=<django.test.client.Client object at 0x7f87af33aa90>)
label = 12316132609319002662
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
return strategy.do_draw(self)
else:
strategy.validate()
try:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:888:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = WithRunner(TupleStrategy((just(()), fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(l...e).map(sorted)}).map(lambda args: dict(args, **kwargs)))), runner=<django.test.client.Client object at 0x7f87af33aa90>)
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data):
data.hypothesis_runner = self.runner
> return self.mapped_strategy.do_draw(data)
.tox/py3/lib/python3.7/site-packages/hypothesis/core.py:223:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = TupleStrategy((just(()), fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origi...0), timezones=timezones()), max_size=8, min_size=2, unique=True).map(sorted)}).map(lambda args: dict(args, **kwargs))))
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data):
> return tuple(data.draw(e) for e in self.element_strategies)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/collections.py:59:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.0 = <tuple_iterator object at 0x7f87af2204e0>
> return tuple(data.draw(e) for e in self.element_strategies)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/collections.py:59:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["stor..., 0), timezones=timezones()), max_size=8, min_size=2, unique=True).map(sorted)}).map(lambda args: dict(args, **kwargs))
label = 10700208128082112041
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["stor..., 0), timezones=timezones()), max_size=8, min_size=2, unique=True).map(sorted)}).map(lambda args: dict(args, **kwargs))
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data: ConjectureData) -> Ex:
for _ in range(3):
i = data.index
try:
data.start_example(MAPPED_SEARCH_STRATEGY_DO_DRAW_LABEL)
> result = self.pack(data.draw(self.mapped_strategy))
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/strategies.py:790:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["stor...value=datetime.datetime(2018, 12, 31, 0, 0), timezones=timezones()), max_size=8, min_size=2, unique=True).map(sorted)})
label = 12000696373305623442
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["stor...value=datetime.datetime(2018, 12, 31, 0, 0), timezones=timezones()), max_size=8, min_size=2, unique=True).map(sorted)})
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data):
> return data.draw(self.wrapped_strategy)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/lazy.py:168:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = FixedKeysDictStrategy(('new_origin', 'new_snapshot', 'revisions', 'visit_dates'), TupleStrategy((builds(dict, url=urls...alue=datetime.datetime(2018, 12, 31, 0, 0), timezones=timezones()), max_size=8, min_size=2, unique=True).map(sorted))))
label = 12000696373305623442
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = FixedKeysDictStrategy(('new_origin', 'new_snapshot', 'revisions', 'visit_dates'), TupleStrategy((builds(dict, url=urls...alue=datetime.datetime(2018, 12, 31, 0, 0), timezones=timezones()), max_size=8, min_size=2, unique=True).map(sorted))))
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data: ConjectureData) -> Ex:
for _ in range(3):
i = data.index
try:
data.start_example(MAPPED_SEARCH_STRATEGY_DO_DRAW_LABEL)
> result = self.pack(data.draw(self.mapped_strategy))
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/strategies.py:790:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = TupleStrategy((builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([o...value=datetime.datetime(2018, 12, 31, 0, 0), timezones=timezones()), max_size=8, min_size=2, unique=True).map(sorted)))
label = 18281766219730363439
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = TupleStrategy((builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([o...value=datetime.datetime(2018, 12, 31, 0, 0), timezones=timezones()), max_size=8, min_size=2, unique=True).map(sorted)))
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data):
> return tuple(data.draw(e) for e in self.element_strategies)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/collections.py:59:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.0 = <tuple_iterator object at 0x7f87af2205f8>
> return tuple(data.draw(e) for e in self.element_strategies)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/collections.py:59:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None)
label = 10358930435738099914
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None)
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data: ConjectureData) -> Ex:
result = self.filtered_strategy.do_filtered_draw(
> data=data, filter_strategy=self
)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/strategies.py:897:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = builds(dict, url=urls()).map(from_dict)
data = ConjectureData(INTERESTING, 29 bytes, frozen)
filter_strategy = builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None)
def do_filtered_draw(self, data, filter_strategy):
# Hook for strategies that want to override the behaviour of
# FilteredStrategy. Most strategies don't, so by default we delegate
# straight back to the default filtered-draw implementation.
> return filter_strategy.default_do_filtered_draw(data)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/strategies.py:362:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None)
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def default_do_filtered_draw(self, data):
for i in range(3):
start_index = data.index
data.start_example(FILTERED_SEARCH_STRATEGY_DO_DRAW_LABEL)
> value = data.draw(self.filtered_strategy)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/strategies.py:913:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = builds(dict, url=urls()).map(from_dict), label = 10700208128082112041
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = builds(dict, url=urls()).map(from_dict)
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data: ConjectureData) -> Ex:
for _ in range(3):
i = data.index
try:
data.start_example(MAPPED_SEARCH_STRATEGY_DO_DRAW_LABEL)
> result = self.pack(data.draw(self.mapped_strategy))
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/strategies.py:790:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = builds(dict, url=urls()), label = 6111981869288412008
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = builds(dict, url=urls())
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data):
> return data.draw(self.wrapped_strategy)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/lazy.py:168:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = <hypothesis.strategies._internal.core.BuildsStrategy object at 0x7f87af33a908>
label = 6111981869288412008
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <hypothesis.strategies._internal.core.BuildsStrategy object at 0x7f87af33a908>
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data):
try:
return self.target(
*[data.draw(a) for a in self.args],
> **{k: data.draw(v) for k, v in self.kwargs.items()},
)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/core.py:756:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.0 = <dict_itemiterator object at 0x7f87aeffaf48>
> **{k: data.draw(v) for k, v in self.kwargs.items()},
)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/core.py:756:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = <hypothesis.strategies._internal.core.CompositeStrategy object at 0x7f87af33ac18>
label = 1946211324807467550
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <hypothesis.strategies._internal.core.CompositeStrategy object at 0x7f87af33ac18>
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data):
> return self.definition(data.draw, *self.args, **self.kwargs)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/core.py:1367:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
draw = <bound method ConjectureData.draw of ConjectureData(INTERESTING, 29 bytes, frozen)>
@composite
def urls(draw):
> protocol = draw(sampled_from(["git", "http", "https", "deb"]))
.tox/py3/lib/python3.7/site-packages/swh/model/hypothesis_strategies.py:90:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen)
strategy = sampled_from(['git', 'http', 'https', 'deb'])
label = 2435039915453465539
def draw(self, strategy, label=None):
if self.is_find and not strategy.supports_find:
raise InvalidArgument(
(
"Cannot use strategy %r within a call to find (presumably "
"because it would be invalid after the call had ended)."
)
% (strategy,)
)
at_top_level = self.depth == 0
if at_top_level:
# We start this timer early, because accessing attributes on a LazyStrategy
# can be almost arbitrarily slow. In cases like characters() and text()
# where we cache something expensive, this led to Flaky deadline errors!
# See https://github.com/HypothesisWorks/hypothesis/issues/2108
start_time = time.perf_counter()
strategy.validate()
if strategy.is_empty:
self.mark_invalid()
if self.depth >= MAX_DEPTH:
self.mark_invalid()
if label is None:
label = strategy.label
self.start_example(label=label)
try:
if not at_top_level:
> return strategy.do_draw(self)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = sampled_from(['git', 'http', 'https', 'deb'])
data = ConjectureData(INTERESTING, 29 bytes, frozen)
def do_draw(self, data):
> result = self.do_filtered_draw(data, self)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/strategies.py:491:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = sampled_from(['git', 'http', 'https', 'deb'])
data = ConjectureData(INTERESTING, 29 bytes, frozen)
filter_strategy = sampled_from(['git', 'http', 'https', 'deb'])
def do_filtered_draw(self, data, filter_strategy):
# Set of indices that have been tried so far, so that we never test
# the same element twice during a draw.
known_bad_indices = set()
# If we're being called via FilteredStrategy, the filter_strategy argument
# might have additional conditions we have to fulfill.
if isinstance(filter_strategy, FilteredStrategy):
conditions = filter_strategy.flat_conditions
else:
conditions = ()
# Start with ordinary rejection sampling. It's fast if it works, and
# if it doesn't work then it was only a small amount of overhead.
for _ in range(3):
> i = cu.integer_range(data, 0, len(self.elements) - 1)
.tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/strategies.py:515:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
data = ConjectureData(INTERESTING, 29 bytes, frozen), lower = 0, upper = 3
center = 0
def integer_range(data, lower, upper, center=None):
assert lower <= upper
if lower == upper:
# Write a value even when this is trivial so that when a bound depends
# on other values we don't suddenly disappear when the gap shrinks to
# zero - if that happens then often the data stream becomes misaligned
# and we fail to shrink in cases where we really should be able to.
data.draw_bits(1, forced=0)
return int(lower)
if center is None:
center = lower
center = min(max(center, lower), upper)
if center == upper:
above = False
elif center == lower:
above = True
else:
above = boolean(data)
if above:
gap = upper - center
else:
gap = center - lower
assert gap > 0
bits = bit_length(gap)
probe = gap + 1
if bits > 24 and data.draw_bits(3):
# For large ranges, we combine the uniform random distribution from draw_bits
# with the weighting scheme used by WideRangeIntStrategy with moderate chance.
# Cutoff at 2 ** 24 so unicode choice is uniform but 32bit distribution is not.
idx = Sampler([4.0, 8.0, 1.0, 1.0, 0.5]).sample(data)
sizes = [8, 16, 32, 64, 128]
bits = min(bits, sizes[idx])
while probe > gap:
data.start_example(INTEGER_RANGE_DRAW_LABEL)
> probe = data.draw_bits(bits)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/utils.py:101:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = ConjectureData(INTERESTING, 29 bytes, frozen), n = 2
def draw_bits(self, n, *, forced=None):
"""Return an ``n``-bit integer from the underlying source of
bytes. If ``forced`` is set to an integer will instead
ignore the underlying source and simulate a draw as if it had
returned that integer."""
self.__assert_not_frozen("draw_bits")
if n == 0:
return 0
assert n > 0
n_bytes = bits_to_bytes(n)
self.__check_capacity(n_bytes)
if forced is not None:
buf = int_to_bytes(forced, n_bytes)
elif self.__bytes_drawn < len(self.__prefix):
index = self.__bytes_drawn
buf = self.__prefix[index : index + n_bytes]
if len(buf) < n_bytes:
buf += uniform(self.__random, n_bytes - len(buf))
else:
buf = uniform(self.__random, n_bytes)
buf = bytearray(buf)
self.__bytes_drawn += n_bytes
assert len(buf) == n_bytes
# If we have a number of bits that is not a multiple of 8
# we have to mask off the high bits.
buf[0] &= BYTE_MASKS[n % 8]
buf = bytes(buf)
result = int_from_bytes(buf)
> self.observer.draw_bits(n, forced is not None, result)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:1014:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <hypothesis.internal.conjecture.datatree.TreeRecordingObserver object at 0x7f87af220048>
n_bits = 2, forced = False, value = 1
def draw_bits(self, n_bits, forced, value):
i = self.__index_in_current_node
self.__index_in_current_node += 1
node = self.__current_node
assert len(node.bit_lengths) == len(node.values)
if i < len(node.bit_lengths):
if n_bits != node.bit_lengths[i]:
> inconsistent_generation()
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/datatree.py:328:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def inconsistent_generation():
raise Flaky(
> "Inconsistent data generation! Data generation behaved differently "
"between different runs. Is your data generation depending on external "
"state?"
)
E hypothesis.errors.Flaky: Inconsistent data generation! Data generation behaved differently between different runs. Is your data generation depending on external state?
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/datatree.py:35: Flaky
During handling of the above exception, another exception occurred:
client = <django.test.client.Client object at 0x7f87af33aa90>
archive_data = <swh.web.tests.conftest._ArchiveData object at 0x7f87b0e89f28>
@given(
> new_origin(),
new_snapshot(min_size=4, max_size=4),
visit_dates(),
revisions(min_size=3, max_size=3),
)
def test_origin_snapshot_null_branch(
client, archive_data, new_origin, new_snapshot, visit_dates, revisions
):
.tox/py3/lib/python3.7/site-packages/swh/web/tests/browse/views/test_origin.py:440:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/py3/lib/python3.7/site-packages/hypothesis/core.py:735: in _execute_once_for_engine
data.mark_interesting(interesting_origin)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:1056: in mark_interesting
self.conclude_test(Status.INTERESTING, interesting_origin)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:1052: in conclude_test
self.freeze()
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:980: in freeze
self.observer.conclude_test(self.status, self.interesting_origin)
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/datatree.py:399: in conclude_test
inconsistent_generation()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def inconsistent_generation():
raise Flaky(
> "Inconsistent data generation! Data generation behaved differently "
"between different runs. Is your data generation depending on external "
"state?"
)
E hypothesis.errors.Flaky: Inconsistent data generation! Data generation behaved differently between different runs. Is your data generation depending on external state?
.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/datatree.py:35: Flaky
TEST RESULT
TEST RESULT
- Run At
- Mar 10 2021, 11:39 AM