Skip to content

Commit f6736dc

Browse files
committed
docs(tck): separate "answers the question" from "satisfies the capability"
The note explaining why this deviation names no capability said @numeric-coercion is "a neighbouring question -- whether 0.5 satisfies an integer request -- and this provider satisfies it". True of the question and false of the capability: the SDK's in-memory provider refuses 0.5, which is the answer the lossy row wants, and fails both lossless rows, which is why neither self-test declares the tag. Left as it stood, that sentence reads as a provider satisfying a capability it withholds -- and it sits two files from the notes that now explain, following spec@045950ca, which withholdings the appendix still calls right. This one is: a provider that does not attempt the coercion at all, passing the lossy row by rejecting every float, which is the shortcut the lossless rows exist to catch. The boolean-as-Integer gap this entry is actually about is a third thing again, mandatory and ungated, which is what it names no capability for. Signed-off-by: Simon Schrottner <simon.schrottner@flagsmith.com>
1 parent 898582f commit f6736dc

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

‎tools/openfeature-tck/tests/conftest.py‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,18 @@
4848
No ``capability``: the scenario carries no capability tag, because returning the
4949
code default on a type mismatch is mandatory. ``@numeric-coercion`` is a
5050
neighbouring question -- whether 0.5 satisfies an integer request -- and this
51-
provider satisfies it, so attributing the deviation there would be wrong twice
52-
over.
51+
provider answers *that* one the way the tag asks, by refusing it, so attributing
52+
the deviation there would be wrong twice over.
53+
54+
Which is not the same as satisfying the capability, and the distinction matters
55+
now that Appendix F has corrected its note on it. The tag is withheld here
56+
because this provider does not coerce at all: it passes the lossy row by
57+
rejecting every float, which is the shortcut the two lossless rows exist to
58+
catch, and it fails both of those. That is the withholding the appendix still
59+
calls right -- a provider that cannot attempt the behaviour -- rather than the
60+
one it now rules out, where a provider attempts it and gets a direction wrong.
61+
The boolean-as-Integer gap is a third thing again: mandatory, ungated, and the
62+
reason this entry names no capability.
5363
"""
5464

5565

0 commit comments

Comments
 (0)