Page MenuHomeSoftware Heritage

Jenkins > .tox.py3.lib.python3.7.site-packages.swh.web.tests.browse.views.test_origin::Tests / Python tests / test_origin_empty_snapshot_null_revision
Failed

TEST RESULT

Run At
Mar 3 2021, 10:02 AM
Details
self = <hypothesis.core.StateForActualGivenExecution object at 0x7fdbe137a940> data = ConjectureData(INTERESTING, 8 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: > result = self.execute_once(data) .tox/py3/lib/python3.7/site-packages/hypothesis/core.py:676: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <hypothesis.core.StateForActualGivenExecution object at 0x7fdbe137a940> data = ConjectureData(INTERESTING, 8 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() # We need to make sure to print these in the # argument order for Python 2 and older versions # of Python 3.5. In modern versions this isn't # an issue because kwargs is ordered. arg_order = { v: i for i, v in enumerate( getfullargspec(self.test).args ) } for i, (k, v) in enumerate( sorted( kwargs.items(), key=lambda t: ( arg_order.get(t[0], float("inf")), t[0], ), ) ): 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:631: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 8 bytes, frozen) function = <function StateForActualGivenExecution.execute_once.<locals>.run at 0x7fdbe285a0d0> def default_new_style_executor(data, function): > return function(data) .tox/py3/lib/python3.7/site-packages/hypothesis/executors.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 8 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:571: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ConjectureData(INTERESTING, 8 bytes, frozen) strategy = WithRunner(TupleStrategy((just(()), fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(l...])[0] is None)}).map(lambda args: dict(args, **kwargs)))), runner=<django.test.client.Client object at 0x7fdbe137af98>) 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:887: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = WithRunner(TupleStrategy((just(()), fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(l...])[0] is None)}).map(lambda args: dict(args, **kwargs)))), runner=<django.test.client.Client object at 0x7fdbe137af98>) data = ConjectureData(INTERESTING, 8 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:218: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = TupleStrategy((just(()), fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None)}).map(lambda args: dict(args, **kwargs)))) data = ConjectureData(INTERESTING, 8 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 0x7fdbe39da828> > 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, 8 bytes, frozen) strategy = fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None)}).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:883: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None)}).map(lambda args: dict(args, **kwargs)) data = ConjectureData(INTERESTING, 8 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:780: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ConjectureData(INTERESTING, 8 bytes, frozen) strategy = fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None)}) 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:883: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = fixed_dictionaries({'new_origin': builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None)}) data = ConjectureData(INTERESTING, 8 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, 8 bytes, frozen) strategy = FixedKeysDictStrategy(('new_origin',), TupleStrategy((builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None),))) 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:883: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = FixedKeysDictStrategy(('new_origin',), TupleStrategy((builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None),))) data = ConjectureData(INTERESTING, 8 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:780: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ConjectureData(INTERESTING, 8 bytes, frozen) strategy = TupleStrategy((builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None),)) label = 14795672415743474082 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:883: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = TupleStrategy((builds(dict, url=urls()).map(from_dict).filter(lambda origin: get_tests_data()["storage"].origin_get([origin.url])[0] is None),)) data = ConjectureData(INTERESTING, 8 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 0x7fdbe39dad68> > 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, 8 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:883: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 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, 8 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:887: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = builds(dict, url=urls()).map(from_dict) data = ConjectureData(INTERESTING, 8 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:352: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 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, 8 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) if self.condition(value): data.stop_example() return value else: > data.stop_example(discard=True) .tox/py3/lib/python3.7/site-packages/hypothesis/strategies/_internal/strategies.py:908: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ConjectureData(INTERESTING, 8 bytes, frozen), discard = True def stop_example(self, discard=False): if self.frozen: return if discard: self.has_discards = True self.depth -= 1 assert self.depth >= -1 self.__example_record.stop_example(discard) labels_for_structure = self.labels_for_structure_stack.pop() if not discard: if self.labels_for_structure_stack: self.labels_for_structure_stack[-1].update(labels_for_structure) else: self.tags.update([structural_coverage(l) for l in labels_for_structure]) if discard: # Once we've discarded an example, every test case starting with # this prefix contains discards. We prune the tree at that point so # as to avoid future test cases bothering with this region, on the # assumption that some example that you could have used instead # there would *not* trigger the discard. This greatly speeds up # test case generation in some cases, because it allows us to # ignore large swathes of the search space that are effectively # redundant. # # A scenario that can cause us problems but which we deliberately # have decided not to support is that if there are side effects # during data generation then you may end up with a scenario where # every good test case generates a discard because the discarded # section sets up important things for later. This is not terribly # likely and all that you see in this case is some degradation in # quality of testing, so we don't worry about it. # # Note that killing the branch does *not* mean we will never # explore below this point, and in particular we may do so during # shrinking. Any explicit request for a data object that starts # with the branch here will work just fine, but novel prefix # generation will avoid it, and we can use it to detect when we # have explored the entire tree (up to redundancy). > self.observer.kill_branch() .tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:949: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <hypothesis.internal.conjecture.datatree.TreeRecordingObserver object at 0x7fdbe3fcbc18> def kill_branch(self): """Mark this part of the tree as not worth re-exploring.""" if self.killed: return self.killed = True if self.__index_in_current_node < len(self.__current_node.values) or ( self.__current_node.transition is not None and not isinstance(self.__current_node.transition, Killed) ): > inconsistent_generation() .tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/datatree.py:389: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 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:36: Flaky During handling of the above exception, another exception occurred: client = <django.test.client.Client object at 0x7fdbe137af98> archive_data = <swh.web.tests.conftest._ArchiveData object at 0x7fdbe4be9c18> @given(new_origin()) > def test_origin_empty_snapshot_null_revision(client, archive_data, new_origin): .tox/py3/lib/python3.7/site-packages/swh/web/tests/browse/views/test_origin.py:702: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .tox/py3/lib/python3.7/site-packages/hypothesis/core.py:722: in _execute_once_for_engine data.mark_interesting(get_interesting_origin(e)) .tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:1055: in mark_interesting self.conclude_test(Status.INTERESTING, interesting_origin) .tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:1051: in conclude_test self.freeze() .tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/data.py:979: in freeze self.observer.conclude_test(self.status, self.interesting_origin) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <hypothesis.internal.conjecture.datatree.TreeRecordingObserver object at 0x7fdbe3fcbc18> status = Status.INTERESTING interesting_origin = (<class 'hypothesis.errors.Flaky'>, '/var/lib/jenkins/workspace/DWAPPS/tests-on-diff/.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/datatree.py', 36, ()) def conclude_test(self, status, interesting_origin): """Says that ``status`` occurred at node ``node``. This updates the node if necessary and checks for consistency.""" if status == Status.OVERRUN: return i = self.__index_in_current_node node = self.__current_node if i < len(node.values) or isinstance(node.transition, Branch): inconsistent_generation() new_transition = conclusion(status, interesting_origin) if node.transition is not None and node.transition != new_transition: # As an, I'm afraid, horrible bodge, we deliberately ignore flakiness # where tests go from interesting to valid, because it's much easier # to produce good error messages for these further up the stack. if isinstance(node.transition, Conclusion) and ( node.transition.status != Status.INTERESTING or new_transition.status != Status.VALID ): raise Flaky( "Inconsistent test results! Test case was %r on first run but %r on second" > % (node.transition, new_transition) ) E hypothesis.errors.Flaky: Inconsistent test results! Test case was Conclusion(status=Status.INTERESTING, interesting_origin=(<class 'AssertionError'>, '/var/lib/jenkins/workspace/DWAPPS/tests-on-diff/.tox/py3/lib/python3.7/site-packages/swh/web/tests/utils.py', 32, ())) on first run but Conclusion(status=Status.INTERESTING, interesting_origin=(<class 'hypothesis.errors.Flaky'>, '/var/lib/jenkins/workspace/DWAPPS/tests-on-diff/.tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/datatree.py', 36, ())) on second .tox/py3/lib/python3.7/site-packages/hypothesis/internal/conjecture/datatree.py:422: Flaky