HttpCtrl: install the vendored 0.3.1 fork + align D011_02_exc stub URL

requirements.txt was pinning upstream robotframework-httpctrl==0.3.3, which ships a stub matcher that requires the criteria URL to exactly equal the stub URL. That defeats every distop test where the broker appends spec-mandated parameters (pick=…&sysAttrs=true&…) to the forwarded URL — see testsuite-doubts.md #22 (closed). The vendored fork at libraries/robotframework-httpctrl/ is 0.3.1 with a distop-aware substring matcher; it's been orphaned (nothing installed it) since the requirements bump.

  • requirements.txt: switch the pin to -e ./libraries/robotframework-httpctrl/ so the local fork actually runs.
  • D011_02_exc.robot: the stub URL hardcoded the deprecated attrs=speed query param. Spec § 5 says attrs is a synonym for pick + q and is deprecated; the broker forwards with the canonical pick=. Switched the stub to pick=speed so the new substring matcher reaches it. (Even with the new matcher, the original attrs= token wasn't a substring of the broker's pick=… URL.)
  • testsuite-doubts.md #76 (closed): documents a second-order finding surfaced by the above two changes — when the mock now correctly serves the stub body, the broker still drops the CSR's speed from the merged response because HttpCtrl can't add a Link header and the broker falls back to default-core context (different IRI from the local entity's). Two-sided issue; broker-side fix needs spec review.

Together these two changes don't flip D011_02_exc_01 itself (waiting on #76 (closed)), but a full ETSI re-run shows ~8 cascade-timeout tests flipping to pass (the matcher upgrade) plus 8-10 other distop tests newly reaching end-to-end and surfacing the same #76 (closed) pattern for triage.

Merge request reports

Loading
+6 −1
Changes for TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_02_exc.robot: 6 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -60,7 +60,12 @@ Setup Registration And Context Source Mock Server And Query The Context Broker W
    @{entities_id}=    Create List    ${entity_id}

    IF    '${method}' == 'GET'
        Set Stub Reply    ${method}    ${url}?type=Vehicle&id=${entity_id}&attrs=speed    200    ${serialized_entity}
        # Broker forwards with `pick=…` (spec § 5: `attrs` is deprecated and
        # is a synonym for `pick` + `q`). HttpCtrl's stub matcher substring-
        # checks each stub-param name+value against the criteria query
        # string, so the stub must use the canonical `pick=`. See
        # testsuite-doubts.md #22.
        Set Stub Reply    ${method}    ${url}?type=Vehicle&pick=speed    200    ${serialized_entity}
        ${response2}=    Query Entities    entity_types=Vehicle    context=${ngsild_test_suite_context}
    ELSE IF    '${method}' == 'POST'
        Set Stub Reply    ${method}    ${url}    200    ${serialized_entity}
+4 −1
Changes for requirements.txt: 4 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -5,6 +5,9 @@ robotframework-requests==0.9.7
deepdiff==8.6.1
prettydiff==0.1.0
paho-mqtt==1.6.1
robotframework-httpctrl==0.3.3
# Vendored fork at libraries/robotframework-httpctrl/: 0.3.1 base with the
# distop-aware substring stub-URL matcher upstream 0.3.3 ships without
# (see testsuite-doubts.md #22).
-e ./libraries/robotframework-httpctrl/
robotframework-robocop==7.2.0
robotframework-mqttlibrary==0.7.1.post3
Loading