A rule must say when it applies; the ledger says what was read, not what was shown #162
@@ -149,16 +149,29 @@ def test_shortening_a_line_does_not_decide_what_it_says_about_holding():
|
|||||||
precisely because the session may no longer HOLD what it was told — and
|
precisely because the session may no longer HOLD what it was told — and
|
||||||
the tail is the entire difference a reader can act on.
|
the tail is the entire difference a reader can act on.
|
||||||
|
|
||||||
`compact` and `seen` are independent axes. How much room a line gets is a
|
`compact` and the ledger are independent axes. How much room a line gets is
|
||||||
fact about its rank; whether the session holds it is a fact about the
|
a fact about its rank; what the session holds is a fact about the ledger;
|
||||||
ledger; and neither may be allowed to answer the other's question.
|
and neither may be allowed to answer the other's question.
|
||||||
|
|
||||||
|
THREE STATES SINCE #4100, so this checks three. The axis grew and the test
|
||||||
|
grew with it — pinning only two would leave the compact branch free to
|
||||||
|
collapse the new middle state into either neighbour, which is the same
|
||||||
|
regression this was written for with one more place to hide.
|
||||||
"""
|
"""
|
||||||
rule = fake_rule(id=4, title="dev is home", when_to_apply=_TRIGGER)
|
rule = fake_rule(id=4, title="dev is home", when_to_apply=_TRIGGER)
|
||||||
seen = _rule_hint_line(rule, where="here", seen=True, compact=True)
|
|
||||||
fresh = _rule_hint_line(rule, where="here", seen=False, compact=True)
|
fresh = _rule_hint_line(rule, where="here", seen=False, compact=True)
|
||||||
assert seen != fresh
|
named = _rule_hint_line(rule, where="here", seen=True, compact=True)
|
||||||
assert "no longer hold it" in seen
|
held = _rule_hint_line(rule, where="here", seen=True, held=True, compact=True)
|
||||||
|
|
||||||
|
assert len({fresh, named, held}) == 3, (
|
||||||
|
"the compact branch collapsed two holding states into one line"
|
||||||
|
)
|
||||||
assert "not in this session's loaded set" in fresh
|
assert "not in this session's loaded set" in fresh
|
||||||
|
assert "not opened" in named
|
||||||
|
assert "no longer hold it" in held
|
||||||
|
# The claim that most needs to survive shortening: a line the session never
|
||||||
|
# opened must not imply it did, however little room the line was given.
|
||||||
|
assert "no longer hold it" not in named
|
||||||
|
|
||||||
|
|
||||||
def test_a_compact_line_is_materially_shorter_than_a_full_one():
|
def test_a_compact_line_is_materially_shorter_than_a_full_one():
|
||||||
|
|||||||
Reference in New Issue
Block a user