Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions scripts/notebook_tools/tests/test_check_output_failure_text.py
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,40 @@ def test_declared_banner_replacing_a_base_render_still_fires():
assert not got["DECLARED_FALLBACK"]


def test_declared_fallback_kept_when_base_output_echoes_before_failing():
"""Faux 0 -> 1 mesure sur #19697 : le repli execute son chemin normal AVANT
d'echouer, donc sa sortie de base porte des lignes d'echo (« Inpainting:
'...' », soumission du workflow) qui la rendent ``substantial`` au sens
textuel. Ce cas est le seul qui atteint ``_in_fallback`` avec un verdict
True : ``test_declared_fallback_kept_when_base_was_already_in_fallback``
(base = banniere seule) sort par ``_substantial_output`` des la premiere
condition, sans jamais lire ``_in_fallback``."""
out = "graphe: 2 noeuds, 1 arete\n" + BANNER_OUT
base = {"cells": [id_cell("c-gv", GRAPHVIZ_SRC, stream(out))]}
head = {"cells": [id_cell("c-gv", GRAPHVIZ_SRC, stream(out))]}

got = scan(head, base_nb=base)

assert not got["TOOL_FAILURE"]
assert len(got["DECLARED_FALLBACK"]) == 1


def test_declared_banner_over_an_echoing_head_still_fires_when_base_rendered():
"""Le pendant du test precedent, et la raison pour laquelle la decision se
prend sur la BASE : la base RENDAIT (aucun repli), la tete n'imprime plus
que ses lignes d'echo puis la banniere. L'echo rend la sortie de tete
``substantial`` au sens textuel -- une condition qui exigerait que la tete
ait perdu sa substance laisserait donc passer la perte de rendu."""
out = "graphe: 2 noeuds, 1 arete\n" + BANNER_OUT
base = {"cells": [id_cell("c-gv", GRAPHVIZ_SRC, RENDER)]}
head = {"cells": [id_cell("c-gv", GRAPHVIZ_SRC, stream(out))]}

got = scan(head, base_nb=base)

assert len(got["TOOL_FAILURE"]) == 1, "un rendu perdu doit continuer a gater"
assert not got["DECLARED_FALLBACK"]


def test_declared_fallback_kept_when_base_was_already_in_fallback():
base = {"cells": [id_cell("c-gv", GRAPHVIZ_SRC, stream(BANNER_OUT))]}
head = {"cells": [id_cell("c-gv", GRAPHVIZ_SRC, stream(BANNER_OUT))]}
Expand Down
Loading