From 0ec2e1d1df0aacdc497bff9f2059a3caf09095ab Mon Sep 17 00:00:00 2001 From: Julien Perrochet Date: Tue, 15 Oct 2024 12:45:57 +0200 Subject: [PATCH] [uss_qualifier] oir_simple: accepted oir can be detached from explicit subscription --- .../astm/utm/dss/oir_explicit_sub_handling.md | 8 ++++ .../astm/utm/dss/oir_explicit_sub_handling.py | 42 +++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/oir_explicit_sub_handling.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/oir_explicit_sub_handling.md index 87305dce52..ffc7ecc84e 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/oir_explicit_sub_handling.md +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/oir_explicit_sub_handling.md @@ -128,6 +128,14 @@ it is in violation of **[astm.f3548.v21.DSS0005,1](../../../../requirements/astm ### [OIR is attached to expected subscription test step](./fragments/oir/oir_has_expected_subscription.md) +## Remove explicit subscription from OIR test case + +Checks that an OIR in the ACCEPTED state that is attached to an explicit subscription can be mutated in order to not be attached to any subscription. + +### [Remove explicit subscription from OIR test step](./fragments/oir/crud/update_query.md) + +### [OIR is not attached to any subscription test step](./fragments/oir/oir_has_no_subscription.md) + ## Cleanup ### [Cleanup OIRs test step](./clean_workspace_op_intents.md) diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/oir_explicit_sub_handling.py b/monitoring/uss_qualifier/scenarios/astm/utm/dss/oir_explicit_sub_handling.py index 526dcaf115..d9a82f9ca0 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/oir_explicit_sub_handling.py +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/oir_explicit_sub_handling.py @@ -153,8 +153,50 @@ def run(self, context: ExecutionContext): self._step_update_oir_with_sufficient_explicit_sub(is_replacement=False) self._step_oir_has_correct_subscription(expected_sub_id=self._extra_sub_id) self.end_test_case() + + self.begin_test_case("Remove explicit subscription from OIR") + self._step_remove_subscription_from_oir() + self._step_oir_has_correct_subscription(expected_sub_id=None) + self.end_test_case() + self.end_test_scenario() + def _step_remove_subscription_from_oir(self): + self.begin_test_step("Remove explicit subscription from OIR") + oir_update_params = self._planning_area.get_new_operational_intent_ref_params( + key=[], + state=OperationalIntentState.Accepted, + uss_base_url=self._planning_area.get_base_url(), + time_start=self._current_oir.time_start.value.datetime, + time_end=self._current_oir.time_end.value.datetime, + subscription_id=None, + ) + with self.check( + "Mutate operational intent reference query succeeds", + self._pid, + ) as check: + try: + mutated_oir, _, q = self._dss.put_op_intent( + extents=oir_update_params.extents, + key=oir_update_params.key, + state=oir_update_params.state, + base_url=oir_update_params.uss_base_url, + oi_id=self._oir_id, + subscription_id=None, + ovn=self._current_oir.ovn, + force_no_implicit_subscription=True, + ) + self.record_query(q) + self._current_oir = mutated_oir + except QueryError as qe: + self.record_queries(qe.queries) + check.record_failed( + summary="Removal of explicit subscription from OIR failed", + details=f"Was expecting an HTTP 200 response for a mutation with valid parameters, but got {qe.cause_status_code} instead. {qe.msg}", + query_timestamps=qe.query_timestamps, + ) + self.end_test_step() + def _step_create_explicit_sub(self): self._sub_params = self._planning_area.get_new_subscription_params( subscription_id=self._sub_id,