fix: lowercase boolean URL params (local=true, deleteAll=true)
NGSI-LD § 4 (URL parameter conventions) and RFC 3986 § 6.2.2.1 both
specify that URL parameter values are case-sensitive. The spec uses
the literal lowercase tokens true and false throughout.
Nine call sites across eight tests passed local=${True} (or
${true}) — Robot Framework's ${True}/${true} is Python's True,
which the requests library serializes as the string "True"
(capital T) in URL parameters. Plus one deleteAll=${true} in
046_22_08. Brokers that strictly enforce the spec's case-sensitive
convention correctly reject this as 400 BadRequestData ("'local' must be 'true' or 'false' (lowercase); got 'True'"); the affected
tests were never reaching their intended assertions.
This MR replaces all nine occurrences with the literal lowercase
true.
Affected tests
| File | Param |
|---|---|
046_22_08.robot |
deleteAll=true on DELETE attrs |
D010_01_exc.robot |
local=true (setup Create Entity) |
D010_02_exc.robot |
local=true (main retrieve + setup) |
D010_02_red.robot |
local=true (main retrieve) |
D002_01_exc.robot |
local=true (setup) |
D002_02_exc.robot |
local=true (setup) |
D003_02_exc.robot |
local=true (setup) |
D004_01_exc.robot |
local=true (setup) |
Verified on swBroker (a strict-case broker)
| Test | Before | After |
|---|---|---|
046_22_08 |
FAIL 400 | PASS ✓ |
D010_02_red |
FAIL 400 | PASS ✓ |
D010_02_exc |
FAIL | PASS ✓ |
D002_01_exc |
FAIL | PASS ✓ |
D010_01_exc |
FAIL | FAIL '0 > 0' should be true (stub never called) |
D002_02_exc |
FAIL | FAIL Setup 201 != 409 (expects pre-existing entity) |
D003_02_exc |
FAIL | FAIL Timeout: request was not received
|
D004_01_exc |
FAIL | FAIL 204 != 400 (broker accepts what test expected rejected) |
The remaining four tests now fail at strictly later errors —
none show the parseBool 400 anymore. They expose unrelated
test-side or broker-logic issues that the case-sensitivity
rejection had been masking; those will be addressed independently.
Spec angle
Per § 4: URL parameter values are case-sensitive. Brokers that
accept True / TRUE are forgiving beyond what the spec mandates.
The conformance test suite should send the spec form to test what
the spec actually requires.
Documented as testsuite-doubts.md #81 (closed) (in a parallel MR queue).