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).

Merge request reports

Loading
+1 −1
Changes for TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_22_08.robot: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ ${entity_expectation_file_path}= entity-deleted-name-attribute-instance-n
    ...    entityId=${entity_id}
    ...    attributeId=name
    ...    datasetId=${EMPTY}
    ...    deleteAll=${true}
    ...    deleteAll=true
    ...    context=${ngsild_test_suite_context}
    Check Response Status Code    204    ${response.status_code}

+1 −1
Changes for TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_01_exc.robot: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ Create Entity And Registration On The Context Broker And Start Context Source Mo
        ${entity_id}=    Generate Random Vehicle Entity Id
        Set Suite Variable   ${entity_id}

        ${response}=    Create Entity    ${entity_payload_filename}    ${entity_id}    local=${True}
        ${response}=    Create Entity    ${entity_payload_filename}    ${entity_id}    local=true
        Check Response Status Code    201    ${response.status_code}

        ${registration_id}=    Generate Random CSR Id
+2 −2
Changes for TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_02_exc.robot: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ D010_02_exc Query Context Broker And Retrieve Entity By Id
    ${entity_speed}=    Load Entity    ${entity_speed_filename}    ${entity_id}
    Set Stub Reply    GET    /broker1/ngsi-ld/v1/entities/${entity_id}    200    ${entity_speed}

    ${response}=    Retrieve Entity    ${entity_id}    context=${ngsild_test_suite_context}    local=${True}
    ${response}=    Retrieve Entity    ${entity_id}    context=${ngsild_test_suite_context}    local=true
    Dictionary Should Not Contain Key    ${response.json()}    speed
    
*** Keywords ***
@@ -36,7 +36,7 @@ Create Entity And Registration On The Context Broker And Start Context Source Mo
        ${entity_id}=    Generate Random Vehicle Entity Id
        Set Suite Variable   ${entity_id}

        ${response}=    Create Entity    ${entity_payload_filename}    ${entity_id}    local=${True}
        ${response}=    Create Entity    ${entity_payload_filename}    ${entity_id}    local=true
        Check Response Status Code    201    ${response.status_code}

        ${registration_id}=    Generate Random CSR Id
+1 −1
Changes for TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_02_red.robot: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ D010_02_red Query Context Broker And Retrieve Entity By Id
    ${response}=    Retrieve Entity
    ...    ${entity_id}
    ...    context=${ngsild_test_suite_context}
    ...    local=${true}
    ...    local=true
    Check Response Status Code    404    ${response.status_code}

    ${stub_count}=    Get Stub Count    GET    /broker1/ngsi-ld/v1/entities/${entity_id}
+1 −1
Changes for TP/NGSI-LD/DistributedOperations/Provision/Entities/DeleteEntity/D002_01_exc.robot: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ Create Entity And Registration On The Context Broker And Start Context Source Mo
    ${entity_id}=    Generate Random Vehicle Entity Id
    Set Suite Variable    ${entity_id}

    ${response}=    Create Entity    ${entity_payload_filename}    ${entity_id}    local=${True}
    ${response}=    Create Entity    ${entity_payload_filename}    ${entity_id}    local=true
    Check Response Status Code    201    ${response.status_code}

    ${registration_id}=    Generate Random CSR Id
Loading
Loading