From edc5841bb478b13a4e842b2592c83ccb9fae59a2 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 12 Mar 2026 21:05:43 +0000 Subject: [PATCH 1/5] Fixed Kafka K8s service name --- deploy/tfs.sh | 2 +- manifests/kafka/single-node.yaml | 6 +++--- .../tests/gnmi_oc/test_integration_GnmiOCcollector.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deploy/tfs.sh b/deploy/tfs.sh index cd27f903c..e11717394 100755 --- a/deploy/tfs.sh +++ b/deploy/tfs.sh @@ -133,7 +133,7 @@ kubectl create secret generic crdb-data --namespace ${TFS_K8S_NAMESPACE} --type= printf "\n" echo ">>> Create Secret with Apache Kafka..." -KFK_SERVER_PORT=$(kubectl --namespace ${KFK_NAMESPACE} get service kafka-public -o 'jsonpath={.spec.ports[0].port}') +KFK_SERVER_PORT=$(kubectl --namespace ${KFK_NAMESPACE} get service kafka-service -o 'jsonpath={.spec.ports[0].port}') kubectl create secret generic kfk-kpi-data --namespace ${TFS_K8S_NAMESPACE} --type='Opaque' \ --from-literal=KFK_NAMESPACE=${KFK_NAMESPACE} \ --from-literal=KFK_SERVER_PORT=${KFK_SERVER_PORT} diff --git a/manifests/kafka/single-node.yaml b/manifests/kafka/single-node.yaml index 85ab01f21..6eb9bd03c 100644 --- a/manifests/kafka/single-node.yaml +++ b/manifests/kafka/single-node.yaml @@ -15,7 +15,7 @@ apiVersion: v1 kind: Service metadata: - name: kafka-public + name: kafka-service labels: app.kubernetes.io/component: message-broker app.kubernetes.io/instance: kafka @@ -50,7 +50,7 @@ spec: app.kubernetes.io/component: message-broker app.kubernetes.io/instance: kafka app.kubernetes.io/name: kafka - serviceName: "kafka-public" + serviceName: "kafka-service" replicas: 1 minReadySeconds: 5 template: @@ -83,7 +83,7 @@ spec: - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP value: "PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT" - name: KAFKA_CFG_ADVERTISED_LISTENERS - value: "PLAINTEXT://kafka-public.kafka.svc.cluster.local:9092,EXTERNAL://localhost:9094" + value: "PLAINTEXT://kafka-service.kafka.svc.cluster.local:9092,EXTERNAL://localhost:9094" - name: KAFKA_CFG_CONTROLLER_LISTENER_NAMES value: "CONTROLLER" - name: KAFKA_CFG_CONTROLLER_QUORUM_VOTERS diff --git a/src/telemetry/backend/tests/gnmi_oc/test_integration_GnmiOCcollector.py b/src/telemetry/backend/tests/gnmi_oc/test_integration_GnmiOCcollector.py index 3efb84621..6543c8743 100644 --- a/src/telemetry/backend/tests/gnmi_oc/test_integration_GnmiOCcollector.py +++ b/src/telemetry/backend/tests/gnmi_oc/test_integration_GnmiOCcollector.py @@ -164,7 +164,7 @@ def telemetry_backend_service(): # + Uncomment test_add_to_topology() in helper methods section to add a device. # - A KPI Descriptor must be added in KPI DB with correct device_id. # + Uncomment test_SetKpiDescriptor() in helper methods section to add a KPI Descriptor. - # - Kafka should be exposed externally 'kubectl port-forward -n kafka service/kafka-public 9094:9094'. + # - Kafka should be exposed externally 'kubectl port-forward -n kafka service/kafka-service 9094:9094'. def test_helper_get_collector_by_kpi_id(kpi_manager_client, context_client): LOGGER.info("Testing get_collector_by_kpi_id...") -- GitLab From cb9050b24278a256e6ec5bc668bef1bf77507b79 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 12 Mar 2026 21:06:04 +0000 Subject: [PATCH 2/5] Policy component: - Removed deprecated symbolic link --- src/policy/src/main/proto/policy_condition.proto | 1 - 1 file changed, 1 deletion(-) delete mode 120000 src/policy/src/main/proto/policy_condition.proto diff --git a/src/policy/src/main/proto/policy_condition.proto b/src/policy/src/main/proto/policy_condition.proto deleted file mode 120000 index 31f7d9d10..000000000 --- a/src/policy/src/main/proto/policy_condition.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/policy_condition.proto \ No newline at end of file -- GitLab From 0cda865036bd00eb082ce41a94a179321e23e8d1 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 12 Mar 2026 21:51:32 +0000 Subject: [PATCH 3/5] Common - Tools - Object Factory: - Updated PolicyRule composers --- src/common/tools/object_factory/PolicyRule.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/common/tools/object_factory/PolicyRule.py b/src/common/tools/object_factory/PolicyRule.py index 7622cedb7..371fc816d 100644 --- a/src/common/tools/object_factory/PolicyRule.py +++ b/src/common/tools/object_factory/PolicyRule.py @@ -22,19 +22,23 @@ def json_policyrule_id(policyrule_uuid : str) -> Dict: return {'uuid': {'uuid': policyrule_uuid}} def json_policyrule( - policyrule_uuid : str, policy_priority : int = 1, policy_kpi_id : str = '', - policy_state : PolicyRuleStateEnum = PolicyRuleStateEnum.POLICY_UNDEFINED, policy_state_message : str = '', - action_list : List[Dict] = [], service_id : Optional[Dict] = None, device_id_list : List[Dict] = [] + policyrule_uuid : str, + state : PolicyRuleStateEnum = PolicyRuleStateEnum.POLICY_UNDEFINED, state_message : str = '', + priority : int = 1, action_list : List[Dict] = [], list_kpi_id : List[str] = list(), + service_id : Optional[Dict] = None, device_id_list : List[Dict] = [] ) -> Dict: basic = { 'policyRuleId': json_policyrule_id(policyrule_uuid), 'policyRuleState': { - 'policyRuleState': policy_state, - 'policyRuleStateMessage': policy_state_message, + 'policyRuleState': state, + 'policyRuleStateMessage': state_message, }, - 'priority': policy_priority, - 'kpiId': {'kpi_id': {'uuid': policy_kpi_id}}, + 'policyRulePriority': priority, 'actionList': action_list, + 'policyRuleKpiList': [ + {'policyRuleKpiUuid': {'uuid': kpi_id}} + for kpi_id in list_kpi_id + ], } result = {} -- GitLab From 05f3775e25caf1e4038f908bdf2ab8ad5e3899c2 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 12 Mar 2026 21:52:31 +0000 Subject: [PATCH 4/5] Context component: - Updated PolicyRule models - Fixed PolicyRule unit tests --- src/context/service/database/PolicyRule.py | 34 +++++++++++-------- .../database/models/PolicyRuleModel.py | 22 ++++++++---- src/context/tests/Objects.py | 2 +- src/context/tests/test_policy.py | 34 ++++++++++++------- 4 files changed, 58 insertions(+), 34 deletions(-) diff --git a/src/context/service/database/PolicyRule.py b/src/context/service/database/PolicyRule.py index 3a02e187e..e488ac614 100644 --- a/src/context/service/database/PolicyRule.py +++ b/src/context/service/database/PolicyRule.py @@ -82,18 +82,22 @@ def policyrule_set(db_engine : Engine, messagebroker : MessageBroker, request : 'actionList': json_policyrule_basic.get('actionList', []), }, sort_keys=True) + policyrule_list_kpi_id = [ + kpi_id.policyRuleKpiUuid.uuid for kpi_id in policyrule_basic.policyRuleKpiList + ] + now = datetime.datetime.now(datetime.timezone.utc) policyrule_data = [{ - 'policyrule_uuid' : policyrule_uuid, - 'policyrule_kind' : policyrule_kind, - 'policyrule_state' : policyrule_state, - 'policyrule_state_msg': policyrule_state_msg, - 'policyrule_priority' : policyrule_basic.priority, - 'policyrule_kpi_id' : policyrule_basic.kpiId.kpi_id.uuid, - 'policyrule_eca_data' : policyrule_eca_data, - 'created_at' : now, - 'updated_at' : now, + 'policyrule_uuid' : policyrule_uuid, + 'policyrule_kind' : policyrule_kind, + 'policyrule_state' : policyrule_state, + 'policyrule_state_msg' : policyrule_state_msg, + 'policyrule_priority' : policyrule_basic.policyRulePriority, + 'policyrule_list_kpi_id' : policyrule_list_kpi_id, + 'policyrule_eca_data' : policyrule_eca_data, + 'created_at' : now, + 'updated_at' : now, }] policyrule_service_uuid = None @@ -117,12 +121,12 @@ def policyrule_set(db_engine : Engine, messagebroker : MessageBroker, request : stmt = stmt.on_conflict_do_update( index_elements=[PolicyRuleModel.policyrule_uuid], set_=dict( - policyrule_state = stmt.excluded.policyrule_state, - policyrule_state_msg = stmt.excluded.policyrule_state_msg, - policyrule_priority = stmt.excluded.policyrule_priority, - policyrule_kpi_id = stmt.excluded.policyrule_kpi_id, - policyrule_eca_data = stmt.excluded.policyrule_eca_data, - updated_at = stmt.excluded.updated_at, + policyrule_state = stmt.excluded.policyrule_state, + policyrule_state_msg = stmt.excluded.policyrule_state_msg, + policyrule_priority = stmt.excluded.policyrule_priority, + policyrule_list_kpi_id = stmt.excluded.policyrule_list_kpi_id, + policyrule_eca_data = stmt.excluded.policyrule_eca_data, + updated_at = stmt.excluded.updated_at, ) ) stmt = stmt.returning(PolicyRuleModel.created_at, PolicyRuleModel.updated_at) diff --git a/src/context/service/database/models/PolicyRuleModel.py b/src/context/service/database/models/PolicyRuleModel.py index 4f6ead280..f8ead47dc 100644 --- a/src/context/service/database/models/PolicyRuleModel.py +++ b/src/context/service/database/models/PolicyRuleModel.py @@ -14,7 +14,7 @@ import enum, json from sqlalchemy import CheckConstraint, Column, DateTime, Enum, ForeignKey, Integer, String -from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.dialects.postgresql import ARRAY, UUID from sqlalchemy.orm import relationship from typing import Dict from .enums.PolicyRuleState import ORM_PolicyRuleStateEnum @@ -33,7 +33,7 @@ class PolicyRuleModel(_Base): policyrule_state = Column(Enum(ORM_PolicyRuleStateEnum), nullable=False) policyrule_state_msg = Column(String, nullable=False) policyrule_priority = Column(Integer, nullable=False) - policyrule_kpi_id = Column(String, nullable=False) + policyrule_list_kpi_id = Column(ARRAY(String, dimensions=1), nullable=False) policyrule_service_uuid = Column(ForeignKey('service.service_uuid', ondelete='RESTRICT'), nullable=True, index=True) policyrule_eca_data = Column(String, nullable=False) created_at = Column(DateTime, nullable=False) @@ -50,20 +50,30 @@ class PolicyRuleModel(_Base): return {'uuid': {'uuid': self.policyrule_uuid}} def dump(self) -> Dict: - # Load JSON-encoded Event-Condition-Action (ECA) model data and populate with policy basic details + # Load JSON-encoded Event-Condition-Action (ECA) model data policyrule_basic = json.loads(self.policyrule_eca_data) + + # Populate policy rule basic details policyrule_basic.update({ 'policyRuleId': self.dump_id(), 'policyRuleState': { 'policyRuleState': self.policyrule_state.value, 'policyRuleStateMessage': self.policyrule_state_msg, }, - 'priority': self.policyrule_priority, - 'kpiId': {'kpi_id': {'uuid': self.policyrule_kpi_id}}, + 'policyRulePriority': self.policyrule_priority, + 'policyRuleKpiList': [ + {'policyRuleKpiUuid': {'uuid': kpi_id}} + for kpi_id in self.policyrule_list_kpi_id + ] }) + + # Compose final Policy Rule result = { 'policyRuleBasic': policyrule_basic, - 'deviceList': [{'device_uuid': {'uuid': pr_d.device_uuid}} for pr_d in self.policyrule_devices], + 'deviceList': [ + {'device_uuid': {'uuid': pr_d.device_uuid}} + for pr_d in self.policyrule_devices + ], } if self.policyrule_kind == PolicyRuleKindEnum.SERVICE: result['serviceId'] = self.policyrule_service.dump_id() diff --git a/src/context/tests/Objects.py b/src/context/tests/Objects.py index 2e7852548..63155ca7d 100644 --- a/src/context/tests/Objects.py +++ b/src/context/tests/Objects.py @@ -186,4 +186,4 @@ CONNECTION_R1_R3_NAME, CONNECTION_R1_R3_ID, CONNECTION_R1_R3 = compose_connectio # ----- PolicyRule ------------------------------------------------------------------------------------------------------- POLICYRULE_NAME = 'my-device-policy' POLICYRULE_ID = json_policyrule_id(POLICYRULE_NAME) -POLICYRULE = json_policyrule(POLICYRULE_NAME, policy_priority=1, policy_kpi_id='my-kpi-id') +POLICYRULE = json_policyrule(POLICYRULE_NAME, priority=1, list_kpi_id=['my-kpi-id-1']) diff --git a/src/context/tests/test_policy.py b/src/context/tests/test_policy.py index 45592308c..65b097bb0 100644 --- a/src/context/tests/test_policy.py +++ b/src/context/tests/test_policy.py @@ -45,9 +45,11 @@ def test_policy(context_client : ContextClient): # ----- Get when the object exists --------------------------------------------------------------------------------- response = context_client.GetPolicyRule(PolicyRuleId(**POLICYRULE_ID)) - assert response.device.policyRuleBasic.policyRuleId.uuid.uuid == policyrule_uuid - assert response.device.policyRuleBasic.priority == 1 - assert response.device.policyRuleBasic.kpiId.kpi_id.uuid == 'my-kpi-id' + policy_basic = response.device.policyRuleBasic + assert policy_basic.policyRuleId.uuid.uuid == policyrule_uuid + assert policy_basic.policyRulePriority == 1 + assert len(policy_basic.policyRuleKpiList) == 1 + assert policy_basic.policyRuleKpiList[0].policyRuleKpiUuid.uuid == 'my-kpi-id-1' # ----- List when the object exists -------------------------------------------------------------------------------- response = context_client.ListPolicyRuleIds(Empty()) @@ -56,16 +58,21 @@ def test_policy(context_client : ContextClient): response = context_client.ListPolicyRules(Empty()) assert len(response.policyRules) == 1 - assert response.policyRules[0].device.policyRuleBasic.policyRuleId.uuid.uuid == policyrule_uuid - assert response.policyRules[0].device.policyRuleBasic.priority == 1 - assert response.policyRules[0].device.policyRuleBasic.kpiId.kpi_id.uuid == 'my-kpi-id' + policy_basic = response.policyRules[0].device.policyRuleBasic + assert policy_basic.policyRuleId.uuid.uuid == policyrule_uuid + assert policy_basic.policyRulePriority == 1 + assert len(policy_basic.policyRuleKpiList) == 1 + assert policy_basic.policyRuleKpiList[0].policyRuleKpiUuid.uuid == 'my-kpi-id-1' # ----- Update the object ------------------------------------------------------------------------------------------ new_policy_priority = 100 - new_policy_kpi_id = 'new-kpi-id' + new_policy_list_kpi_id = ['my-kpi-id-1', 'my-kpi-id-2'] POLICYRULE_UPDATED = copy.deepcopy(POLICYRULE) - POLICYRULE_UPDATED['device']['policyRuleBasic']['priority'] = new_policy_priority - POLICYRULE_UPDATED['device']['policyRuleBasic']['kpiId']['kpi_id']['uuid'] = new_policy_kpi_id + POLICYRULE_UPDATED['device']['policyRuleBasic']['policyRulePriority'] = new_policy_priority + POLICYRULE_UPDATED['device']['policyRuleBasic']['policyRuleKpiList'] = [ + {'policyRuleKpiUuid': {'uuid': kpi_id}} + for kpi_id in new_policy_list_kpi_id + ] response = context_client.SetPolicyRule(PolicyRule(**POLICYRULE_UPDATED)) assert response.uuid.uuid == policyrule_uuid @@ -80,9 +87,12 @@ def test_policy(context_client : ContextClient): response = context_client.ListPolicyRules(Empty()) assert len(response.policyRules) == 1 - assert response.policyRules[0].device.policyRuleBasic.policyRuleId.uuid.uuid == policyrule_uuid - assert response.policyRules[0].device.policyRuleBasic.priority == new_policy_priority - assert response.policyRules[0].device.policyRuleBasic.kpiId.kpi_id.uuid == new_policy_kpi_id + policy_basic = response.policyRules[0].device.policyRuleBasic + assert policy_basic.policyRuleId.uuid.uuid == policyrule_uuid + assert policy_basic.policyRulePriority == new_policy_priority + assert len(policy_basic.policyRuleKpiList) == 2 + for i,kpi_id in enumerate(new_policy_list_kpi_id): + assert policy_basic.policyRuleKpiList[i].policyRuleKpiUuid.uuid == kpi_id # ----- Remove the object ------------------------------------------------------------------------------------------ context_client.RemovePolicyRule(PolicyRuleId(**POLICYRULE_ID)) -- GitLab From a4f5eca6d90b46acb7528126c8cd3b6ff0b94bff Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 13 Mar 2026 14:16:04 +0000 Subject: [PATCH 5/5] Tests: - Removed generic src/tests/Fixtures.py - Propagated as needed the fixtures to per-test Fixtures.py files --- src/service/tests/qkd/Fixtures.py | 31 ++++++++++++ src/service/tests/qkd/__init__.py | 13 +++++ .../tests/qkd/test_functional_bootstrap.py | 18 +++++-- src/tests/acl_end2end/tests/test_cleanup.py | 10 +++- .../acl_end2end/tests/test_onboarding.py | 14 ++++-- src/tests/{ => automation}/Fixtures.py | 19 ++++---- .../automation/test_functional_automation.py | 38 +++++++++------ src/tests/benchmark/policy/tests/Fixtures.py | 29 ++++++++++- .../policy/tests/test_functional_bootstrap.py | 10 +++- .../policy/tests/test_functional_cleanup.py | 10 +++- .../tests/test_functional_create_service.py | 7 ++- .../tests/test_functional_delete_service.py | 5 +- src/tests/benchmark/ztp/tests/Fixtures.py | 29 ++++++++++- .../ztp/tests/test_functional_bootstrap.py | 18 ++++--- .../ztp/tests/test_functional_cleanup.py | 14 ++++-- src/tests/ecoc22/tests/Fixtures.py | 21 +++++++- .../ecoc22/tests/test_functional_bootstrap.py | 14 ++++-- .../ecoc22/tests/test_functional_cleanup.py | 10 +++- .../tests/test_functional_create_service.py | 5 +- .../tests/test_functional_delete_service.py | 5 +- src/tests/eucnc24/tests/test_cleanup.py | 10 +++- src/tests/eucnc24/tests/test_onboarding.py | 14 ++++-- .../eucnc24/tests/test_service_ietf_create.py | 9 ++-- .../eucnc24/tests/test_service_ietf_remove.py | 9 ++-- .../eucnc24/tests/test_service_tfs_create.py | 13 +++-- .../eucnc24/tests/test_service_tfs_remove.py | 9 +++- .../l2_vpn_gnmi_oc/tests/test_cleanup.py | 10 +++- .../l2_vpn_gnmi_oc/tests/test_onboarding.py | 14 ++++-- .../tests/test_service_ietf_create.py | 9 ++-- .../tests/test_service_ietf_remove.py | 9 ++-- .../tests/test_service_tfs_create.py | 13 +++-- .../tests/test_service_tfs_remove.py | 9 +++- src/tests/ofc22/tests/Fixtures.py | 29 ++++++++++- .../ofc22/tests/test_functional_bootstrap.py | 14 ++++-- .../ofc22/tests/test_functional_cleanup.py | 10 +++- .../tests/test_functional_create_service.py | 7 ++- .../tests/test_functional_delete_service.py | 5 +- src/tests/ofc24/tests/Fixtures.py | 39 +++++++++++++++ .../ofc24/tests/test_functional_bootstrap.py | 18 +++++-- .../ofc24/tests/test_functional_cleanup.py | 10 +++- .../test_functional_create_service_bidir.py | 14 ++++-- .../test_functional_create_service_unidir.py | 14 ++++-- .../test_functional_delete_service_bidir.py | 10 +++- .../test_functional_delete_service_unidir.py | 10 +++- .../tests/test_onboarding.py | 14 ++++-- .../tests/test_onboarding.py | 14 ++++-- src/tests/ofc25/tests/Fixtures.py | 39 +++++++++++++++ .../tests/test_functional_bootstrap_e2e.py | 18 +++++-- .../tests/test_functional_bootstrap_ip.py | 14 ++++-- .../tests/test_functional_bootstrap_opt.py | 14 ++++-- .../tests/test_functional_cleanup_e2e.py | 10 +++- .../ofc25/tests/test_functional_cleanup_ip.py | 10 +++- .../tests/test_functional_cleanup_opt.py | 10 +++- .../tests/test_functional_create_service.py | 14 ++++-- .../tests/test_functional_delete_service.py | 10 +++- .../p4-sd-fabric-sbi-connectivity/Fixtures.py | 39 +++++++++++++++ .../test_functional_bootstrap.py | 12 +++-- .../test_functional_cleanup.py | 11 ++++- .../test_functional_purge.py | 10 +++- .../test_functional_sbi_rules_deprovision.py | 11 ++++- .../test_functional_sbi_rules_provision.py | 11 ++++- .../tests-service/Fixtures.py | 39 +++++++++++++++ .../tests-service/__init__.py | 13 +++++ ...test_functional_service_deprovision_acl.py | 10 +++- ...test_functional_service_deprovision_int.py | 10 +++- .../test_functional_service_deprovision_l2.py | 10 +++- .../test_functional_service_deprovision_l3.py | 10 +++- .../test_functional_service_provision_acl.py | 10 +++- .../test_functional_service_provision_int.py | 12 +++-- .../test_functional_service_provision_l2.py | 10 +++- .../test_functional_service_provision_l3.py | 10 +++- .../tests-setup/Fixtures.py | 39 +++++++++++++++ .../tests-setup/__init__.py | 13 +++++ .../tests-setup/test_functional_bootstrap.py | 11 +++-- .../tests-setup/test_functional_cleanup.py | 10 +++- .../tests-setup/test_functional_purge.py | 10 +++- .../tests-service/Fixtures.py | 39 +++++++++++++++ .../tests-service/__init__.py | 13 +++++ ...test_functional_service_deprovision_upf.py | 10 +++- .../test_functional_service_provision_upf.py | 10 +++- .../tests-setup/Fixtures.py | 39 +++++++++++++++ .../tests-setup/__init__.py | 13 +++++ .../tests-setup/test_functional_bootstrap.py | 11 +++-- .../tests-setup/test_functional_cleanup.py | 12 +++-- .../tests-setup/test_functional_purge.py | 10 +++- .../qkd_end2end/tests/test_01_onboarding.py | 14 ++++-- .../qkd_end2end/tests/test_02_create_links.py | 15 ++++-- .../tests/test_03_create_external_app.py | 7 ++- .../tests/test_04_delete_external_app.py | 5 +- .../qkd_end2end/tests/test_05_delete_links.py | 8 ++-- .../qkd_end2end/tests/test_06_cleanup.py | 10 +++- src/tests/ryu-openflow/tests/test_cleanup.py | 6 ++- .../ryu-openflow/tests/test_onboarding.py | 12 +++-- .../tests/test_service_ietf_create_h1_h3.py | 9 ++-- .../tests/test_service_ietf_create_h2_h4.py | 9 ++-- .../tests/test_service_ietf_remove_h1_h3.py | 9 ++-- .../tests/test_service_ietf_remove_h2_h4.py | 9 ++-- .../scenario2/old_tests/tests/Fixtures.py | 48 ++++++++++++++----- .../tests/test_functional_bootstrap.py | 18 ++++--- .../tests/test_functional_cleanup.py | 14 ++++-- .../tests/test_functional_create_service.py | 23 +++++---- .../tests/test_functional_delete_service.py | 17 +++---- 102 files changed, 1229 insertions(+), 267 deletions(-) create mode 100644 src/service/tests/qkd/Fixtures.py create mode 100644 src/service/tests/qkd/__init__.py rename src/tests/{ => automation}/Fixtures.py (84%) create mode 100644 src/tests/ofc24/tests/Fixtures.py create mode 100644 src/tests/ofc25/tests/Fixtures.py create mode 100644 src/tests/p4-sd-fabric-sbi-connectivity/Fixtures.py create mode 100644 src/tests/p4-sd-fabric-svc-connectivity/tests-service/Fixtures.py create mode 100644 src/tests/p4-sd-fabric-svc-connectivity/tests-service/__init__.py create mode 100644 src/tests/p4-sd-fabric-svc-connectivity/tests-setup/Fixtures.py create mode 100644 src/tests/p4-sd-fabric-svc-connectivity/tests-setup/__init__.py create mode 100644 src/tests/p4-sd-fabric-svc-upf/tests-service/Fixtures.py create mode 100644 src/tests/p4-sd-fabric-svc-upf/tests-service/__init__.py create mode 100644 src/tests/p4-sd-fabric-svc-upf/tests-setup/Fixtures.py create mode 100644 src/tests/p4-sd-fabric-svc-upf/tests-setup/__init__.py diff --git a/src/service/tests/qkd/Fixtures.py b/src/service/tests/qkd/Fixtures.py new file mode 100644 index 000000000..507c13b48 --- /dev/null +++ b/src/service/tests/qkd/Fixtures.py @@ -0,0 +1,31 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient + + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() diff --git a/src/service/tests/qkd/__init__.py b/src/service/tests/qkd/__init__.py new file mode 100644 index 000000000..b53987a4e --- /dev/null +++ b/src/service/tests/qkd/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/src/service/tests/qkd/test_functional_bootstrap.py b/src/service/tests/qkd/test_functional_bootstrap.py index 80db786d7..e82e0d79a 100644 --- a/src/service/tests/qkd/test_functional_bootstrap.py +++ b/src/service/tests/qkd/test_functional_bootstrap.py @@ -12,14 +12,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, os, time, json, socket, re +import json, logging, os, re, socket, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) @@ -149,4 +157,4 @@ def test_qkd_devices_enabled( # Final check to ensure all devices are enabled print(f"Final device status: {num_devices_enabled}/{num_devices} devices enabled.") assert num_devices_enabled == num_devices - print("QKD devices enabled test completed.") \ No newline at end of file + print("QKD devices enabled test completed.") diff --git a/src/tests/acl_end2end/tests/test_cleanup.py b/src/tests/acl_end2end/tests/test_cleanup.py index 20afb5fe0..91d90e7b4 100644 --- a/src/tests/acl_end2end/tests/test_cleanup.py +++ b/src/tests/acl_end2end/tests/test_cleanup.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/acl_end2end/tests/test_onboarding.py b/src/tests/acl_end2end/tests/test_onboarding.py index 763d7da17..5d652e6f5 100644 --- a/src/tests/acl_end2end/tests/test_onboarding.py +++ b/src/tests/acl_end2end/tests/test_onboarding.py @@ -13,13 +13,21 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/Fixtures.py b/src/tests/automation/Fixtures.py similarity index 84% rename from src/tests/Fixtures.py rename to src/tests/automation/Fixtures.py index 9aa9a1c6a..40eb419f5 100644 --- a/src/tests/Fixtures.py +++ b/src/tests/automation/Fixtures.py @@ -1,4 +1,4 @@ -# Copyright 2022-2025 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,44 +13,41 @@ # limitations under the License. import pytest +from automation.client.AutomationClient import AutomationClient from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from e2e_orchestrator.client.E2EOrchestratorClient import E2EOrchestratorClient from kpi_manager.client.KpiManagerClient import KpiManagerClient from service.client.ServiceClient import ServiceClient -from automation.client.AutomationClient import AutomationClient -@pytest.fixture(scope='session') -def service_client(): - _client = ServiceClient() - yield _client - _client.close() - @pytest.fixture(scope='session') def context_client(): _client = ContextClient() yield _client _client.close() + @pytest.fixture(scope='session') def device_client(): _client = DeviceClient() yield _client _client.close() + @pytest.fixture(scope='session') -def e2eorchestrator_client(): - _client = E2EOrchestratorClient() +def service_client(): + _client = ServiceClient() yield _client _client.close() + @pytest.fixture(scope='session') def automation_client(): _client = AutomationClient() yield _client _client.close() + @pytest.fixture(scope='session') def kpi_manager_client(): _client = KpiManagerClient() diff --git a/src/tests/automation/test_functional_automation.py b/src/tests/automation/test_functional_automation.py index b4505931c..9f692bf01 100644 --- a/src/tests/automation/test_functional_automation.py +++ b/src/tests/automation/test_functional_automation.py @@ -12,27 +12,37 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json -import logging -import os -import uuid -from common.proto.analytics_frontend_pb2 import AnalyzerId, AnalyzerOperationMode -from common.proto.automation_pb2 import ZSMCreateRequest -from common.proto.context_pb2 import ContextId, ServiceId, ServiceStatusEnum, ServiceList -from common.proto.kpi_manager_pb2 import KpiId, KpiDescriptorList, KpiDescriptorFilter -from common.proto.policy_pb2 import PolicyRuleKpiId -from common.proto.policy_action_pb2 import PolicyRuleAction, PolicyRuleActionEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +import json, logging, os, uuid + from automation.client.AutomationClient import AutomationClient +from common.proto.analytics_frontend_pb2 import ( + AnalyzerId, AnalyzerOperationMode, +) +from common.proto.automation_pb2 import ZSMCreateRequest +from common.proto.context_pb2 import ( + ContextId, ServiceId, ServiceList, ServiceStatusEnum, +) +from common.proto.kpi_manager_pb2 import ( + KpiDescriptorFilter, KpiDescriptorList, KpiId, +) +from common.proto.policy_action_pb2 import ( + PolicyRuleAction, PolicyRuleActionEnum, +) +from common.proto.policy_pb2 import PolicyRuleKpiId, PolicyRuleStateEnum +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from kpi_manager.client.KpiManagerClient import KpiManagerClient -from common.proto.policy_pb2 import PolicyRuleStateEnum from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, \ - service_client, automation_client, kpi_manager_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( + automation_client, context_client, device_client, kpi_manager_client, + service_client, +) # pylint: disable=unused-import + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/benchmark/policy/tests/Fixtures.py b/src/tests/benchmark/policy/tests/Fixtures.py index b6e5d0d59..b1d338bd4 100644 --- a/src/tests/benchmark/policy/tests/Fixtures.py +++ b/src/tests/benchmark/policy/tests/Fixtures.py @@ -12,14 +12,41 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest, logging +import logging + +import pytest from common.Settings import get_setting +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from monitoring.client.MonitoringClient import MonitoringClient from tests.tools.mock_osm.Constants import WIM_PASSWORD, WIM_USERNAME from tests.tools.mock_osm.MockOSM import MockOSM from .Objects import WIM_MAPPING LOGGER = logging.getLogger(__name__) + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def monitoring_client(): + _client = MonitoringClient() + yield _client + _client.close() + + @pytest.fixture(scope='session') def osm_wim(): wim_url = 'http://{:s}:{:s}'.format( diff --git a/src/tests/benchmark/policy/tests/test_functional_bootstrap.py b/src/tests/benchmark/policy/tests/test_functional_bootstrap.py index c9711ddbd..a6ba495f4 100644 --- a/src/tests/benchmark/policy/tests/test_functional_bootstrap.py +++ b/src/tests/benchmark/policy/tests/test_functional_bootstrap.py @@ -13,15 +13,21 @@ # limitations under the License. import logging, time + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, Empty from common.proto.monitoring_pb2 import KpiDescriptorList -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from monitoring.client.MonitoringClient import MonitoringClient -from tests.Fixtures import context_client, device_client, monitoring_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, monitoring_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/benchmark/policy/tests/test_functional_cleanup.py b/src/tests/benchmark/policy/tests/test_functional_cleanup.py index 25632738e..b03b5a879 100644 --- a/src/tests/benchmark/policy/tests/test_functional_cleanup.py +++ b/src/tests/benchmark/policy/tests/test_functional_cleanup.py @@ -13,13 +13,19 @@ # limitations under the License. import logging + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/benchmark/policy/tests/test_functional_create_service.py b/src/tests/benchmark/policy/tests/test_functional_create_service.py index c1915938c..3b4c9ef12 100644 --- a/src/tests/benchmark/policy/tests/test_functional_create_service.py +++ b/src/tests/benchmark/policy/tests/test_functional_create_service.py @@ -13,6 +13,7 @@ # limitations under the License. import logging, random + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, Empty, ServiceTypeEnum from common.proto.kpi_sample_types_pb2 import KpiSampleType @@ -21,9 +22,11 @@ from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from monitoring.client.MonitoringClient import MonitoringClient -from tests.Fixtures import context_client, monitoring_client # pylint: disable=unused-import from tests.tools.mock_osm.MockOSM import MockOSM -from .Fixtures import osm_wim # pylint: disable=unused-import + +from .Fixtures import ( + context_client, monitoring_client, osm_wim, +) # pylint: disable=unused-import from .Objects import WIM_SERVICE_CONNECTION_POINTS, WIM_SERVICE_TYPE LOGGER = logging.getLogger(__name__) diff --git a/src/tests/benchmark/policy/tests/test_functional_delete_service.py b/src/tests/benchmark/policy/tests/test_functional_delete_service.py index 995fb808c..3d16daa74 100644 --- a/src/tests/benchmark/policy/tests/test_functional_delete_service.py +++ b/src/tests/benchmark/policy/tests/test_functional_delete_service.py @@ -13,15 +13,16 @@ # limitations under the License. import logging + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, ServiceTypeEnum from common.tools.descriptor.Loader import DescriptorLoader from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from tests.Fixtures import context_client # pylint: disable=unused-import from tests.tools.mock_osm.MockOSM import MockOSM -from .Fixtures import osm_wim # pylint: disable=unused-import + +from .Fixtures import context_client, osm_wim # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/benchmark/ztp/tests/Fixtures.py b/src/tests/benchmark/ztp/tests/Fixtures.py index b6e5d0d59..b1d338bd4 100644 --- a/src/tests/benchmark/ztp/tests/Fixtures.py +++ b/src/tests/benchmark/ztp/tests/Fixtures.py @@ -12,14 +12,41 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest, logging +import logging + +import pytest from common.Settings import get_setting +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from monitoring.client.MonitoringClient import MonitoringClient from tests.tools.mock_osm.Constants import WIM_PASSWORD, WIM_USERNAME from tests.tools.mock_osm.MockOSM import MockOSM from .Objects import WIM_MAPPING LOGGER = logging.getLogger(__name__) + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def monitoring_client(): + _client = MonitoringClient() + yield _client + _client.close() + + @pytest.fixture(scope='session') def osm_wim(): wim_url = 'http://{:s}:{:s}'.format( diff --git a/src/tests/benchmark/ztp/tests/test_functional_bootstrap.py b/src/tests/benchmark/ztp/tests/test_functional_bootstrap.py index 1067e9661..bc8f7bbe0 100644 --- a/src/tests/benchmark/ztp/tests/test_functional_bootstrap.py +++ b/src/tests/benchmark/ztp/tests/test_functional_bootstrap.py @@ -12,21 +12,27 @@ # See the License for the specific language governing permissions and # limitations under the License. -import copy, logging, pytest -from common.Settings import get_setting +import copy, logging + +import pytest + +from common.proto.context_pb2 import Context, ContextId, Device, Empty, Topology from common.proto.monitoring_pb2 import KpiDescriptorList +from common.Settings import get_setting from common.tests.EventTools import EVENT_CREATE, EVENT_UPDATE, check_events from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Device import json_device_id from common.tools.object_factory.Link import json_link_id from common.tools.object_factory.Topology import json_topology_id from context.client.ContextClient import ContextClient -from monitoring.client.MonitoringClient import MonitoringClient from context.client.EventsCollector import EventsCollector -from common.proto.context_pb2 import Context, ContextId, Device, Empty, Topology from device.client.DeviceClient import DeviceClient +from monitoring.client.MonitoringClient import MonitoringClient + +from .Fixtures import ( + context_client, device_client, monitoring_client, +) # pylint: disable=unused-import from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, TOPOLOGIES -from tests.Fixtures import context_client, device_client, monitoring_client LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) @@ -107,4 +113,4 @@ def test_links_created(context_client : ContextClient): # pylint: disable=redef assert len(response.topologies) == len(TOPOLOGIES) response = context_client.ListDevices(Empty()) - assert len(response.devices) == len(DEVICES) \ No newline at end of file + assert len(response.devices) == len(DEVICES) diff --git a/src/tests/benchmark/ztp/tests/test_functional_cleanup.py b/src/tests/benchmark/ztp/tests/test_functional_cleanup.py index 5938e37b8..d14ad4208 100644 --- a/src/tests/benchmark/ztp/tests/test_functional_cleanup.py +++ b/src/tests/benchmark/ztp/tests/test_functional_cleanup.py @@ -12,7 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, pytest +import logging + +import pytest + +from common.proto.context_pb2 import ( + ContextId, DeviceId, Empty, LinkId, TopologyId, +) from common.Settings import get_setting from common.tests.EventTools import EVENT_REMOVE, check_events from common.tools.object_factory.Context import json_context_id @@ -21,9 +27,11 @@ from common.tools.object_factory.Link import json_link_id from common.tools.object_factory.Topology import json_topology_id from context.client.ContextClient import ContextClient from context.client.EventsCollector import EventsCollector -from common.proto.context_pb2 import ContextId, DeviceId, Empty, LinkId, TopologyId from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, TOPOLOGIES LOGGER = logging.getLogger(__name__) diff --git a/src/tests/ecoc22/tests/Fixtures.py b/src/tests/ecoc22/tests/Fixtures.py index b6e5d0d59..25cfc3854 100644 --- a/src/tests/ecoc22/tests/Fixtures.py +++ b/src/tests/ecoc22/tests/Fixtures.py @@ -12,14 +12,33 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest, logging +import logging + +import pytest from common.Settings import get_setting +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient from tests.tools.mock_osm.Constants import WIM_PASSWORD, WIM_USERNAME from tests.tools.mock_osm.MockOSM import MockOSM from .Objects import WIM_MAPPING LOGGER = logging.getLogger(__name__) + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + @pytest.fixture(scope='session') def osm_wim(): wim_url = 'http://{:s}:{:s}'.format( diff --git a/src/tests/ecoc22/tests/test_functional_bootstrap.py b/src/tests/ecoc22/tests/test_functional_bootstrap.py index a72512a17..70fc6b489 100644 --- a/src/tests/ecoc22/tests/test_functional_bootstrap.py +++ b/src/tests/ecoc22/tests/test_functional_bootstrap.py @@ -13,13 +13,21 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ecoc22/tests/test_functional_cleanup.py b/src/tests/ecoc22/tests/test_functional_cleanup.py index 94217423d..a6d1edded 100644 --- a/src/tests/ecoc22/tests/test_functional_cleanup.py +++ b/src/tests/ecoc22/tests/test_functional_cleanup.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ecoc22/tests/test_functional_create_service.py b/src/tests/ecoc22/tests/test_functional_create_service.py index da411d433..e04d573cd 100644 --- a/src/tests/ecoc22/tests/test_functional_create_service.py +++ b/src/tests/ecoc22/tests/test_functional_create_service.py @@ -13,15 +13,16 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, ServiceTypeEnum from common.tools.descriptor.Loader import DescriptorLoader from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from tests.Fixtures import context_client # pylint: disable=unused-import from tests.tools.mock_osm.MockOSM import MockOSM -from .Fixtures import osm_wim # pylint: disable=unused-import + +from .Fixtures import context_client, osm_wim # pylint: disable=unused-import from .Objects import WIM_SERVICE_CONNECTION_POINTS, WIM_SERVICE_TYPE LOGGER = logging.getLogger(__name__) diff --git a/src/tests/ecoc22/tests/test_functional_delete_service.py b/src/tests/ecoc22/tests/test_functional_delete_service.py index 24463012e..550a42656 100644 --- a/src/tests/ecoc22/tests/test_functional_delete_service.py +++ b/src/tests/ecoc22/tests/test_functional_delete_service.py @@ -13,15 +13,16 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, ServiceTypeEnum from common.tools.descriptor.Loader import DescriptorLoader from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from tests.Fixtures import context_client # pylint: disable=unused-import from tests.tools.mock_osm.MockOSM import MockOSM -from .Fixtures import osm_wim # pylint: disable=unused-import + +from .Fixtures import context_client, osm_wim # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/eucnc24/tests/test_cleanup.py b/src/tests/eucnc24/tests/test_cleanup.py index 20afb5fe0..91d90e7b4 100644 --- a/src/tests/eucnc24/tests/test_cleanup.py +++ b/src/tests/eucnc24/tests/test_cleanup.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/eucnc24/tests/test_onboarding.py b/src/tests/eucnc24/tests/test_onboarding.py index 763d7da17..5d652e6f5 100644 --- a/src/tests/eucnc24/tests/test_onboarding.py +++ b/src/tests/eucnc24/tests/test_onboarding.py @@ -13,13 +13,21 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/eucnc24/tests/test_service_ietf_create.py b/src/tests/eucnc24/tests/test_service_ietf_create.py index c1d761f40..02ef43e28 100644 --- a/src/tests/eucnc24/tests/test_service_ietf_create.py +++ b/src/tests/eucnc24/tests/test_service_ietf_create.py @@ -13,14 +13,17 @@ # limitations under the License. import json, logging, os + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from .Fixtures import context_client # pylint: disable=unused-import -from .Tools import do_rest_get_request, do_rest_post_request +from .Fixtures import context_client # pylint: disable=unused-import +from .Tools import do_rest_get_request, do_rest_post_request LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/eucnc24/tests/test_service_ietf_remove.py b/src/tests/eucnc24/tests/test_service_ietf_remove.py index d0dad7a2d..3dc7051fa 100644 --- a/src/tests/eucnc24/tests/test_service_ietf_remove.py +++ b/src/tests/eucnc24/tests/test_service_ietf_remove.py @@ -14,14 +14,17 @@ import logging, os from typing import Set + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from .Fixtures import context_client # pylint: disable=unused-import -from .Tools import do_rest_delete_request +from .Fixtures import context_client # pylint: disable=unused-import +from .Tools import do_rest_delete_request LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/eucnc24/tests/test_service_tfs_create.py b/src/tests/eucnc24/tests/test_service_tfs_create.py index 301602792..8884adcac 100644 --- a/src/tests/eucnc24/tests/test_service_tfs_create.py +++ b/src/tests/eucnc24/tests/test_service_tfs_create.py @@ -13,16 +13,23 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from .Fixtures import context_client, device_client, service_client # pylint: disable=unused-import +from .Fixtures import ( + context_client, device_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/eucnc24/tests/test_service_tfs_remove.py b/src/tests/eucnc24/tests/test_service_tfs_remove.py index 50d4acb7a..eaf668078 100644 --- a/src/tests/eucnc24/tests/test_service_tfs_remove.py +++ b/src/tests/eucnc24/tests/test_service_tfs_remove.py @@ -14,15 +14,20 @@ import logging, os from typing import Set, Tuple + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from .Fixtures import context_client, service_client # pylint: disable=unused-import +from .Fixtures import ( + context_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/l2_vpn_gnmi_oc/tests/test_cleanup.py b/src/tests/l2_vpn_gnmi_oc/tests/test_cleanup.py index 20afb5fe0..91d90e7b4 100644 --- a/src/tests/l2_vpn_gnmi_oc/tests/test_cleanup.py +++ b/src/tests/l2_vpn_gnmi_oc/tests/test_cleanup.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/l2_vpn_gnmi_oc/tests/test_onboarding.py b/src/tests/l2_vpn_gnmi_oc/tests/test_onboarding.py index 763d7da17..5d652e6f5 100644 --- a/src/tests/l2_vpn_gnmi_oc/tests/test_onboarding.py +++ b/src/tests/l2_vpn_gnmi_oc/tests/test_onboarding.py @@ -13,13 +13,21 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/l2_vpn_gnmi_oc/tests/test_service_ietf_create.py b/src/tests/l2_vpn_gnmi_oc/tests/test_service_ietf_create.py index 480aee615..655d395c2 100644 --- a/src/tests/l2_vpn_gnmi_oc/tests/test_service_ietf_create.py +++ b/src/tests/l2_vpn_gnmi_oc/tests/test_service_ietf_create.py @@ -13,14 +13,17 @@ # limitations under the License. import json, logging, os + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from .Fixtures import context_client # pylint: disable=unused-import -from .Tools import do_rest_get_request, do_rest_post_request +from .Fixtures import context_client # pylint: disable=unused-import +from .Tools import do_rest_get_request, do_rest_post_request LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/l2_vpn_gnmi_oc/tests/test_service_ietf_remove.py b/src/tests/l2_vpn_gnmi_oc/tests/test_service_ietf_remove.py index 58aa2321d..0235c32a2 100644 --- a/src/tests/l2_vpn_gnmi_oc/tests/test_service_ietf_remove.py +++ b/src/tests/l2_vpn_gnmi_oc/tests/test_service_ietf_remove.py @@ -14,14 +14,17 @@ import logging, os from typing import Set + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from .Fixtures import context_client # pylint: disable=unused-import -from .Tools import do_rest_delete_request +from .Fixtures import context_client # pylint: disable=unused-import +from .Tools import do_rest_delete_request LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/l2_vpn_gnmi_oc/tests/test_service_tfs_create.py b/src/tests/l2_vpn_gnmi_oc/tests/test_service_tfs_create.py index 3e7abd640..5d802e92e 100644 --- a/src/tests/l2_vpn_gnmi_oc/tests/test_service_tfs_create.py +++ b/src/tests/l2_vpn_gnmi_oc/tests/test_service_tfs_create.py @@ -13,16 +13,23 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from .Fixtures import context_client, device_client, service_client # pylint: disable=unused-import +from .Fixtures import ( + context_client, device_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/l2_vpn_gnmi_oc/tests/test_service_tfs_remove.py b/src/tests/l2_vpn_gnmi_oc/tests/test_service_tfs_remove.py index 137848f53..264f0de0a 100644 --- a/src/tests/l2_vpn_gnmi_oc/tests/test_service_tfs_remove.py +++ b/src/tests/l2_vpn_gnmi_oc/tests/test_service_tfs_remove.py @@ -14,15 +14,20 @@ import logging, os from typing import Set, Tuple + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from .Fixtures import context_client, service_client # pylint: disable=unused-import +from .Fixtures import ( + context_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc22/tests/Fixtures.py b/src/tests/ofc22/tests/Fixtures.py index b6e5d0d59..b1d338bd4 100644 --- a/src/tests/ofc22/tests/Fixtures.py +++ b/src/tests/ofc22/tests/Fixtures.py @@ -12,14 +12,41 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest, logging +import logging + +import pytest from common.Settings import get_setting +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from monitoring.client.MonitoringClient import MonitoringClient from tests.tools.mock_osm.Constants import WIM_PASSWORD, WIM_USERNAME from tests.tools.mock_osm.MockOSM import MockOSM from .Objects import WIM_MAPPING LOGGER = logging.getLogger(__name__) + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def monitoring_client(): + _client = MonitoringClient() + yield _client + _client.close() + + @pytest.fixture(scope='session') def osm_wim(): wim_url = 'http://{:s}:{:s}'.format( diff --git a/src/tests/ofc22/tests/test_functional_bootstrap.py b/src/tests/ofc22/tests/test_functional_bootstrap.py index 523e533bf..44e12c131 100644 --- a/src/tests/ofc22/tests/test_functional_bootstrap.py +++ b/src/tests/ofc22/tests/test_functional_bootstrap.py @@ -13,15 +13,23 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) from common.proto.monitoring_pb2 import KpiDescriptorList -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from monitoring.client.MonitoringClient import MonitoringClient -from tests.Fixtures import context_client, device_client, monitoring_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, monitoring_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc22/tests/test_functional_cleanup.py b/src/tests/ofc22/tests/test_functional_cleanup.py index 94217423d..a6d1edded 100644 --- a/src/tests/ofc22/tests/test_functional_cleanup.py +++ b/src/tests/ofc22/tests/test_functional_cleanup.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc22/tests/test_functional_create_service.py b/src/tests/ofc22/tests/test_functional_create_service.py index 09a1afcde..eb8e07f70 100644 --- a/src/tests/ofc22/tests/test_functional_create_service.py +++ b/src/tests/ofc22/tests/test_functional_create_service.py @@ -13,6 +13,7 @@ # limitations under the License. import logging, os, random + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, Empty, ServiceTypeEnum from common.proto.kpi_sample_types_pb2 import KpiSampleType @@ -21,9 +22,11 @@ from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from monitoring.client.MonitoringClient import MonitoringClient -from tests.Fixtures import context_client, monitoring_client # pylint: disable=unused-import from tests.tools.mock_osm.MockOSM import MockOSM -from .Fixtures import osm_wim # pylint: disable=unused-import + +from .Fixtures import ( + context_client, monitoring_client, osm_wim, +) # pylint: disable=unused-import from .Objects import WIM_SERVICE_CONNECTION_POINTS, WIM_SERVICE_TYPE LOGGER = logging.getLogger(__name__) diff --git a/src/tests/ofc22/tests/test_functional_delete_service.py b/src/tests/ofc22/tests/test_functional_delete_service.py index cdc3894b3..ef491b8f5 100644 --- a/src/tests/ofc22/tests/test_functional_delete_service.py +++ b/src/tests/ofc22/tests/test_functional_delete_service.py @@ -13,15 +13,16 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, ServiceTypeEnum from common.tools.descriptor.Loader import DescriptorLoader from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from tests.Fixtures import context_client # pylint: disable=unused-import from tests.tools.mock_osm.MockOSM import MockOSM -from .Fixtures import osm_wim # pylint: disable=unused-import + +from .Fixtures import context_client, osm_wim # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc24/tests/Fixtures.py b/src/tests/ofc24/tests/Fixtures.py new file mode 100644 index 000000000..69e4cbaa9 --- /dev/null +++ b/src/tests/ofc24/tests/Fixtures.py @@ -0,0 +1,39 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient + + +@pytest.fixture(scope='session') +def context_client() -> ContextClient: + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client() -> DeviceClient: + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def service_client() -> ServiceClient: + _client = ServiceClient() + yield _client + _client.close() diff --git a/src/tests/ofc24/tests/test_functional_bootstrap.py b/src/tests/ofc24/tests/test_functional_bootstrap.py index 5bcf4dbb9..ed914852d 100644 --- a/src/tests/ofc24/tests/test_functional_bootstrap.py +++ b/src/tests/ofc24/tests/test_functional_bootstrap.py @@ -13,14 +13,24 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) +from common.tools.grpc.Tools import ( + grpc_message_to_json, grpc_message_to_json_string, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc24/tests/test_functional_cleanup.py b/src/tests/ofc24/tests/test_functional_cleanup.py index 88c37dea3..d8dd7660d 100644 --- a/src/tests/ofc24/tests/test_functional_cleanup.py +++ b/src/tests/ofc24/tests/test_functional_cleanup.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc24/tests/test_functional_create_service_bidir.py b/src/tests/ofc24/tests/test_functional_create_service_bidir.py index 022c32c83..7ba1ba5b4 100644 --- a/src/tests/ofc24/tests/test_functional_create_service_bidir.py +++ b/src/tests/ofc24/tests/test_functional_create_service_bidir.py @@ -13,15 +13,23 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc24/tests/test_functional_create_service_unidir.py b/src/tests/ofc24/tests/test_functional_create_service_unidir.py index 33fd0c379..a13073a92 100644 --- a/src/tests/ofc24/tests/test_functional_create_service_unidir.py +++ b/src/tests/ofc24/tests/test_functional_create_service_unidir.py @@ -13,15 +13,23 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc24/tests/test_functional_delete_service_bidir.py b/src/tests/ofc24/tests/test_functional_delete_service_bidir.py index 905531399..3ff489472 100644 --- a/src/tests/ofc24/tests/test_functional_delete_service_bidir.py +++ b/src/tests/ofc24/tests/test_functional_delete_service_bidir.py @@ -14,14 +14,20 @@ import logging from typing import Set, Tuple + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, service_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc24/tests/test_functional_delete_service_unidir.py b/src/tests/ofc24/tests/test_functional_delete_service_unidir.py index 7e83b3812..5e6ae6b6c 100644 --- a/src/tests/ofc24/tests/test_functional_delete_service_unidir.py +++ b/src/tests/ofc24/tests/test_functional_delete_service_unidir.py @@ -14,14 +14,20 @@ import logging from typing import Set, Tuple + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, service_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25-camara-agg-net-controller/tests/test_onboarding.py b/src/tests/ofc25-camara-agg-net-controller/tests/test_onboarding.py index 657e7c07a..58dee0644 100644 --- a/src/tests/ofc25-camara-agg-net-controller/tests/test_onboarding.py +++ b/src/tests/ofc25-camara-agg-net-controller/tests/test_onboarding.py @@ -13,13 +13,21 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25-camara-e2e-controller/tests/test_onboarding.py b/src/tests/ofc25-camara-e2e-controller/tests/test_onboarding.py index a0435712f..e7c8981bf 100644 --- a/src/tests/ofc25-camara-e2e-controller/tests/test_onboarding.py +++ b/src/tests/ofc25-camara-e2e-controller/tests/test_onboarding.py @@ -13,13 +13,21 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25/tests/Fixtures.py b/src/tests/ofc25/tests/Fixtures.py new file mode 100644 index 000000000..69e4cbaa9 --- /dev/null +++ b/src/tests/ofc25/tests/Fixtures.py @@ -0,0 +1,39 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient + + +@pytest.fixture(scope='session') +def context_client() -> ContextClient: + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client() -> DeviceClient: + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def service_client() -> ServiceClient: + _client = ServiceClient() + yield _client + _client.close() diff --git a/src/tests/ofc25/tests/test_functional_bootstrap_e2e.py b/src/tests/ofc25/tests/test_functional_bootstrap_e2e.py index 5a4a25232..23586b553 100644 --- a/src/tests/ofc25/tests/test_functional_bootstrap_e2e.py +++ b/src/tests/ofc25/tests/test_functional_bootstrap_e2e.py @@ -13,14 +13,24 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) +from common.tools.grpc.Tools import ( + grpc_message_to_json, grpc_message_to_json_string, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25/tests/test_functional_bootstrap_ip.py b/src/tests/ofc25/tests/test_functional_bootstrap_ip.py index 580a774fa..501904d1f 100644 --- a/src/tests/ofc25/tests/test_functional_bootstrap_ip.py +++ b/src/tests/ofc25/tests/test_functional_bootstrap_ip.py @@ -13,13 +13,21 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25/tests/test_functional_bootstrap_opt.py b/src/tests/ofc25/tests/test_functional_bootstrap_opt.py index a6e74af3a..8a6b8ddb4 100644 --- a/src/tests/ofc25/tests/test_functional_bootstrap_opt.py +++ b/src/tests/ofc25/tests/test_functional_bootstrap_opt.py @@ -13,13 +13,21 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25/tests/test_functional_cleanup_e2e.py b/src/tests/ofc25/tests/test_functional_cleanup_e2e.py index 0c4bb088d..8f81d3cd9 100644 --- a/src/tests/ofc25/tests/test_functional_cleanup_e2e.py +++ b/src/tests/ofc25/tests/test_functional_cleanup_e2e.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25/tests/test_functional_cleanup_ip.py b/src/tests/ofc25/tests/test_functional_cleanup_ip.py index bf93adbc5..fb33a4d45 100644 --- a/src/tests/ofc25/tests/test_functional_cleanup_ip.py +++ b/src/tests/ofc25/tests/test_functional_cleanup_ip.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25/tests/test_functional_cleanup_opt.py b/src/tests/ofc25/tests/test_functional_cleanup_opt.py index 060297822..4e7a76d1c 100644 --- a/src/tests/ofc25/tests/test_functional_cleanup_opt.py +++ b/src/tests/ofc25/tests/test_functional_cleanup_opt.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25/tests/test_functional_create_service.py b/src/tests/ofc25/tests/test_functional_create_service.py index 72eb15856..b987bf8de 100644 --- a/src/tests/ofc25/tests/test_functional_create_service.py +++ b/src/tests/ofc25/tests/test_functional_create_service.py @@ -13,15 +13,23 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ofc25/tests/test_functional_delete_service.py b/src/tests/ofc25/tests/test_functional_delete_service.py index f989485dc..9c689d259 100644 --- a/src/tests/ofc25/tests/test_functional_delete_service.py +++ b/src/tests/ofc25/tests/test_functional_delete_service.py @@ -14,14 +14,20 @@ import logging from typing import Set, Tuple + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, service_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/p4-sd-fabric-sbi-connectivity/Fixtures.py b/src/tests/p4-sd-fabric-sbi-connectivity/Fixtures.py new file mode 100644 index 000000000..cf77538f9 --- /dev/null +++ b/src/tests/p4-sd-fabric-sbi-connectivity/Fixtures.py @@ -0,0 +1,39 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient + + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def service_client(): + _client = ServiceClient() + yield _client + _client.close() diff --git a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_bootstrap.py b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_bootstrap.py index eedcb9951..9d512e6d3 100644 --- a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_bootstrap.py +++ b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_bootstrap.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, time + from common.proto.context_pb2 import DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, \ - check_descriptor_load_results, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import ADMIN_CONTEXT_ID + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import + from test_functional_common import DESC_TOPOLOGY LOGGER = logging.getLogger(__name__) diff --git a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_cleanup.py b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_cleanup.py index 41897fb0a..d2aecc6bf 100644 --- a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_cleanup.py +++ b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_cleanup.py @@ -13,11 +13,18 @@ # limitations under the License. import logging -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario + +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import ADMIN_CONTEXT_ID + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import + from test_functional_common import DESC_TOPOLOGY LOGGER = logging.getLogger(__name__) diff --git a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_purge.py b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_purge.py index a4bf927cb..d357b05a2 100644 --- a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_purge.py +++ b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_purge.py @@ -13,7 +13,10 @@ # limitations under the License. import logging -from common.proto.context_pb2 import ServiceId, DeviceId, LinkId, ServiceStatusEnum, ServiceTypeEnum + +from common.proto.context_pb2 import ( + DeviceId, LinkId, ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Device import json_device_id @@ -21,9 +24,12 @@ from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import ADMIN_CONTEXT_ID +from .Fixtures import ( + context_client, device_client, service_client, +) # pylint: disable=unused-import + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_sbi_rules_deprovision.py b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_sbi_rules_deprovision.py index 8bf3b8c90..80b42d908 100644 --- a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_sbi_rules_deprovision.py +++ b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_sbi_rules_deprovision.py @@ -13,12 +13,19 @@ # limitations under the License. import logging -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results + +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import + from test_functional_common import * LOGGER = logging.getLogger(__name__) diff --git a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_sbi_rules_provision.py b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_sbi_rules_provision.py index ba45ad8bc..c09cff55e 100644 --- a/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_sbi_rules_provision.py +++ b/src/tests/p4-sd-fabric-sbi-connectivity/test_functional_sbi_rules_provision.py @@ -13,12 +13,19 @@ # limitations under the License. import logging -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results + +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import + from test_functional_common import * LOGGER = logging.getLogger(__name__) diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/Fixtures.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/Fixtures.py new file mode 100644 index 000000000..cf77538f9 --- /dev/null +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/Fixtures.py @@ -0,0 +1,39 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient + + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def service_client(): + _client = ServiceClient() + yield _client + _client.close() diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/__init__.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/__init__.py new file mode 100644 index 000000000..b53987a4e --- /dev/null +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_acl.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_acl.py index e90ff1687..d18d4e583 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_acl.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_acl.py @@ -13,15 +13,21 @@ # limitations under the License. import logging -from common.proto.context_pb2 import ServiceId, ServiceStatusEnum, ServiceTypeEnum + +from common.proto.context_pb2 import ( + ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, service_client, +) + DEV_NB = 4 P4_DEV_NB = 1 diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_int.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_int.py index 3709d808b..541f4253a 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_int.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_int.py @@ -13,15 +13,21 @@ # limitations under the License. import logging -from common.proto.context_pb2 import ServiceId, ServiceStatusEnum, ServiceTypeEnum + +from common.proto.context_pb2 import ( + ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, service_client, +) + DEV_NB = 4 P4_DEV_NB = 1 diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_l2.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_l2.py index e97b84b36..001bd1b68 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_l2.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_l2.py @@ -13,15 +13,21 @@ # limitations under the License. import logging -from common.proto.context_pb2 import ServiceId, ServiceStatusEnum, ServiceTypeEnum + +from common.proto.context_pb2 import ( + ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, service_client, +) + DEV_NB = 4 P4_DEV_NB = 1 diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_l3.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_l3.py index 0fc2a7363..c5bbe1d14 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_l3.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_deprovision_l3.py @@ -13,15 +13,21 @@ # limitations under the License. import logging -from common.proto.context_pb2 import ServiceId, ServiceStatusEnum, ServiceTypeEnum + +from common.proto.context_pb2 import ( + ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, service_client, +) + DEV_NB = 4 P4_DEV_NB = 1 diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_acl.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_acl.py index e200253ed..14d8c04a8 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_acl.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_acl.py @@ -14,15 +14,21 @@ import logging import os + from common.proto.context_pb2 import ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, service_client, +) + DEV_NB = 4 P4_DEV_NB = 1 diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_int.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_int.py index a112e85d2..795b12725 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_int.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_int.py @@ -12,17 +12,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os import logging +import os + from common.proto.context_pb2 import ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, service_client, +) + DEV_NB = 4 P4_DEV_NB = 1 diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_l2.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_l2.py index d80f24630..46a314ed5 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_l2.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_l2.py @@ -14,15 +14,21 @@ import logging import os + from common.proto.context_pb2 import ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, service_client, +) + DEV_NB = 4 P4_DEV_NB = 1 diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_l3.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_l3.py index 80e1547d9..9a8eba1ca 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_l3.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-service/test_functional_service_provision_l3.py @@ -14,15 +14,21 @@ import logging import os + from common.proto.context_pb2 import ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, service_client, +) + DEV_NB = 4 P4_DEV_NB = 1 diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/Fixtures.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/Fixtures.py new file mode 100644 index 000000000..cf77538f9 --- /dev/null +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/Fixtures.py @@ -0,0 +1,39 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient + + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def service_client(): + _client = ServiceClient() + yield _client + _client.close() diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/__init__.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/__init__.py new file mode 100644 index 000000000..b53987a4e --- /dev/null +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_bootstrap.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_bootstrap.py index 8807764e4..0f60221ff 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_bootstrap.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_bootstrap.py @@ -13,14 +13,19 @@ # limitations under the License. import logging, os, time + from common.proto.context_pb2 import DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, \ - check_descriptor_load_results, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import ADMIN_CONTEXT_ID +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, +) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_cleanup.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_cleanup.py index 12d5afac2..ca303173f 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_cleanup.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_cleanup.py @@ -13,12 +13,18 @@ # limitations under the License. import logging, os -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario + +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import ADMIN_CONTEXT_ID +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, +) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_purge.py b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_purge.py index 1d7f1523c..07c772666 100644 --- a/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_purge.py +++ b/src/tests/p4-sd-fabric-svc-connectivity/tests-setup/test_functional_purge.py @@ -13,7 +13,10 @@ # limitations under the License. import logging -from common.proto.context_pb2 import ServiceId, DeviceId, LinkId, ServiceStatusEnum, ServiceTypeEnum + +from common.proto.context_pb2 import ( + DeviceId, LinkId, ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Device import json_device_id @@ -21,9 +24,12 @@ from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import ADMIN_CONTEXT_ID +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, service_client, +) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/p4-sd-fabric-svc-upf/tests-service/Fixtures.py b/src/tests/p4-sd-fabric-svc-upf/tests-service/Fixtures.py new file mode 100644 index 000000000..cf77538f9 --- /dev/null +++ b/src/tests/p4-sd-fabric-svc-upf/tests-service/Fixtures.py @@ -0,0 +1,39 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient + + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def service_client(): + _client = ServiceClient() + yield _client + _client.close() diff --git a/src/tests/p4-sd-fabric-svc-upf/tests-service/__init__.py b/src/tests/p4-sd-fabric-svc-upf/tests-service/__init__.py new file mode 100644 index 000000000..b53987a4e --- /dev/null +++ b/src/tests/p4-sd-fabric-svc-upf/tests-service/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/src/tests/p4-sd-fabric-svc-upf/tests-service/test_functional_service_deprovision_upf.py b/src/tests/p4-sd-fabric-svc-upf/tests-service/test_functional_service_deprovision_upf.py index 1a6825e17..7b1496b9b 100644 --- a/src/tests/p4-sd-fabric-svc-upf/tests-service/test_functional_service_deprovision_upf.py +++ b/src/tests/p4-sd-fabric-svc-upf/tests-service/test_functional_service_deprovision_upf.py @@ -13,14 +13,20 @@ # limitations under the License. import logging -from common.proto.context_pb2 import ServiceId, ServiceStatusEnum, ServiceTypeEnum + +from common.proto.context_pb2 import ( + ServiceId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, service_client, +) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/p4-sd-fabric-svc-upf/tests-service/test_functional_service_provision_upf.py b/src/tests/p4-sd-fabric-svc-upf/tests-service/test_functional_service_provision_upf.py index dfbd7567d..fcc50d523 100644 --- a/src/tests/p4-sd-fabric-svc-upf/tests-service/test_functional_service_provision_upf.py +++ b/src/tests/p4-sd-fabric-svc-upf/tests-service/test_functional_service_provision_upf.py @@ -14,15 +14,21 @@ import logging import os + from common.proto.context_pb2 import ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import * +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, service_client, +) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/p4-sd-fabric-svc-upf/tests-setup/Fixtures.py b/src/tests/p4-sd-fabric-svc-upf/tests-setup/Fixtures.py new file mode 100644 index 000000000..cf77538f9 --- /dev/null +++ b/src/tests/p4-sd-fabric-svc-upf/tests-setup/Fixtures.py @@ -0,0 +1,39 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient + + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def service_client(): + _client = ServiceClient() + yield _client + _client.close() diff --git a/src/tests/p4-sd-fabric-svc-upf/tests-setup/__init__.py b/src/tests/p4-sd-fabric-svc-upf/tests-setup/__init__.py new file mode 100644 index 000000000..b53987a4e --- /dev/null +++ b/src/tests/p4-sd-fabric-svc-upf/tests-setup/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2026 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_bootstrap.py b/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_bootstrap.py index b4438d605..e40b360c4 100644 --- a/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_bootstrap.py +++ b/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_bootstrap.py @@ -13,14 +13,19 @@ # limitations under the License. import logging, os, time + from common.proto.context_pb2 import DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, \ - check_descriptor_load_results, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import ADMIN_CONTEXT_ID +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, +) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_cleanup.py b/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_cleanup.py index fe4b48493..f1ec69c65 100644 --- a/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_cleanup.py +++ b/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_cleanup.py @@ -12,14 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os import logging -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +import os + +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from tests.Fixtures import context_client, device_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import ADMIN_CONTEXT_ID +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, +) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_purge.py b/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_purge.py index 94e2e2388..39d45d43f 100644 --- a/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_purge.py +++ b/src/tests/p4-sd-fabric-svc-upf/tests-setup/test_functional_purge.py @@ -13,7 +13,10 @@ # limitations under the License. import logging -from common.proto.context_pb2 import ServiceId, DeviceId, LinkId, ServiceStatusEnum + +from common.proto.context_pb2 import ( + DeviceId, LinkId, ServiceId, ServiceStatusEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Device import json_device_id @@ -21,9 +24,12 @@ from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import from tests.tools.test_tools_p4 import ADMIN_CONTEXT_ID +from .Fixtures import ( # pylint: disable=unused-import + context_client, device_client, service_client, +) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/qkd_end2end/tests/test_01_onboarding.py b/src/tests/qkd_end2end/tests/test_01_onboarding.py index e609856e7..55c6f79b2 100644 --- a/src/tests/qkd_end2end/tests/test_01_onboarding.py +++ b/src/tests/qkd_end2end/tests/test_01_onboarding.py @@ -13,13 +13,21 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/qkd_end2end/tests/test_02_create_links.py b/src/tests/qkd_end2end/tests/test_02_create_links.py index 4d7587cf3..757326389 100644 --- a/src/tests/qkd_end2end/tests/test_02_create_links.py +++ b/src/tests/qkd_end2end/tests/test_02_create_links.py @@ -13,20 +13,25 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, Empty, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, Empty, ServiceStatusEnum, ServiceTypeEnum, +) from common.proto.qkd_app_pb2 import QKDAppStatusEnum, QKDAppTypesEnum -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from qkd_app.client.QKDAppClient import QKDAppClient from service.client.ServiceClient import ServiceClient -from .Fixtures import ( # pylint: disable=unused-import - context_client, device_client, service_client, qkd_app_client -) +from .Fixtures import ( + context_client, device_client, qkd_app_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/qkd_end2end/tests/test_03_create_external_app.py b/src/tests/qkd_end2end/tests/test_03_create_external_app.py index f9efd8aba..e51009f7e 100644 --- a/src/tests/qkd_end2end/tests/test_03_create_external_app.py +++ b/src/tests/qkd_end2end/tests/test_03_create_external_app.py @@ -14,6 +14,7 @@ import json, logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId from common.proto.qkd_app_pb2 import QKDAppStatusEnum, QKDAppTypesEnum @@ -21,9 +22,11 @@ from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from qkd_app.client.QKDAppClient import QKDAppClient -from .Fixtures import context_client, qkd_app_client # pylint: disable=unused-import -from .Tools import do_rest_post_request +from .Fixtures import ( + context_client, qkd_app_client, +) # pylint: disable=unused-import +from .Tools import do_rest_post_request LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/qkd_end2end/tests/test_04_delete_external_app.py b/src/tests/qkd_end2end/tests/test_04_delete_external_app.py index f352498a8..c38740a24 100644 --- a/src/tests/qkd_end2end/tests/test_04_delete_external_app.py +++ b/src/tests/qkd_end2end/tests/test_04_delete_external_app.py @@ -14,6 +14,7 @@ import logging from typing import Set + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId from common.proto.qkd_app_pb2 import AppId, QKDAppStatusEnum, QKDAppTypesEnum @@ -21,8 +22,10 @@ from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from qkd_app.client.QKDAppClient import QKDAppClient -from .Fixtures import context_client, qkd_app_client # pylint: disable=unused-import +from .Fixtures import ( + context_client, qkd_app_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/qkd_end2end/tests/test_05_delete_links.py b/src/tests/qkd_end2end/tests/test_05_delete_links.py index 07a85963d..5613a942b 100644 --- a/src/tests/qkd_end2end/tests/test_05_delete_links.py +++ b/src/tests/qkd_end2end/tests/test_05_delete_links.py @@ -14,6 +14,7 @@ import logging from typing import Set + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, ServiceId from common.proto.qkd_app_pb2 import AppId, QKDAppStatusEnum, QKDAppTypesEnum @@ -22,11 +23,10 @@ from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from qkd_app.client.QKDAppClient import QKDAppClient from service.client.ServiceClient import ServiceClient -from .Fixtures import ( - # pylint: disable=unused-import - context_client, qkd_app_client, service_client -) +from .Fixtures import ( + context_client, qkd_app_client, service_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/qkd_end2end/tests/test_06_cleanup.py b/src/tests/qkd_end2end/tests/test_06_cleanup.py index e3c770e7a..f99486388 100644 --- a/src/tests/qkd_end2end/tests/test_06_cleanup.py +++ b/src/tests/qkd_end2end/tests/test_06_cleanup.py @@ -13,13 +13,19 @@ # limitations under the License. import logging, os + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.descriptor.Loader import ( + DescriptorLoader, validate_empty_scenario, +) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ryu-openflow/tests/test_cleanup.py b/src/tests/ryu-openflow/tests/test_cleanup.py index 4d8ea7f6e..2cb728e05 100644 --- a/src/tests/ryu-openflow/tests/test_cleanup.py +++ b/src/tests/ryu-openflow/tests/test_cleanup.py @@ -14,6 +14,7 @@ import graphlib, logging, os from typing import Dict, List, Tuple + from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, DeviceId, Empty from common.tools.descriptor.Loader import validate_empty_scenario @@ -21,7 +22,10 @@ from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ryu-openflow/tests/test_onboarding.py b/src/tests/ryu-openflow/tests/test_onboarding.py index 18af3e128..3aab877da 100644 --- a/src/tests/ryu-openflow/tests/test_onboarding.py +++ b/src/tests/ryu-openflow/tests/test_onboarding.py @@ -13,16 +13,22 @@ # limitations under the License. import logging, os, time + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty +from common.proto.context_pb2 import ( + ContextId, DeviceOperationalStatusEnum, Empty, +) from common.tools.descriptor.Loader import ( - DescriptorLoader, check_descriptor_load_results, validate_empty_scenario + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario, ) #from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from .Fixtures import context_client, device_client # pylint: disable=unused-import + +from .Fixtures import ( + context_client, device_client, +) # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ryu-openflow/tests/test_service_ietf_create_h1_h3.py b/src/tests/ryu-openflow/tests/test_service_ietf_create_h1_h3.py index 5cf59ac3f..84fdd34eb 100644 --- a/src/tests/ryu-openflow/tests/test_service_ietf_create_h1_h3.py +++ b/src/tests/ryu-openflow/tests/test_service_ietf_create_h1_h3.py @@ -14,14 +14,17 @@ import json, logging, os from typing import Dict, Set + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from .Fixtures import context_client # pylint: disable=unused-import -from .Tools import do_rest_get_request, do_rest_post_request +from .Fixtures import context_client # pylint: disable=unused-import +from .Tools import do_rest_get_request, do_rest_post_request LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ryu-openflow/tests/test_service_ietf_create_h2_h4.py b/src/tests/ryu-openflow/tests/test_service_ietf_create_h2_h4.py index c81f06db2..7f9882573 100644 --- a/src/tests/ryu-openflow/tests/test_service_ietf_create_h2_h4.py +++ b/src/tests/ryu-openflow/tests/test_service_ietf_create_h2_h4.py @@ -14,14 +14,17 @@ import json, logging, os from typing import Dict, Set + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from .Fixtures import context_client # pylint: disable=unused-import -from .Tools import do_rest_get_request, do_rest_post_request +from .Fixtures import context_client # pylint: disable=unused-import +from .Tools import do_rest_get_request, do_rest_post_request LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ryu-openflow/tests/test_service_ietf_remove_h1_h3.py b/src/tests/ryu-openflow/tests/test_service_ietf_remove_h1_h3.py index 5e1385c47..168057c42 100644 --- a/src/tests/ryu-openflow/tests/test_service_ietf_remove_h1_h3.py +++ b/src/tests/ryu-openflow/tests/test_service_ietf_remove_h1_h3.py @@ -14,14 +14,17 @@ import logging, os from typing import Dict, Set, Tuple + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from .Fixtures import context_client # pylint: disable=unused-import -from .Tools import do_rest_delete_request +from .Fixtures import context_client # pylint: disable=unused-import +from .Tools import do_rest_delete_request LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/ryu-openflow/tests/test_service_ietf_remove_h2_h4.py b/src/tests/ryu-openflow/tests/test_service_ietf_remove_h2_h4.py index d249722e9..8c977ae66 100644 --- a/src/tests/ryu-openflow/tests/test_service_ietf_remove_h2_h4.py +++ b/src/tests/ryu-openflow/tests/test_service_ietf_remove_h2_h4.py @@ -14,14 +14,17 @@ import logging, os from typing import Dict, Set, Tuple + from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum +from common.proto.context_pb2 import ( + ContextId, ServiceStatusEnum, ServiceTypeEnum, +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from .Fixtures import context_client # pylint: disable=unused-import -from .Tools import do_rest_delete_request +from .Fixtures import context_client # pylint: disable=unused-import +from .Tools import do_rest_delete_request LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/scenario2/old_tests/tests/Fixtures.py b/src/tests/scenario2/old_tests/tests/Fixtures.py index d2220db5c..f5d671bf5 100644 --- a/src/tests/scenario2/old_tests/tests/Fixtures.py +++ b/src/tests/scenario2/old_tests/tests/Fixtures.py @@ -15,37 +15,61 @@ import pytest from common.Settings import get_setting from common.proto.monitoring_pb2 import AlarmDescriptor, AlarmSubscription +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from monitoring.client.MonitoringClient import MonitoringClient from nbi.tests.mock_osm.MockOSM import MockOSM from .Objects import WIM_MAPPING, WIM_PASSWORD, WIM_USERNAME +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient() + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def monitoring_client(): + _client = MonitoringClient() + yield _client + _client.close() + + @pytest.fixture(scope='session') def osm_wim(): wim_url = 'http://{:s}:{:s}'.format( get_setting('NBISERVICE_SERVICE_HOST'), str(get_setting('NBISERVICE_SERVICE_PORT_HTTP'))) return MockOSM(wim_url, WIM_MAPPING, WIM_USERNAME, WIM_PASSWORD) + @pytest.fixture(scope='session') def alarm_descriptor(): - alarm_descriptor = AlarmDescriptor() - alarm_descriptor.alarm_description = "Default Alarm Description" - alarm_descriptor.name = "Default Alarm Name" - alarm_descriptor.kpi_value_range.kpiMinValue.floatVal = 0.0 - alarm_descriptor.kpi_value_range.kpiMaxValue.floatVal = 250.0 - alarm_descriptor.kpi_value_range.inRange = True - alarm_descriptor.kpi_value_range.includeMinValue = False - alarm_descriptor.kpi_value_range.includeMaxValue = True + alarm_descriptor.alarm_description = 'Default Alarm Description' + alarm_descriptor.name = 'Default Alarm Name' + alarm_descriptor.kpi_value_range.kpiMinValue.floatVal = 0.0 + alarm_descriptor.kpi_value_range.kpiMaxValue.floatVal = 250.0 + alarm_descriptor.kpi_value_range.inRange = True + alarm_descriptor.kpi_value_range.includeMinValue = False + alarm_descriptor.kpi_value_range.includeMaxValue = True return alarm_descriptor + @pytest.fixture(scope='session') def alarm_subscription(): - alarm_subscription = AlarmSubscription() - alarm_subscription.subscription_timeout_s = 10 - alarm_subscription.subscription_frequency_ms = 2000 + alarm_subscription.subscription_timeout_s = 10 + alarm_subscription.subscription_frequency_ms = 2000 - return alarm_subscription \ No newline at end of file + return alarm_subscription diff --git a/src/tests/scenario2/old_tests/tests/test_functional_bootstrap.py b/src/tests/scenario2/old_tests/tests/test_functional_bootstrap.py index 6d9f5f53a..e2f5946f7 100644 --- a/src/tests/scenario2/old_tests/tests/test_functional_bootstrap.py +++ b/src/tests/scenario2/old_tests/tests/test_functional_bootstrap.py @@ -13,22 +13,28 @@ # limitations under the License. import copy, logging, pytest + +from common.proto.context_pb2 import ( + Context, ContextId, Device, Empty, Link, Topology, +) +from common.proto.monitoring_pb2 import ( + AlarmDescriptor, AlarmList, KpiDescriptorList, +) from common.Settings import get_setting -from common.proto.monitoring_pb2 import KpiDescriptorList from common.tests.EventTools import EVENT_CREATE, EVENT_UPDATE, check_events from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Device import json_device_id from common.tools.object_factory.Link import json_link_id from common.tools.object_factory.Topology import json_topology_id from context.client.ContextClient import ContextClient -from monitoring.client.MonitoringClient import MonitoringClient from context.client.EventsCollector import EventsCollector -from common.proto.context_pb2 import Context, ContextId, Device, Empty, Link, Topology -from common.proto.monitoring_pb2 import AlarmDescriptor, AlarmList from device.client.DeviceClient import DeviceClient +from monitoring.client.MonitoringClient import MonitoringClient + +from .Fixtures import ( + alarm_descriptor, context_client, device_client, monitoring_client, +) # pylint: disable=unused-import from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES -from tests.Fixtures import context_client, device_client, monitoring_client -from .Fixtures import alarm_descriptor LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/scenario2/old_tests/tests/test_functional_cleanup.py b/src/tests/scenario2/old_tests/tests/test_functional_cleanup.py index 6b157cefa..dc1ec2562 100644 --- a/src/tests/scenario2/old_tests/tests/test_functional_cleanup.py +++ b/src/tests/scenario2/old_tests/tests/test_functional_cleanup.py @@ -13,6 +13,13 @@ # limitations under the License. import logging, pytest + +from common.proto.context_pb2 import ( + ContextId, DeviceId, Empty, LinkId, TopologyId, +) +from common.proto.monitoring_pb2 import ( + AlarmID, AlarmList, KpiDescriptorList, KpiId, +) from common.Settings import get_setting from common.tests.EventTools import EVENT_REMOVE, check_events from common.tools.object_factory.Context import json_context_id @@ -21,11 +28,12 @@ from common.tools.object_factory.Link import json_link_id from common.tools.object_factory.Topology import json_topology_id from context.client.ContextClient import ContextClient from context.client.EventsCollector import EventsCollector -from common.proto.context_pb2 import ContextId, DeviceId, Empty, LinkId, TopologyId -from common.proto.monitoring_pb2 import KpiId, KpiDescriptorList, AlarmList, AlarmID from device.client.DeviceClient import DeviceClient from monitoring.client.MonitoringClient import MonitoringClient -from tests.Fixtures import context_client, device_client, monitoring_client + +from .Fixtures import ( + context_client, device_client, monitoring_client, +) # pylint: disable=unused-import from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES LOGGER = logging.getLogger(__name__) diff --git a/src/tests/scenario2/old_tests/tests/test_functional_create_service.py b/src/tests/scenario2/old_tests/tests/test_functional_create_service.py index 4485ce3ed..db490bd51 100644 --- a/src/tests/scenario2/old_tests/tests/test_functional_create_service.py +++ b/src/tests/scenario2/old_tests/tests/test_functional_create_service.py @@ -13,25 +13,30 @@ # limitations under the License. import logging, pytest, random, time + from grpc._channel import _MultiThreadedRendezvous + from common.DeviceTypes import DeviceTypeEnum +from common.proto.context_pb2 import ContextId, Empty +from common.proto.monitoring_pb2 import AlarmList, AlarmSubscription from common.Settings import get_setting from common.tests.EventTools import EVENT_CREATE, EVENT_UPDATE, check_events +from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Connection import json_connection_id from common.tools.object_factory.Device import json_device_id from common.tools.object_factory.Service import json_service_id -from common.tools.grpc.Tools import grpc_message_to_json_string -from nbi.tests.mock_osm.MockOSM import MockOSM from context.client.ContextClient import ContextClient -from monitoring.client.MonitoringClient import MonitoringClient from context.client.EventsCollector import EventsCollector -from common.proto.context_pb2 import ContextId, Empty -from common.proto.monitoring_pb2 import AlarmList, AlarmSubscription -from tests.Fixtures import context_client, monitoring_client -from .Fixtures import osm_wim, alarm_subscription +from monitoring.client.MonitoringClient import MonitoringClient +from nbi.tests.mock_osm.MockOSM import MockOSM + +from .Fixtures import ( + alarm_subscription, context_client, monitoring_client, osm_wim, +) # pylint: disable=unused-import from .Objects import ( - CONTEXT_ID, CONTEXTS, DEVICE_O1_UUID, DEVICE_R1_UUID, DEVICE_R3_UUID, DEVICES, LINKS, TOPOLOGIES, - WIM_SERVICE_CONNECTION_POINTS, WIM_SERVICE_TYPE) + CONTEXT_ID, CONTEXTS, DEVICE_O1_UUID, DEVICE_R1_UUID, DEVICE_R3_UUID, + DEVICES, LINKS, TOPOLOGIES, WIM_SERVICE_CONNECTION_POINTS, WIM_SERVICE_TYPE, +) LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/tests/scenario2/old_tests/tests/test_functional_delete_service.py b/src/tests/scenario2/old_tests/tests/test_functional_delete_service.py index 42a9456e0..da6cce21c 100644 --- a/src/tests/scenario2/old_tests/tests/test_functional_delete_service.py +++ b/src/tests/scenario2/old_tests/tests/test_functional_delete_service.py @@ -13,23 +13,24 @@ # limitations under the License. import logging, pytest + from common.DeviceTypes import DeviceTypeEnum +from common.proto.context_pb2 import ContextId, Empty, ServiceTypeEnum from common.Settings import get_setting from common.tests.EventTools import EVENT_REMOVE, EVENT_UPDATE, check_events +from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Connection import json_connection_id from common.tools.object_factory.Device import json_device_id from common.tools.object_factory.Service import json_service_id -from common.tools.grpc.Tools import grpc_message_to_json_string -from nbi.tests.mock_osm.MockOSM import MockOSM from context.client.ContextClient import ContextClient from context.client.EventsCollector import EventsCollector -from common.proto.context_pb2 import ContextId, Empty, ServiceTypeEnum -from tests.Fixtures import context_client -from .Fixtures import osm_wim -from .Objects import ( - CONTEXT_ID, CONTEXTS, DEVICE_O1_UUID, DEVICE_R1_UUID, DEVICE_R3_UUID, DEVICES, LINKS, TOPOLOGIES, WIM_MAPPING, - WIM_PASSWORD, WIM_USERNAME) +from nbi.tests.mock_osm.MockOSM import MockOSM +from .Fixtures import context_client, osm_wim # pylint: disable=unused-import +from .Objects import ( + CONTEXT_ID, CONTEXTS, DEVICE_O1_UUID, DEVICE_R1_UUID, DEVICE_R3_UUID, + DEVICES, LINKS, TOPOLOGIES, WIM_MAPPING, WIM_PASSWORD, WIM_USERNAME, +) LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) -- GitLab