From 7649c37fadfc39f8d51f91d96b0bca43186c40b0 Mon Sep 17 00:00:00 2001 From: kzangeli Date: Thu, 28 May 2026 23:38:59 +0200 Subject: [PATCH] HttpCtrl: install the vendored 0.3.1 fork + align D011_02_exc stub URL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `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. 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.) This doesn't flip D011_02_exc_01 itself — a second-order Link-header / context issue remains, tracked separately in the doubts file — but it lets the matcher reach the stub and lets 8-10 other distop tests newly reach end-to-end for triage. --- .../Consumption/Entity/QueryEntities/D011_02_exc.robot | 7 ++++++- requirements.txt | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_02_exc.robot b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_02_exc.robot index 798d5b71..2f6167e2 100644 --- a/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_02_exc.robot +++ b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_02_exc.robot @@ -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} diff --git a/requirements.txt b/requirements.txt index 6e633ac2..7e771792 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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 -- GitLab