Problem
The same concept — "a live graph of another language, to prove this backend refuses it" — is spelled two ways:
| suite |
variable |
tests/analysis/java/test_java_schema_probe.py |
CLDK_TEST_PYTHON_NEO4J_URI / _USER / _PASSWORD |
tests/analysis/typescript/test_typescript_refuses_python_graph_live.py |
CLDK_TEST_NEO4J_PYTHON_URI / _USER / _PASSWORD |
PYTHON_NEO4J in one, NEO4J_PYTHON in the other. Setting the wrong one is silent: the module skips, and a skip reads as a pass.
Why it matters more than a papercut
Found by running the Java suite with what I believed was every gate satisfied, seeing two skips remain, and only then noticing the transposition. The whole point of #360 was that a silently skipped module hid five legs of rot; a variable name that is nearly right is the same failure mode in miniature.
Scope boundary
In scope: one spelling, both suites, and the skip reason quoting the variable it actually reads.
Out of scope: the CLDK_TEST_NEO4J_* (read-only) and CLDK_TEST_NEO4J_WRITE_* (disposable) families, which are consistent and whose separation is deliberate (#324).
Goals
Definition of done
- Setting one documented set of variables satisfies the cross-language refusal gate in every suite that has one.
Problem
The same concept — "a live graph of another language, to prove this backend refuses it" — is spelled two ways:
tests/analysis/java/test_java_schema_probe.pyCLDK_TEST_PYTHON_NEO4J_URI/_USER/_PASSWORDtests/analysis/typescript/test_typescript_refuses_python_graph_live.pyCLDK_TEST_NEO4J_PYTHON_URI/_USER/_PASSWORDPYTHON_NEO4Jin one,NEO4J_PYTHONin the other. Setting the wrong one is silent: the module skips, and a skip reads as a pass.Why it matters more than a papercut
Found by running the Java suite with what I believed was every gate satisfied, seeing two skips remain, and only then noticing the transposition. The whole point of #360 was that a silently skipped module hid five legs of rot; a variable name that is nearly right is the same failure mode in miniature.
Scope boundary
In scope: one spelling, both suites, and the skip reason quoting the variable it actually reads.
Out of scope: the
CLDK_TEST_NEO4J_*(read-only) andCLDK_TEST_NEO4J_WRITE_*(disposable) families, which are consistent and whose separation is deliberate (#324).Goals
pytest_terminal_summaryhook from Write-gated Neo4j parity modules have been skipped through every leg; all ten tests now fail against current behaviour #360 reports this gate too, alongside the write-gated oneDefinition of done