Merge "Test suite for flex-grid support" into stable/aluminium
authorGuillaume Lambert <guillaume.lambert@orange.com>
Fri, 25 Sep 2020 09:34:53 +0000 (09:34 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Fri, 25 Sep 2020 09:34:53 +0000 (09:34 +0000)
32 files changed:
common/src/test/java/org/opendaylight/transportpce/common/device/DeviceTransactionManagerTest.java
docs/developer-guide.rst
docs/user-guide.rst
olm/pom.xml
olm/src/test/java/org/opendaylight/transportpce/olm/service/OlmPowerServiceImplTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceServiceRPCImplTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImplTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestUtils.java
tapi/pom.xml
tests/transportpce_tests/1.2.1/test_end2end.py
tests/transportpce_tests/1.2.1/test_gnpy.py
tests/transportpce_tests/1.2.1/test_olm.py
tests/transportpce_tests/1.2.1/test_pce.py
tests/transportpce_tests/1.2.1/test_portmapping.py
tests/transportpce_tests/1.2.1/test_renderer_service_path_nominal.py
tests/transportpce_tests/1.2.1/test_topo_portmapping.py [moved from tests/transportpce_tests/1.2.1/test_topoPortMapping.py with 83% similarity]
tests/transportpce_tests/1.2.1/test_topology.py
tests/transportpce_tests/2.2.1/test_end2end.py
tests/transportpce_tests/2.2.1/test_olm.py
tests/transportpce_tests/2.2.1/test_otn_end2end.py
tests/transportpce_tests/2.2.1/test_otn_renderer.py
tests/transportpce_tests/2.2.1/test_otn_sh_renderer.py
tests/transportpce_tests/2.2.1/test_otn_topology.py
tests/transportpce_tests/2.2.1/test_portmapping.py
tests/transportpce_tests/2.2.1/test_renderer_service_path_nominal.py
tests/transportpce_tests/2.2.1/test_tapi.py
tests/transportpce_tests/2.2.1/test_topo_portmapping.py [moved from tests/transportpce_tests/2.2.1/test_topoPortMapping.py with 93% similarity]
tests/transportpce_tests/2.2.1/test_topology.py
tests/transportpce_tests/common/__init__.py [new file with mode: 0644]
tests/transportpce_tests/common/test_utils.py
tox.ini

index f08e6f498cd858b61dd6dd9843b43f59c3c28cb4..c54646eae07a3f0b6f0fe6530b1db7b36bdbcc2e 100644 (file)
@@ -10,18 +10,13 @@ package org.opendaylight.transportpce.common.device;
 
 import static org.mockito.ArgumentMatchers.any;
 
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.MoreExecutors;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
-import org.eclipse.jdt.annotation.NonNull;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -35,7 +30,6 @@ import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.MountPoint;
 import org.opendaylight.mdsal.binding.api.MountPointService;
 import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
-import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkBuilder;
@@ -47,10 +41,15 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 @RunWith(MockitoJUnitRunner.class)
 public class DeviceTransactionManagerTest {
 
-    @Mock private MountPointService mountPointServiceMock;
-    @Mock private MountPoint mountPointMock;
-    @Mock private DataBroker dataBrokerMock;
-    @Mock private ReadWriteTransaction rwTransactionMock;
+    @Mock
+    private MountPointService mountPointServiceMock;
+    @Mock
+    private MountPoint mountPointMock;
+    @Mock
+    private DataBroker dataBrokerMock;
+    @Mock
+    private ReadWriteTransaction rwTransactionMock;
+
 
     private DeviceTransactionManagerImpl transactionManager;
     private String defaultDeviceId = "device-id";
@@ -296,55 +295,6 @@ public class DeviceTransactionManagerTest {
         Mockito.verify(rwTransactionMock, Mockito.times(1)).commit();
     }
 
-    @Test
-    @Ignore
-    public void submitTxTimeoutTransactionTest() {
-        Future<java.util.Optional<DeviceTransaction>> deviceTxFuture =
-                transactionManager.getDeviceTransaction(defaultDeviceId);
-        DeviceTransaction deviceTx;
-        try {
-            deviceTx = deviceTxFuture.get().get();
-        } catch (InterruptedException | ExecutionException e) {
-            Assert.fail("Exception catched! " + e);
-            return;
-        }
-
-        deviceTx.put(defaultDatastore, defaultIid, defaultData);
-
-        Exception throwedException = null;
-
-        FluentFuture<? extends @NonNull CommitInfo> submitFuture = deviceTx.commit(200, defaultTimeUnit);
-        try {
-            submitFuture.get();
-        } catch (InterruptedException e) {
-            Assert.fail("Exception catched! " + e);
-        } catch (ExecutionException e) {
-            throwedException = e;
-        }
-
-        if (throwedException == null
-                || !throwedException.getMessage().contains(TimeoutException.class.getName())) {
-            Assert.fail("TimeoutException inside of should be thrown!");
-            return;
-        }
-
-
-        Mockito.doReturn(FluentFutures.immediateNullFluentFuture()).when(rwTransactionMock.commit());
-
-        try {
-            putAndSubmit(transactionManager, defaultDeviceId, defaultDatastore, defaultIid, defaultData);
-        } catch (InterruptedException | ExecutionException e) {
-            Assert.fail("Exception catched! " + e);
-            return;
-        }
-
-        Mockito.verify(rwTransactionMock, Mockito.times(2)).put(defaultDatastore, defaultIid, defaultData);
-        Mockito.verify(rwTransactionMock, Mockito.times(2)).commit();
-        ListeningExecutorService executor = MoreExecutors
-                .listeningDecorator(Executors.newSingleThreadExecutor());
-        executor.shutdown();
-    }
-
     private <T extends DataObject> void putAndSubmit(DeviceTransactionManagerImpl deviceTxManager, String deviceId,
             LogicalDatastoreType store, InstanceIdentifier<T> path, T data)
             throws ExecutionException, InterruptedException {
index 9ee1f622661664da994338cc7cfaa491f55d4213..7ea61b67d9b2277d1333dfd8b237137dd00d6141 100644 (file)
@@ -47,13 +47,18 @@ Initial design of TransportPCE leverages OpenROADM Multi-Source-Agreement (MSA)
 which defines interoperability specifications, consisting of both Optical
 interoperability and Yang data models.
 
-Experimental support of OTN layer is introduced in Magnesium release of
-OpenDaylight. By experimental, we mean not all features can be accessed through
-northbound API based on RESTCONF encoded OpenROADM Service model. In the meanwhile,
-"east/west" APIs shall be used to trigger a path computation in the PCE (using
-path-computation-request RPC) and to create services (using otn-service-path RPC).
-OTN support will be improved in the following magnesium releases.
+End to end OTN services such as OCH-OTU4, structured ODU4 or 10GE-ODU2e
+services are supported since Magnesium SR2. OTN support will continue to be
+improved in the following releases of Magnesium and Aluminium.
 
+An experimental support of Flexgrid is introduced in Aluminium. Depending on
+OpenROADM device models, optical interfaces can be created according to the
+initial fixed grid (for R1.2.1, 96 channels regularly spaced of 50 GHz), or to
+a flexgrid (for R2.2.1 use of specific number of subsequent frequency slots of
+6.25 GHz depending on one side of ROADMs and transponders capabilities and on
+the other side of the rate of the channel. The full support of Flexgrid,
+including path computation and the creation of B100G (Beyond 100 Gbps) higher
+rate interfaces will be added in the following releases of Aluminium.
 
 
 Module description
@@ -74,8 +79,12 @@ Renderer and the OLM to delete connections and reset power levels associated wit
 service. The service-list is updated following a successful service deletion. In Neon SR0 is
 added the support for service from ROADM to ROADM, which brings additional flexibility and
 notably allows reserving resources when transponders are not in place at day one.
-The full support of OTN services, including OTU, HO-ODU and LO-ODU will be introduced
-in next release of Magnesium.
+Magnesium SR2 fully supports end-to-end OTN services which are part of the OTN infrastructure.
+It concerns the management of OCH-OTU4 (also part of the optical infrastructure) and structured
+HO-ODU4 services. Moreover, once these two kinds of OTN infrastructure service created, it is
+possible to manage some LO-ODU services (for the time being, only 10GE-ODU2e services).
+The full support of OTN services, including 1GE-ODU0 or 100GE, will be introduced along next
+releases (Mg/Al).
 
 PCE
 ^^^
@@ -91,10 +100,14 @@ allows keeping PCE aligned with the latest changes in the topology. Information
 about current and planned services is available in the MD-SAL data store.
 
 Current implementation of PCE allows finding the shortest path, minimizing either the hop
-count (default) or the propagation delay. Wavelength is assigned considering a fixed grid of
-96 wavelengths. In Neon SR0, the PCE calculates the OSNR, on the base of incremental
-noise specifications provided in Open ROADM MSA. The support of unidirectional ports is
-also added. PCE handles the following constraints as hard constraints:
+count (default) or the propagation delay. Central wavelength is assigned considering a fixed
+grid of 96 wavelengths 50 GHz spaced. The assignment of wavelengths according to a flexible
+grid considering 768 subsequent slots of 6,25 GHz (total spectrum of 4.8 Thz), and their
+occupation by existing services is planned for later releases.
+In Neon SR0, the PCE calculates the OSNR, on the base of incremental noise specifications
+provided in Open ROADM MSA. The support of unidirectional ports is also added.
+
+PCE handles the following constraints as hard constraints:
 
 -   **Node exclusion**
 -   **SRLG exclusion**
@@ -133,11 +146,11 @@ It includes several network layers:
    Add/Drop modules ("SRGs") are separated from the degrees which includes line
    amplifiers and WSS that switch wavelengths from one to another degree**
 -  **OTN layer introduced in Magnesium includes transponders as well as switch-ponders and
-   mux-ponders having the ability to switch OTN containers from client to line cards. SR0 release
-   includes creation of the switching pool (used to model cross-connect matrices),
+   mux-ponders having the ability to switch OTN containers from client to line cards. Mg SR0
+   release includes creation of the switching pool (used to model cross-connect matrices),
    tributary-ports and tributary-slots at the initial connection of NETCONF devices.
-   However, the population of OTN links, and the adjustment of the tributary ports/slots
-   pull occupancy when OTN services are created will be handled in later Magnesium release.**
+   The population of OTN links (OTU4 and ODU4), and the adjustment of the tributary ports/slots
+   pool occupancy when OTN services are created is supported since Magnesium SR2.**
 
 
 Renderer
@@ -169,8 +182,8 @@ rollback function is called to set the equipment on the path back to their initi
 
 Magnesium brings the support of OTN services. SR0 supports the creation of OTU4, ODU4, ODU2/ODU2e
 and ODU0 interfaces. The creation of these low-order otn interfaces must be triggered through
-otn-service-path RPC. Full support (service-implementation-request /service delete rpc, topology
-alignement after the service has been created) will be provided in later releases of Magnesium.
+otn-service-path RPC. Magnesium SR2 fully supports end-to-end otn service implementation into devices
+(service-implementation-request /service delete rpc, topology alignement after the service has been created).
 
 
 OLM
@@ -580,40 +593,15 @@ OTN topology, use the following command on the REST API :
 
 **REST API** : *GET /restconf/config/ietf-network:network/otn-topology*
 
-An optical connectivity service shall have been created in a first setp. In Magnesium SR0, the OTN
-links are not automatically populated in the topology after the Och, OTU4 and ODU4 interfaces have
-been created on the two network ports of the xpdr. Thus the otn link must be posted manually through
-the REST API (as APIDoc for example).
-
-**REST API** : *POST /restconf/config/ietf-network:networks/network/otn-topology/ietf-network-topology:link/<link-id>*
-
-**Sample JSON Data**
-
-.. code:: json
-
-   {
-   "ietf-network-topology:link": [
-     {
-       "link-id": "<link-id>",
-         "source": {
-           "source-node": "<xpdr-node-id>",
-           "source-tp": "<xpdr-network-port-id>"
-         },
-         "org-openroadm-common-network:link-type": "OTN-LINK",
-         "destination": {
-           "dest-node": "<xpdr-node-id>",
-           "dest-tp": "<xpdr-network-port-id>"
-         }
-       }
-     ]
-   }
-
+An optical connectivity service shall have been created in a first setp. Since Magnesium SR2, the OTN
+links are automatically populated in the topology after the Och, OTU4 and ODU4 interfaces have
+been created on the two network ports of the xpdr.
 
 Creating a service
 ~~~~~~~~~~~~~~~~~~
 
 Use the *service handler* module to create any end-to-end connectivity service on an OpenROADM
-network. Two kind of end-to-end services are managed by TransportPCE :
+network. Two kind of end-to-end "optical" services are managed by TransportPCE:
 - 100GE service from client port to client port of two transponders (TPDR)
 - Optical Channel (OC) service from client add/drop port (PP port of SRG) to client add/drop port of
 two ROADMs.
@@ -623,26 +611,18 @@ interfaces and cross-connection on each device supporting the service.
 As an example, the creation of a 100GE service implies among other things, the creation of OCH, OTU4
 and ODU4 interfaces on the Network port of TPDR devices.
 
-In Magnesium SR0, the *service handler* module does not manage directly the end-to-end aspect of otn
-connectivity services. OTN services must be manualy created invoking directly the *renderer* module.
+Since Magnesium SR2, the *service handler* module directly manages some end-to-end otn
+connectivity services.
+Before creating a low-order OTN service (1GE or 10GE services terminating on client port of MUXPDR
+or SWITCH), the user must ensure that a high-order ODU4 container exists and has previously been
+configured (it means structured to support low-order otn services) to support low-order OTN containers.
+Thus, OTN service creation implies three steps:
+1. OCH-OTU4 service from network port to network port of two OTN Xponders (MUXPDR or SWITCH)
+2. HO-ODU4 service from network port to network port of two OTN Xponders (MUXPDR or SWITCH)
+3. 10GE service creation from client port to client port of two OTN Xponders (MUXPDR or SWITCH)
 
+The management of other OTN services (1GE-ODU0, 100GE...) is planned for future releases.
 
-Before creating a low-order otn service (1GE or 10GE services terminating on client port of MUXPDR
-or SWITCH), the user must ensure that a high-order ODU4 container exists and has previously been
-configured (low-order structured) to support low-order OTN containers. Thus, otn service creation
-implies two steps:
-1. OCH, OTU-4 and ODU-4 service from network port to network port of two OTN Xponders
-(MUXPDR or SWITCH)
-2. 1GE or 10GE service creation from client port to client port of two OTN Xponders
-(MUXPDR or SWITCH)
-
-Since in Magnesium SR0 otn service creation is not automatically done by TransportPCE, the user has
-to check the connectivity between nodes using the internal API of the *PCE* module, through the
-path-computation-request rpc.
-Afterwards, for the first step otn service creation, the user has to use the internal service-path
-rpc of the *renderer* module.
-Finally, the 1GE and 10GE services creation is performed using internal otn-service-path rpc of the
-*renderer* module.
 
 100GE service creation
 ^^^^^^^^^^^^^^^^^^^^^^
@@ -857,81 +837,350 @@ As for the previous RPC, this RPC invokes the *PCE* module to compute a path ove
 *openroadm-topology* and then invokes *renderer* and *OLM* to implement the end-to-end path into
 the devices.
 
-OTN OCH, OTU4 and ODU4 service creation
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+OTN OCH-OTU4 service creation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-Use the following REST RPC to invoke *renderer* module in order to create adequate interfaces on
-otn device in order to support a bidirectional end-to-end Low-Order OTN connectivity service on
-network port of a MUXPDR or SWITCH xpdr node.
+Use the following REST RPC to invoke *service handler* module in order to create over the optical
+infrastructure a bidirectional end-to-end OTU4 over an optical wavelength connectivity service
+between two optical network ports of OTN Xponder (MUXPDR or SWITCH). Such service configure the
+optical network infrastructure composed of rdm nodes.
 
-**REST API** : *POST /restconf/operations/transportpce-device-renderer:service-path*
+**REST API** : *POST /restconf/operations/org-openroadm-service:service-create*
 
 **Sample JSON Data**
 
 .. code:: json
 
-   {
-     "input": {
-       "nodes": [
-         {
-           "node-id": "<otn-node-id>",
-           "dest-tp": "<otn-network-port-logical-connection-point>"
-         }
-       ],
-           "modulation-format": "qpsk",
-           "operation": "create",
-           "service-name": "<service-name>",
-           "wave-number": "<wavenumber-returned-by-PCE>"
-     }
-   }
+    {
+        "input": {
+            "sdnc-request-header": {
+                "request-id": "request-1",
+                "rpc-action": "service-create",
+                "request-system-id": "appname"
+            },
+            "service-name": "something",
+            "common-id": "commonId",
+            "connection-type": "infrastructure",
+            "service-a-end": {
+                "service-rate": "100",
+                "node-id": "<xpdr-node-id>",
+                "service-format": "OTU",
+                "otu-service-rate": "org-openroadm-otn-common-types:OTU4",
+                "clli": "<ccli-name>",
+                "tx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-network-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "rx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-network-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "optic-type": "gray"
+            },
+            "service-z-end": {
+                "service-rate": "100",
+                "node-id": "<xpdr-node-id>",
+                "service-format": "OTU",
+                "otu-service-rate": "org-openroadm-otn-common-types:OTU4",
+                "clli": "<ccli-name>",
+                "tx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-network-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "rx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-network-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "optic-type": "gray"
+            },
+            "due-date": "yyyy-mm-ddT00:00:01Z",
+            "operator-contact": "some-contact-info"
+        }
+    }
 
-1GE/ODU0 and 10GE/ODU2e service creation
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+As for the previous RPC, this RPC invokes the *PCE* module to compute a path over the
+*openroadm-topology* and then invokes *renderer* and *OLM* to implement the end-to-end path into
+the devices.
+
+OTN HO-ODU4 service creation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Use the following REST RPC to invoke *service handler* module in order to create over the optical
+infrastructure a bidirectional end-to-end ODU4 OTN service over an OTU4 and structured to support
+low-order OTN services (ODU2e, ODU0). As for OTU4, such a service must be created between two network
+ports of OTN Xponder (MUXPDR or SWITCH).
+
+**REST API** : *POST /restconf/operations/org-openroadm-service:service-create*
+
+**Sample JSON Data**
+
+.. code:: json
+
+    {
+        "input": {
+            "sdnc-request-header": {
+                "request-id": "request-1",
+                "rpc-action": "service-create",
+                "request-system-id": "appname"
+            },
+            "service-name": "something",
+            "common-id": "commonId",
+            "connection-type": "infrastructure",
+            "service-a-end": {
+                "service-rate": "100",
+                "node-id": "<xpdr-node-id>",
+                "service-format": "ODU",
+                "otu-service-rate": "org-openroadm-otn-common-types:ODU4",
+                "clli": "<ccli-name>",
+                "tx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-network-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "rx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-network-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "optic-type": "gray"
+            },
+            "service-z-end": {
+                "service-rate": "100",
+                "node-id": "<xpdr-node-id>",
+                "service-format": "ODU",
+                "otu-service-rate": "org-openroadm-otn-common-types:ODU4",
+                "clli": "<ccli-name>",
+                "tx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-network-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "rx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-network-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "optic-type": "gray"
+            },
+            "due-date": "yyyy-mm-ddT00:00:01Z",
+            "operator-contact": "some-contact-info"
+        }
+    }
 
-Use the following REST RPC to invoke *renderer* module and create adequate interfaces on otn xpdr
-device (MUXPDR or SWITCH) in order to support a low-order otn service on its client port.
+As for the previous RPC, this RPC invokes the *PCE* module to compute a path over the
+*otn-topology* that must contains OTU4 links with valid bandwidth parameters, and then
+invokes *renderer* and *OLM* to implement the end-to-end path into the devices.
 
-- 1GE and ODU0 interfaces for 1GE services
-- 10GE and ODU2e interfaces for 10GE services
+OTN 10GE-ODU2e service creation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-The following example corresponds to the creation of a 10GE service
+Use the following REST RPC to invoke *service handler* module in order to create over the OTN
+infrastructure a bidirectional end-to-end 10GE-ODU2e OTN service over an ODU4.
+Such a service must be created between two client ports of OTN Xponder (MUXPDR or SWITCH)
+configured to support 10GE interfaces.
 
-*REST API** : *POST /restconf/operations/transportpce-device-renderer:otn-service-path*
+**REST API** : *POST /restconf/operations/org-openroadm-service:service-create*
 
 **Sample JSON Data**
 
 .. code:: json
 
-   {
-     "input": {
-       "service-rate": "10G",
-       "service-type": "Ethernet",
-       "ethernet-encoding": "something",
-       "trib-slot": "<trib-slot-number-inside-supported-ODU4>",
-       "trib-port-number": "<trib-port-number-inside-supported-ODU4>",
-       "operation": "create",
-       "service-name": "something",
-       "nodes": [
-         {
-         "node-id": "<otn-node-id>",
-         "client-tp": "<client-port-logical-connection-point>",
-         "network-tp": "<network-port-logical-connection-point>"
-         }
-       ]
-     }
-   }
+    {
+        "input": {
+            "sdnc-request-header": {
+                "request-id": "request-1",
+                "rpc-action": "service-create",
+                "request-system-id": "appname"
+            },
+            "service-name": "something",
+            "common-id": "commonId",
+            "connection-type": "service",
+            "service-a-end": {
+                "service-rate": "10",
+                "node-id": "<xpdr-node-id>",
+                "service-format": "Ethernet",
+                "clli": "<ccli-name>",
+                "subrate-eth-sla": {
+                    "subrate-eth-sla": {
+                        "committed-info-rate": "10000",
+                        "committed-burst-size": "64"
+                    }
+                },
+                "tx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-client-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "rx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-client-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "optic-type": "gray"
+            },
+            "service-z-end": {
+                "service-rate": "10",
+                "node-id": "<xpdr-node-id>",
+                "service-format": "Ethernet",
+                "clli": "<ccli-name>",
+                "subrate-eth-sla": {
+                    "subrate-eth-sla": {
+                        "committed-info-rate": "10000",
+                        "committed-burst-size": "64"
+                    }
+                },
+                "tx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-client-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "rx-direction": {
+                    "port": {
+                        "port-device-name": "<xpdr-node-id-in-otn-topology>",
+                        "port-type": "fixed",
+                        "port-name": "<xpdr-client-port-in-otn-topology>",
+                        "port-rack": "000000.00",
+                        "port-shelf": "Chassis#1"
+                    },
+                    "lgx": {
+                        "lgx-device-name": "Some lgx-device-name",
+                        "lgx-port-name": "Some lgx-port-name",
+                        "lgx-port-rack": "000000.00",
+                        "lgx-port-shelf": "00"
+                    }
+                },
+                "optic-type": "gray"
+            },
+            "due-date": "yyyy-mm-ddT00:00:01Z",
+            "operator-contact": "some-contact-info"
+        }
+    }
+
+As for the previous RPC, this RPC invokes the *PCE* module to compute a path over the
+*otn-topology* that must contains ODU4 links with valid bandwidth parameters, and then
+invokes *renderer* and *OLM* to implement the end-to-end path into the devices.
 
-.. note::
-    OTN links are not automatically populated in the topology after the ODU2e interfaces have
-    been created on the two client ports of the xpdr. The otn link can be posted manually through
-    the REST API (APIDoc).
 
 .. note::
-    With Magnesium SR0, the service-list corresponding to 1GE/10GE and OTU4/ODU4 services is not
-    updated in the datastore after the interfaces have been created in the device.
+    Since Magnesium SR2, the service-list corresponding to OCH-OTU4, ODU4 or again 10GE-ODU2e services is
+    updated in the service-list datastore.
 
 .. note::
-    trib-slot is used when the equipment supports contiguous trib-slot allocation (supported in
+    trib-slot is used when the equipment supports contiguous trib-slot allocation (supported from
     Magnesium SR0). The trib-slot provided corresponds to the first of the used trib-slots.
     complex-trib-slots will be used when the equipment does not support contiguous trib-slot
     allocation. In this case a list of the different trib-slots to be used shall be provided.
@@ -940,8 +1189,8 @@ The following example corresponds to the creation of a 10GE service
 Deleting a service
 ~~~~~~~~~~~~~~~~~~
 
-Deleting a 100GE and OC service
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Deleting any kind of service
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Use the following REST RPC to invoke *service handler* module in order to delete a given optical
 connectivity service.
@@ -969,68 +1218,13 @@ connectivity service.
 
 Most important parameters for this REST RPC is the *service-name*.
 
-Deleting 1GE/ODU0 or 10GE/ODU2e
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Use the following REST RPC to invoke *renderer* module and delete adequate interfaces on otn node.
-The following example corresponds to the deletion of a 10GE service
-
-*REST API** : *POST /restconf/operations/transportpce-device-renderer:otn-service-path*
-
-**Sample JSON Data**
-
-.. code:: json
-
-   {
-     "input": {
-       "service-rate": "10G",
-       "service-type": "Ethernet",
-       "ethernet-encoding": "something",
-       "trib-slot": "<trib-slot-number-inside-supported-ODU4>",
-       "trib-port-number": "<trib-port-number-inside-supported-ODU4>",
-       "operation": "delete",
-       "service-name": "something",
-       "nodes": [
-         {
-         "node-id": "<otn-node-id>",
-         "client-tp": "<client-port-logical-connection-point>",
-         "network-tp": "<network-port-logical-connection-point>"
-         }
-       ]
-     }
-   }
-
-
-Deleting OTN OCH, OTU4 and ODU4 service
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Use the following REST RPC to invoke *renderer* module in order to delete adequate interfaces on
-otn node.
-
-**REST API** : *POST /restconf/operations/transportpce-device-renderer:service-path*
-
-**Sample JSON Data**
-
-.. code:: json
-
-   {
-     "input": {
-       "nodes": [
-         {
-           "node-id": "<otn-node-id>",
-           "dest-tp": "<otn-network-port-logical-connection-point>"
-         }
-       ],
-       "modulation-format": "qpsk",
-       "operation": "delete",
-       "service-name": "<service-name>",
-       "wave-number": "<wavenumber-returned-by-PCE>",
-     }
-   }
 
 .. note::
-    Be sure to have deleted all low-order otn services before deleting high-order OTN container
-
+    Deleting OTN services implies proceeding in the reverse way to their creation. Thus, OTN
+    service deletion must respect the three following steps:
+    1. delete first all 10GE services supported over any ODU4 to be deleted
+    2. delete ODU4
+    3. delete OCH-OTU4 supporting the just deleted ODU4
 
 Invoking PCE module
 ~~~~~~~~~~~~~~~~~~~
index 6cb4eac7eaf5512791ac6b0cc4f36bc429a45180..a68f749a4d4c85654b6c03113a3931c0979ee4e4 100644 (file)
@@ -63,6 +63,8 @@ Preparing for Installation
 
 1. Devices must support the standard OpenROADM Models more precisely versions 1.2.1 and 2.2.1.
    Since Magnesium SR0, an OTN experimental support is provided for OpenROADM devices 2.2.1.
+   Magnesium SR2 is the first release managing end-to-end OTN services, as OCH-OTU4,
+   structured ODU4 or again 10GE-ODU2e services.
 
 2. Devices must support configuration through NETCONF protocol/API.
 
@@ -79,6 +81,13 @@ if you need TAPI limited support, then run::
 
    feature:install odl-transportpce-tapi
 
+When installing the TAPI feature, you might encounter a heap memory size problem in Karaf.
+In that case, consider increasing Karaf heap memory size.
+For example by modifying the environment variables JAVA_MIN_MEM and JAVA_MAX_MEM before starting Karaf::
+
+   export JAVA_MIN_MEM=1024M
+   export JAVA_MAX_MEM=4069M
+
 if you need the inventory external connector support limited to 1.2.1 OpenROADM devices, then run::
 
    feature:install odl-transportpce-inventory
index ed80430c8b3eb1cd2cb274f07d19bd08851f0296..9ed31e642d580a7b22095bd7673c8aa051c24db0 100644 (file)
@@ -28,8 +28,8 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>${project.groupId}</groupId>
       <artifactId>test-common</artifactId>
       <version>${project.version}</version>
+      <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
@@ -62,6 +62,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <version>3.0.2</version>
       <optional>true</optional>
     </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>transportpce-common</artifactId>
+      <version>${project.version}</version>
+    </dependency>
   </dependencies>
-
 </project>
index c446799265086f3e5c58dddb1af79a6958c38cb0..c4b7c254a59a01b4c652d865bc0b3ae519e64d72 100644 (file)
@@ -195,57 +195,6 @@ public class OlmPowerServiceImplTest  extends AbstractTest {
         Assert.assertEquals("Failed", output.getResult());
     }
 
-    /*
-    @Test
-    public void testCalculateSpanlossBase() {
-        CalculateSpanlossBaseInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossBaseInput();
-        //TODO
-        Mockito.when(this.olmPowerServiceMock.calculateSpanlossBase(Mockito.any()))
-                .thenReturn(new CalculateSpanlossBaseOutputBuilder().setResult("Failed").build());
-        CalculateSpanlossBaseOutput output = this.olmPowerServiceMock.calculateSpanlossBase(input);
-        Assert.assertEquals("Failed", output.getResult());
-
-    }
-    */
-
-    /*
-    @Test
-    public void testCalculateSpanlossBase2() {
-        NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
-<<<<<<< HEAD
-        InstanceIdentifier<Network1> networkIID = InstanceIdentifier.builder(Networks.class)
-            .child(Network.class, overlayTopologyKey)
-=======
-        InstanceIdentifier<Network1> networkTopoIID = InstanceIdentifier.builder(Networks.class)
-                .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
-                                .ietf.network.rev180226.networks.Network.class,
-                        overlayTopologyKey)
->>>>>>> 87d8bf0... Retrieve OLM modifs from change 80051
-            .augmentation(Network1.class)
-            .build();
-        InstanceIdentifier<Network> networkIID = InstanceIdentifier.builder(Networks.class)
-                .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
-                                .ietf.network.rev180226.networks.Network.class,
-                        overlayTopologyKey)
-                .build();
-        Network1 network = TransactionUtils.getNetwork();
-        Network ietfNetwork = TransactionUtils.getOverLayNetwork();
-        TransactionUtils.writeTransaction(this.getDataBroker(), networkIID, ietfNetwork);
-        TransactionUtils.writeTransaction(this.getDataBroker(), networkTopoIID, network);
-        try {
-            Thread.sleep(1000);
-        } catch (InterruptedException e) {
-            LOG.error("Write transaction failed !",e);
-        }
-        CalculateSpanlossBaseInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossBaseInput();
-        //TODO
-        Mockito.when(this.olmPowerServiceMock.calculateSpanlossBase(Mockito.any()))
-                .thenReturn(new CalculateSpanlossBaseOutputBuilder().setResult("Failed").build());
-        CalculateSpanlossBaseOutput output = this.olmPowerServiceMock.calculateSpanlossBase(input);
-        Assert.assertEquals("Failed", output.getResult());
-
-    }
-    */
     @Ignore
     @Test
     public void testCalculateSpanlossBase3() {
@@ -313,60 +262,6 @@ public class OlmPowerServiceImplTest  extends AbstractTest {
 
     }
 
-//    @Test
-//    public void testCalculateSpanlossBase4() throws InterruptedException {
-//        NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
-//        InstanceIdentifier<Network1> networkIID = InstanceIdentifier.builder(Network.class, overlayTopologyKey)
-//            .augmentation(Network1.class)
-//            .build();
-//        Network1 network = TransactionUtils.getNetwork2();
-//        TransactionUtils.writeTransaction(this.getDataBroker(), networkIID, network);
-//
-//        Thread.sleep(500);
-//
-//        List<NodeId> nodes = TransactionUtils.getNodes();
-//        Node n;
-//        SupportingNode sn;
-//
-//        List<SupportingNode> snl;
-//        NodeId n5 = new NodeId("node 5");
-//        KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII2 =
-//            InstanceIdentifiers.UNDERLAY_NETWORK_II.child(Node.class, new NodeKey(n5));
-//
-//        sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
-//            .setNodeRef(n5).build();
-//        snl = new ArrayList<>();
-//        snl.add(sn);
-//        n = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
-//            .network.NodeBuilder().setNodeId(n5).build();
-//        TransactionUtils.writeTransaction(this.getDataBroker(), mappedNodeII2, n);
-//        Thread.sleep(500);
-//
-//        for(int i=0; i < nodes.size(); i++) {
-//            KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII =
-//                InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(nodes.get(i)));
-//            if (i != 0){
-//                sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
-//                    .setNodeRef(nodes.get(i-1)).build();
-//            }else {
-//                sn = new SupportingNodeBuilder().setNodeRef(n5).build();
-//            }
-//            snl = new ArrayList<>();
-//            snl.add(sn);
-//            n = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
-//                .network.NodeBuilder().setNodeId(nodes.get(i)).setSupportingNode(snl).build();
-//            TransactionUtils.writeTransaction(this.getDataBroker(), mappedNodeII, n);
-//            Thread.sleep(500);
-//        }
-//
-//        Thread.sleep(1000);
-//
-//        CalculateSpanlossBaseInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossBaseInput2();
-//        CalculateSpanlossBaseOutput output = this.olmPowerService.calculateSpanlossBase(input);
-//        Assert.assertEquals("Failed", output.getResult());
-//
-//    }
-
     @Test
     public void testCalculateSpanlossCurrent1() {
         CalculateSpanlossCurrentInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossCurrentInput();
index 9e785ad57ea4c3d11d8fc5f965eb0b35c5dbbc91..06251d40cbd4c7dc8e81a9974346dd2e39468aaf 100644 (file)
@@ -27,7 +27,6 @@ import org.opendaylight.transportpce.test.AbstractTest;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.CancelResourceReserveInputBuilder;
 
 
-
 @Ignore
 public class PceServiceRPCImplTest extends AbstractTest {
 
index f5ce3c6e081b0e67ea2644c1ec9b88704cf28060..5f5b45de903ac0670e8c88b2c36cdcf80fd9e64a 100644 (file)
@@ -49,7 +49,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top
 import org.opendaylight.yangtools.yang.common.Uint32;
 
 
-
 @Ignore
 public class PceLinkTest extends AbstractTest {
 
index bae865b44d067a1392e62480d3adde5b26921860..9553a741a24a9572ecc00d74fba2017125a6e4ea 100644 (file)
@@ -36,7 +36,6 @@ import org.opendaylight.yang.gen.v1.gnpy.path.rev200909.result.ResponseBuilder;
 import org.opendaylight.yang.gen.v1.gnpy.path.rev200909.result.response.response.type.NoPathCaseBuilder;
 import org.opendaylight.yang.gen.v1.gnpy.path.rev200909.result.response.response.type.PathCaseBuilder;
 
-
 @Ignore
 public class PathComputationServiceImplTest extends AbstractTest {
 
index 61da615cc8caea733b9a04673fee52c5af2a0990..24b6c110b4a8275f033b2ebcab49334ef6fd829b 100644 (file)
@@ -93,7 +93,7 @@ public final class PceTestUtils {
             saveOpenRoadmNetwork(networkMap.get(0), NetworkUtils.UNDERLAY_NETWORK_ID, dataBroker);
             networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(topoReader,
                     QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
-            saveOpenRoadmNetwork(networkMap.get(0), NetworkUtils.OVERLAY_NETWORK_ID, dataBroker);
+            saveOpenRoadmNetwork(networkMap.get(0), NetworkUtils.UNDERLAY_NETWORK_ID, dataBroker);
         } catch (IOException | ExecutionException | InterruptedException e) {
             LOG.error("Cannot init test ", e);
             Assert.fail("Cannot init test ");
index dc585670b0ac94ad0d46c3371d59ec05494d10d1..4132c43f6503f5ecb963124622586c738f826029 100644 (file)
@@ -100,6 +100,7 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
       <groupId>${project.groupId}</groupId>
       <artifactId>test-common</artifactId>
       <version>${project.version}</version>
+      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
index dd0c9bd17a292965e33b16f846552113aabba35e..43c0348130c47a143b76a8c6882a4819758dfe2f 100644 (file)
@@ -8,8 +8,9 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
 
-import json
 import time
 import unittest
 
@@ -126,6 +127,7 @@ class TransportPCEFulltesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
index 3b8b69be2c83f8849ab0576eaaf977bb06185bc7..80a92bf0dc1146f0c0ded39da425880431e7d828 100644 (file)
@@ -9,8 +9,10 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
-import json
 import os
 import sys
 import time
@@ -20,13 +22,6 @@ from common import test_utils
 
 class TransportGNPYtesting(unittest.TestCase):
 
-    @classmethod
-    def __init_logfile(cls):
-        GNPY_LOGFILE = os.path.join(os.path.dirname(os.path.realpath(__file__)),
-                                    "..", "..", "transportpce_tests", "gnpy.log")
-        if os.path.isfile(GNPY_LOFGILE):
-            os.remove(GNPY_LOFGILE)
-
     topo_cllinet_data = None
     topo_ordnet_data = None
     topo_ordtopo_data = None
@@ -34,6 +29,7 @@ class TransportGNPYtesting(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
+        # pylint: disable=bare-except
         try:
             sample_files_parsed = False
             TOPO_CLLINET_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)),
@@ -68,6 +64,7 @@ class TransportGNPYtesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -94,8 +91,10 @@ class TransportGNPYtesting(unittest.TestCase):
     # Path computed by PCE is feasible according to Gnpy
     def test_04_path_computation_FeasibleWithPCE(self):
         response = test_utils.path_computation_request("request-1", "service-1",
-                {"node-id": "XPONDER-1", "service-rate": "100", "service-format": "Ethernet", "clli": "Node1"},
-                {"node-id": "XPONDER-5", "service-rate": "100", "service-format": "Ethernet", "clli": "Node5"})
+                                                       {"node-id": "XPONDER-1", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "Node1"},
+                                                       {"node-id": "XPONDER-5", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "Node5"})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertEqual(res['output']['configuration-response-common'][
@@ -115,12 +114,15 @@ class TransportGNPYtesting(unittest.TestCase):
     # another one (low SNR)
     def test_05_path_computation_FoundByPCE_NotFeasibleByGnpy(self):
         response = test_utils.path_computation_request("request-2", "service-2",
-            {"node-id": "XPONDER-1", "service-rate": "100", "service-format": "Ethernet", "clli": "Node1"},
-            {"node-id": "XPONDER-5", "service-rate": "100", "service-format": "Ethernet", "clli": "Node5"},
-            {"include_": { "ordered-hops": [
-              {"hop-number": "0", "hop-type": {"node-id": "OpenROADM-2"}},
-              {"hop-number": "1", "hop-type": {"node-id": "OpenROADM-3"}},
-              {"hop-number": "2", "hop-type": {"node-id": "OpenROADM-4"}}]}})
+                                                       {"node-id": "XPONDER-1", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "Node1"},
+                                                       {"node-id": "XPONDER-5", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "Node5"},
+                                                       {"include_": {"ordered-hops": [
+                                                           {"hop-number": "0", "hop-type": {"node-id": "OpenROADM-2"}},
+                                                           {"hop-number": "1", "hop-type": {"node-id": "OpenROADM-3"}},
+                                                           {"hop-number": "2", "hop-type": {"node-id": "OpenROADM-4"}}]}
+                                                        })
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertEqual(res['output']['configuration-response-common'][
@@ -141,11 +143,14 @@ class TransportGNPYtesting(unittest.TestCase):
     # #PCE cannot find a path while GNPy finds a feasible one
     def test_06_path_computation_NotFoundByPCE_FoundByGNPy(self):
         response = test_utils.path_computation_request("request-3", "service-3",
-            {"node-id": "XPONDER-1", "service-rate": "100", "service-format": "Ethernet", "clli": "Node1"},
-            {"node-id": "XPONDER-4", "service-rate": "100", "service-format": "Ethernet", "clli": "Node5"},
-            {"include_": {"ordered-hops": [
-               {"hop-number": "0", "hop-type": {"node-id": "OpenROADM-2"}},
-               {"hop-number": "1", "hop-type": {"node-id": "OpenROADM-3"}}]}})
+                                                       {"node-id": "XPONDER-1", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "Node1"},
+                                                       {"node-id": "XPONDER-4", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "Node5"},
+                                                       {"include_": {"ordered-hops": [
+                                                           {"hop-number": "0", "hop-type": {"node-id": "OpenROADM-2"}},
+                                                           {"hop-number": "1", "hop-type": {"node-id": "OpenROADM-3"}}]}
+                                                        })
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertEqual(res['output']['configuration-response-common'][
@@ -164,13 +169,16 @@ class TransportGNPYtesting(unittest.TestCase):
     # Not found path by PCE and GNPy cannot find another one
     def test_07_path_computation_FoundByPCE_NotFeasibleByGnpy(self):
         response = test_utils.path_computation_request("request-4", "service-4",
-            {"node-id": "XPONDER-1", "service-rate": "100", "service-format": "Ethernet", "clli": "Node1"},
-            {"node-id": "XPONDER-4", "service-rate": "100", "service-format": "Ethernet", "clli": "Node5"},
-            {"include_": {"ordered-hops": [
-                {"hop-number": "0","hop-type": {"node-id": "OpenROADM-2"}},
-                {"hop-number": "1","hop-type": {"node-id": "OpenROADM-3"}},
-                {"hop-number": "2","hop-type": {"node-id": "OpenROADM-4"}},
-                {"hop-number": "3","hop-type": {"node-id": "OpenROADM-3"}}]}})
+                                                       {"node-id": "XPONDER-1", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "Node1"},
+                                                       {"node-id": "XPONDER-4", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "Node5"},
+                                                       {"include_": {"ordered-hops": [
+                                                           {"hop-number": "0", "hop-type": {"node-id": "OpenROADM-2"}},
+                                                           {"hop-number": "1", "hop-type": {"node-id": "OpenROADM-3"}},
+                                                           {"hop-number": "2", "hop-type": {"node-id": "OpenROADM-4"}},
+                                                           {"hop-number": "3", "hop-type": {"node-id": "OpenROADM-3"}}]}
+                                                        })
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertEqual(res['output']['configuration-response-common'][
index b0711ab1b8767aafd3c127be03882bfb6a01c66b..f7155e8bc1624e2507f2d3d64e7548fec2f569a7 100644 (file)
@@ -9,9 +9,11 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 #############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
 import time
-import json
 import requests
 from common import test_utils
 
@@ -27,6 +29,7 @@ class TransportOlmTesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -426,7 +429,7 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertIn('Request processed', res["output"]["result"])
         time.sleep(10)
 
-    """to test case where SRG where the xpdr is connected to has no optical range data"""
+    #"""to test case where SRG where the xpdr is connected to has no optical range data"""
 
     def test_31_connect_xprdA_to_roadmA(self):
         response = test_utils.connect_xpdr_to_rdm_request("XPDRA01", "1", "2",
index be417d8f95f6d5d7d1e08a5c9ecf5019e89d3ab7..e7e255f9134ecd311beb997f59dae9ab4c646ef8 100644 (file)
@@ -8,8 +8,10 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
-import json
 import os
 import sys
 import time
@@ -26,6 +28,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
+        # pylint: disable=bare-except
         try:
             sample_files_parsed = False
             TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)),
@@ -61,6 +64,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -96,8 +100,10 @@ class TransportPCEtesting(unittest.TestCase):
     # Path Computation success
     def test_04_path_computation_xpdr_bi(self):
         response = test_utils.path_computation_request("request-1", "service-1",
-                {"node-id": "XPDRA01", "service-rate": "100", "service-format": "Ethernet", "clli": "nodeA"},
-                {"node-id": "XPDRC01", "service-rate": "100", "service-format": "Ethernet", "clli": "nodeC"})
+                                                       {"node-id": "XPDRA01", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "nodeA"},
+                                                       {"node-id": "XPDRC01", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "nodeC"})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Path is calculated',
@@ -107,8 +113,10 @@ class TransportPCEtesting(unittest.TestCase):
     # Path Computation success
     def test_05_path_computation_rdm_bi(self):
         response = test_utils.path_computation_request("request-1", "service-1",
-                {"node-id": "ROADMA01", "service-rate": "100", "service-format": "Ethernet", "clli": "NodeA"},
-                {"node-id": "ROADMC01", "service-rate": "100", "service-format": "Ethernet", "clli": "NodeC"})
+                                                       {"node-id": "ROADMA01", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "NodeA"},
+                                                       {"node-id": "ROADMC01", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "NodeC"})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Path is calculated',
@@ -156,8 +164,10 @@ class TransportPCEtesting(unittest.TestCase):
     # Path Computation success
     def test_11_path_computation_xpdr_uni(self):
         response = test_utils.path_computation_request("request-1", "service-1",
-                {"node-id": "XPONDER-1-2", "service-rate": "100", "service-format": "Ethernet", "clli": "ORANGE1"},
-                {"node-id": "XPONDER-3-2", "service-rate": "100", "service-format": "Ethernet", "clli": "ORANGE3"})
+                                                       {"node-id": "XPONDER-1-2", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "ORANGE1"},
+                                                       {"node-id": "XPONDER-3-2", "service-rate": "100",
+                                                           "service-format": "Ethernet", "clli": "ORANGE3"})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Path is calculated',
@@ -167,8 +177,10 @@ class TransportPCEtesting(unittest.TestCase):
     # Path Computation success
     def test_12_path_computation_rdm_uni(self):
         response = test_utils.path_computation_request("request1", "service1",
-                {"service-rate": "100", "service-format": "Ethernet", "clli": "cll21", "node-id": "OpenROADM-2-1"},
-                {"service-rate": "100", "service-format": "Ethernet", "clli": "ncli22", "node-id": "OpenROADM-2-2"})
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "clli": "cll21", "node-id": "OpenROADM-2-1"},
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "clli": "ncli22", "node-id": "OpenROADM-2-2"})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Path is calculated',
@@ -181,9 +193,9 @@ class TransportPCEtesting(unittest.TestCase):
         for i in range(0, 15):
             atoz = res['output']['response-parameters']['path-description']['aToZ-direction']['aToZ'][i]
             ztoa = res['output']['response-parameters']['path-description']['zToA-direction']['zToA'][i]
-            if (atoz['id'] == '14'):
+            if atoz['id'] == '14':
                 self.assertEqual(atoz['resource']['tp-id'], 'SRG1-PP1-TX')
-            if (ztoa['id'] == '0'):
+            if ztoa['id'] == '0':
                 self.assertEqual(ztoa['resource']['tp-id'], 'SRG1-PP1-RX')
         time.sleep(5)
 
@@ -218,7 +230,7 @@ class TransportPCEtesting(unittest.TestCase):
     # Test failed path computation
     def test_17_fail_path_computation(self):
         response = test_utils.post_request(test_utils.URL_PATH_COMPUTATION_REQUEST,
-                {"input": { "service-handler-header": { "request-id": "request-1" }}})
+                                           {"input": {"service-handler-header": {"request-id": "request-1"}}})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Service Name is not set',
@@ -228,47 +240,53 @@ class TransportPCEtesting(unittest.TestCase):
     # Test1 success path computation
     def test_18_success1_path_computation(self):
         response = test_utils.path_computation_request("request1", "service1",
-                {"service-format": "Ethernet","service-rate": "100", "clli": "ORANGE2", "node-id": "XPONDER-2-2",
-                    "tx-direction": {"port": {
-                            "port-device-name": "Some port-device-name",
-                            "port-type": "Some port-type",
-                            "port-name": "Some port-name",
-                            "port-rack": "Some port-rack",
-                            "port-shelf": "Some port-shelf",
-                            "port-slot": "Some port-slot",
-                            "port-sub-slot": "Some port-sub-slot"
-                        }},
-                    "rx-direction": {"port": {
-                            "port-device-name": "Some port-device-name",
-                            "port-type": "Some port-type",
-                            "port-name": "Some port-name",
-                            "port-rack": "Some port-rack",
-                            "port-shelf": "Some port-shelf",
-                            "port-slot": "Some port-slot",
-                            "port-sub-slot": "Some port-sub-slot"
-                        }}},
-                {"service-format": "Ethernet", "service-rate": "100", "clli": "ORANGE1", "node-id": "XPONDER-1-2",
-                    "tx-direction": {"port": {
-                            "port-device-name": "Some port-device-name",
-                            "port-type": "Some port-type",
-                            "port-name": "Some port-name",
-                            "port-rack": "Some port-rack",
-                            "port-shelf": "Some port-shelf",
-                            "port-slot": "Some port-slot",
-                            "port-sub-slot": "Some port-sub-slot"
-                        }},
-                    "rx-direction": {"port": {
-                            "port-device-name": "Some port-device-name",
-                            "port-type": "Some port-type",
-                            "port-name": "Some port-name",
-                            "port-rack": "Some port-rack",
-                            "port-shelf": "Some port-shelf",
-                            "port-slot": "Some port-slot",
-                            "port-sub-slot": "Some port-sub-slot"
-                        }}},
-                {"customer-code": ["Some customer-code"], "co-routing": {"existing-service": ["Some existing-service"]}},
-                {"customer-code": ["Some customer-code"], "co-routing": {"existing-service": ["Some existing-service"]}},
-                "hop-count", {"locally-protected-links": "true"})
+                                                       {"service-format": "Ethernet", "service-rate": "100",
+                                                        "clli": "ORANGE2", "node-id": "XPONDER-2-2",
+                                                        "tx-direction": {"port": {
+                                                            "port-device-name": "Some port-device-name",
+                                                            "port-type": "Some port-type",
+                                                            "port-name": "Some port-name",
+                                                            "port-rack": "Some port-rack",
+                                                            "port-shelf": "Some port-shelf",
+                                                            "port-slot": "Some port-slot",
+                                                            "port-sub-slot": "Some port-sub-slot"
+                                                        }},
+                                                           "rx-direction": {"port": {
+                                                               "port-device-name": "Some port-device-name",
+                                                               "port-type": "Some port-type",
+                                                               "port-name": "Some port-name",
+                                                               "port-rack": "Some port-rack",
+                                                               "port-shelf": "Some port-shelf",
+                                                               "port-slot": "Some port-slot",
+                                                               "port-sub-slot": "Some port-sub-slot"
+                                                           }}},
+                                                       {"service-format": "Ethernet", "service-rate": "100",
+                                                           "clli": "ORANGE1", "node-id": "XPONDER-1-2",
+                                                           "tx-direction": {"port": {
+                                                               "port-device-name": "Some port-device-name",
+                                                               "port-type": "Some port-type",
+                                                               "port-name": "Some port-name",
+                                                               "port-rack": "Some port-rack",
+                                                               "port-shelf": "Some port-shelf",
+                                                               "port-slot": "Some port-slot",
+                                                               "port-sub-slot": "Some port-sub-slot"
+                                                           }},
+                                                           "rx-direction": {"port": {
+                                                               "port-device-name": "Some port-device-name",
+                                                               "port-type": "Some port-type",
+                                                               "port-name": "Some port-name",
+                                                               "port-rack": "Some port-rack",
+                                                               "port-shelf": "Some port-shelf",
+                                                               "port-slot": "Some port-slot",
+                                                               "port-sub-slot": "Some port-sub-slot"
+                                                           }}},
+                                                       {"customer-code": ["Some customer-code"],
+                                                           "co-routing": {"existing-service": ["Some existing-service"]}
+                                                        },
+                                                       {"customer-code": ["Some customer-code"],
+                                                           "co-routing": {"existing-service": ["Some existing-service"]}
+                                                        },
+                                                       "hop-count", {"locally-protected-links": "true"})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Path is calculated',
@@ -278,8 +296,10 @@ class TransportPCEtesting(unittest.TestCase):
     # Test2 success path computation with path description
     def test_19_success2_path_computation(self):
         response = test_utils.path_computation_request("request 1", "service 1",
-                {"service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-1-2", "clli": "ORANGE1"},
-                {"service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-3-2", "clli": "ORANGE3"})
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "node-id": "XPONDER-1-2", "clli": "ORANGE1"},
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "node-id": "XPONDER-3-2", "clli": "ORANGE3"})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Path is calculated',
@@ -293,9 +313,11 @@ class TransportPCEtesting(unittest.TestCase):
     # Test3 success path computation with hard-constraints exclude
     def test_20_success3_path_computation(self):
         response = test_utils.path_computation_request("request 1", "service 1",
-                {"service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-1-2", "clli": "ORANGE1"},
-                {"service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-3-2", "clli": "ORANGE3"},
-                {"exclude_": { "node-id": ["OpenROADM-2-1", "OpenROADM-2-2"] }})
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "node-id": "XPONDER-1-2", "clli": "ORANGE1"},
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "node-id": "XPONDER-3-2", "clli": "ORANGE3"},
+                                                       {"exclude_": {"node-id": ["OpenROADM-2-1", "OpenROADM-2-2"]}})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Path is calculated',
@@ -309,8 +331,10 @@ class TransportPCEtesting(unittest.TestCase):
     # Path computation before deleting oms-attribute of the link :openroadm1-3 to openroadm1-2
     def test_21_path_computation_before_oms_attribute_deletion(self):
         response = test_utils.path_computation_request("request 1", "service 1",
-                {"service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-2-2", "clli": "ORANGE2"},
-                {"service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-1-2", "clli": "ORANGE1"})
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "node-id": "XPONDER-2-2", "clli": "ORANGE2"},
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "node-id": "XPONDER-1-2", "clli": "ORANGE1"})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Path is calculated',
@@ -321,8 +345,9 @@ class TransportPCEtesting(unittest.TestCase):
         link = {"link-id": "OpenROADM-1-3-DEG2-to-OpenROADM-1-2-DEG2"}
         find = False
         for i in range(0, nbElmPath):
-            resource_i = res['output']['response-parameters']['path-description']['aToZ-direction']['aToZ'][i]['resource']
-            if(resource_i == link):
+            resource_i = (res['output']['response-parameters']['path-description']['aToZ-direction']['aToZ'][i]
+                             ['resource'])
+            if resource_i == link:
                 find = True
         self.assertEqual(find, True)
         time.sleep(5)
@@ -336,8 +361,10 @@ class TransportPCEtesting(unittest.TestCase):
     # Path computation after deleting oms-attribute of the link :openroadm1-3 to openroadm1-2
     def test_23_path_computation_after_oms_attribute_deletion(self):
         response = test_utils.path_computation_request("request 1", "service 1",
-                {"service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-2-2", "clli": "ORANGE2"},
-                {"service-rate": "100", "service-format": "Ethernet", "node-id": "XPONDER-1-2", "clli": "ORANGE1"})
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "node-id": "XPONDER-2-2", "clli": "ORANGE2"},
+                                                       {"service-rate": "100", "service-format": "Ethernet",
+                                                           "node-id": "XPONDER-1-2", "clli": "ORANGE1"})
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Path is calculated',
@@ -348,8 +375,9 @@ class TransportPCEtesting(unittest.TestCase):
         link = {"link-id": "OpenROADM-1-3-DEG2-to-OpenROADM-1-2-DEG2"}
         find = False
         for i in range(0, nbElmPath):
-            resource_i = res['output']['response-parameters']['path-description']['aToZ-direction']['aToZ'][i]['resource']
-            if (resource_i == link):
+            resource_i = (res['output']['response-parameters']['path-description']['aToZ-direction']['aToZ'][i]
+                             ['resource'])
+            if resource_i == link:
                 find = True
         self.assertNotEqual(find, True)
         time.sleep(5)
index 861d88098bfc93476f7fe83189cacc1d1fcdbf84..51694b5683ef88a8eddf2a4c221e381626fd37bd 100644 (file)
@@ -9,6 +9,9 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
 import time
 import requests
@@ -26,6 +29,7 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
index dbf11a074addba0b13ddefb41f8d9204dab8740b..24b24230dcc9e937b912e1dadf26d0ce85cfd678 100644 (file)
@@ -9,8 +9,10 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 #############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
-import json
 import time
 import requests
 from common import test_utils
@@ -27,6 +29,7 @@ class TransportPCERendererTesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -77,9 +80,11 @@ class TransportPCERendererTesting(unittest.TestCase):
     def test_05_service_path_create(self):
         response = test_utils.service_path_request("create", "service_test", "7",
                                                    [{"renderer:node-id": "ROADMA01",
-                                                     "renderer:src-tp": "SRG1-PP7-TXRX", "renderer:dest-tp": "DEG1-TTP-TXRX"},
+                                                     "renderer:src-tp": "SRG1-PP7-TXRX",
+                                                     "renderer:dest-tp": "DEG1-TTP-TXRX"},
                                                     {"renderer:node-id": "XPDRA01",
-                                                     "renderer:src-tp": "XPDR1-CLIENT1", "renderer:dest-tp": "XPDR1-NETWORK1"}])
+                                                     "renderer:src-tp": "XPDR1-CLIENT1",
+                                                     "renderer:dest-tp": "XPDR1-NETWORK1"}])
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Roadm-connection successfully created for nodes: ROADMA01', res["output"]["result"])
@@ -243,9 +248,11 @@ class TransportPCERendererTesting(unittest.TestCase):
     def test_14_service_path_delete(self):
         response = test_utils.service_path_request("delete", "service_test", "7",
                                                    [{"renderer:node-id": "ROADMA01",
-                                                     "renderer:src-tp": "SRG1-PP7-TXRX", "renderer:dest-tp": "DEG1-TTP-TXRX"},
+                                                     "renderer:src-tp": "SRG1-PP7-TXRX",
+                                                     "renderer:dest-tp": "DEG1-TTP-TXRX"},
                                                     {"renderer:node-id": "XPDRA01",
-                                                     "renderer:src-tp": "XPDR1-CLIENT1", "renderer:dest-tp": "XPDR1-NETWORK1"}])
+                                                     "renderer:src-tp": "XPDR1-CLIENT1",
+                                                     "renderer:dest-tp": "XPDR1-NETWORK1"}])
         self.assertEqual(response.status_code, requests.codes.ok)
         self.assertEqual(response.json(), {
             'output': {'result': 'Request processed', 'success': True}})
@@ -265,7 +272,8 @@ class TransportPCERendererTesting(unittest.TestCase):
         res = response.json()
         self.assertIn(
             {"error-type": "application", "error-tag": "data-missing",
-                "error-message": "Request could not be completed because the relevant data model content does not exist"},
+                "error-message":
+                    "Request could not be completed because the relevant data model content does not exist"},
             res['errors']['error'])
 
     def test_17_service_path_delete_rdm_check(self):
@@ -274,7 +282,8 @@ class TransportPCERendererTesting(unittest.TestCase):
         res = response.json()
         self.assertIn(
             {"error-type": "application", "error-tag": "data-missing",
-                "error-message": "Request could not be completed because the relevant data model content does not exist"},
+                "error-message":
+                    "Request could not be completed because the relevant data model content does not exist"},
             res['errors']['error'])
 
     def test_18_service_path_delete_xpdr_check(self):
@@ -283,7 +292,8 @@ class TransportPCERendererTesting(unittest.TestCase):
         res = response.json()
         self.assertIn(
             {"error-type": "application", "error-tag": "data-missing",
-                "error-message": "Request could not be completed because the relevant data model content does not exist"},
+                "error-message":
+                    "Request could not be completed because the relevant data model content does not exist"},
             res['errors']['error'])
 
     def test_19_service_path_delete_xpdr_check(self):
@@ -292,7 +302,8 @@ class TransportPCERendererTesting(unittest.TestCase):
         res = response.json()
         self.assertIn(
             {"error-type": "application", "error-tag": "data-missing",
-                "error-message": "Request could not be completed because the relevant data model content does not exist"},
+                "error-message":
+                    "Request could not be completed because the relevant data model content does not exist"},
             res['errors']['error'])
 
     def test_20_service_path_delete_xpdr_check(self):
@@ -301,7 +312,8 @@ class TransportPCERendererTesting(unittest.TestCase):
         res = response.json()
         self.assertIn(
             {"error-type": "application", "error-tag": "data-missing",
-                "error-message": "Request could not be completed because the relevant data model content does not exist"},
+                "error-message":
+                    "Request could not be completed because the relevant data model content does not exist"},
             res['errors']['error'])
 
     def test_21_service_path_delete_xpdr_check(self):
@@ -310,7 +322,8 @@ class TransportPCERendererTesting(unittest.TestCase):
         res = response.json()
         self.assertIn(
             {"error-type": "application", "error-tag": "data-missing",
-                "error-message": "Request could not be completed because the relevant data model content does not exist"},
+                "error-message":
+                    "Request could not be completed because the relevant data model content does not exist"},
             res['errors']['error'])
 
     def test_22_service_path_delete_xpdr_check(self):
similarity index 83%
rename from tests/transportpce_tests/1.2.1/test_topoPortMapping.py
rename to tests/transportpce_tests/1.2.1/test_topo_portmapping.py
index 1c3ef934c80864f6871d966a06fa00bc759d6b81..683b04a48649fa5e491d09d3b21f8c05b8a20f41 100644 (file)
@@ -9,6 +9,11 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+# a pylint false positive due to unittest
+# pylint: disable=no-self-use
+
 import time
 import unittest
 import requests
@@ -26,6 +31,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -39,24 +45,19 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
 
     # Verify the termination points of the ROADMA
-    def test_02_compareOpenroadmTopologyPortMapping_rdm(self):
+    def test_02_compare_Openroadm_topology_portmapping_rdm(self):
         responseTopo = test_utils.get_ordm_topo_request("")
         resTopo = responseTopo.json()
         nbNode = len(resTopo['network'][0]['node'])
-        nbMapCumul = 0
-        nbMappings = 0
         for i in range(0, nbNode):
             nodeId = resTopo['network'][0]['node'][i]['node-id']
             nodeMapId = nodeId.split("-")[0]
-            responseMapList = test_utils.portmapping_request(nodeMapId)
-            resMapList = responseMapList.json()
-            nbMappings = len(resMapList['nodes'][0]['mapping']) - nbMapCumul
+            test_utils.portmapping_request(nodeMapId)
             nbTp = len(resTopo['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-            nbMapCurrent = 0
             for j in range(0, nbTp):
                 tpId = resTopo['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
                 if((not "CP" in tpId) and (not "CTP" in tpId)):
-                    responseMap = test_utils.portmapping_request(nodeMapId+"/mapping/"+tpId)
+                    test_utils.portmapping_request(nodeMapId+"/mapping/"+tpId)
 
     # Disconnect the ROADMA
     def test_03_disconnect_rdm(self):
@@ -69,8 +70,8 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
 
 #     #Verify the termination points related to XPDR
-    def test_05_compareOpenroadmTopologyPortMapping_xpdr(self):
-        self.test_02_compareOpenroadmTopologyPortMapping_rdm()
+    def test_05_compare_Openroadm_topology_portmapping_xpdr(self):
+        self.test_02_compare_Openroadm_topology_portmapping_rdm()
 
     # Disconnect the XPDRA
     def test_06_disconnect_device(self):
index ab9419def459e1fc99eed77afc69cc22fd41bee7..c079fcd13373b592488efe824c9fb9cc88671d50 100644 (file)
@@ -9,7 +9,10 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
-import json
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+# pylint: disable=too-many-lines
+
 import time
 import unittest
 import requests
@@ -19,6 +22,45 @@ from common import test_utils
 class TransportPCETopologyTesting(unittest.TestCase):
 
     processes = None
+    CHECK_DICT1 = {
+        'ROADMA01-SRG1': {
+            'node_type': 'SRG',
+            'checks_tp': [({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}),
+                          ({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'})]
+        },
+        'ROADMA01-SRG3': {
+            'node_type': 'SRG',
+            'checks_tp': [({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}),
+                          ({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'})]
+        },
+        'ROADMA01-DEG1': {
+            'node_type': 'DEGREE',
+            'checks_tp': [({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
+                          ({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
+        },
+        'ROADMA01-DEG2': {
+            'node_type': 'DEGREE',
+            'checks_tp': [({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
+                          ({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
+        }
+    }
+    CHECK_DICT2 = {
+        'ROADMC01-SRG1': {
+            'node_type': 'SRG',
+            'checks_tp': [({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}),
+                          ({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'})]
+        },
+        'ROADMC01-DEG1': {
+            'node_type': 'DEGREE',
+            'checks_tp': [({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
+                          ({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
+        },
+        'ROADMC01-DEG2': {
+            'node_type': 'DEGREE',
+            'checks_tp': [({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
+                          ({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
+        }
+    }
 
     @classmethod
     def setUpClass(cls):
@@ -27,6 +69,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -56,39 +99,38 @@ class TransportPCETopologyTesting(unittest.TestCase):
         self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:model'], '2')
 
     def test_04_getLinks_OpenroadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         # Tests related to links
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
         self.assertEqual(nbLink, 10)
-        expressLink = ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
-                       'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX']
-        addLink = ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
-                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX']
-        dropLink = ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
-                    'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX']
+        check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
+                                       'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'],
+                      'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
+                                   'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
+                                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
+                                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'],
+                      'DROP-LINK': ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
+                                    'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
+                                    'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
+                                    'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX']
+                      }
         for i in range(0, nbLink):
             linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'EXPRESS-LINK':
-                find = linkId in expressLink
-                self.assertEqual(find, True)
-                expressLink.remove(linkId)
-            elif res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ADD-LINK':
-                find = linkId in addLink
-                self.assertEqual(find, True)
-                addLink.remove(linkId)
-            elif res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'DROP-LINK':
-                find = linkId in dropLink
+            linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+            if linkType in check_list:
+                find = linkId in check_list[linkType]
                 self.assertEqual(find, True)
-                dropLink.remove(linkId)
+                (check_list[linkType]).remove(linkId)
             else:
                 self.assertFalse(True)
-        self.assertEqual(len(expressLink), 0)
-        self.assertEqual(len(addLink), 0)
-        self.assertEqual(len(dropLink), 0)
+        for link_type in check_list:
+            self.assertEqual(len(check_list[link_type]), 0)
 
     def test_05_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -101,51 +143,12 @@ class TransportPCETopologyTesting(unittest.TestCase):
                           res['network'][0]['node'][i]['supporting-node'])
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
-            if nodeId == 'ROADMA01-SRG1':
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif nodeId == 'ROADMA01-SRG3':
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif nodeId == 'ROADMA01-DEG1':
-                # Test related to DEG1
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                listNode.remove(nodeId)
-                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-            elif nodeId == 'ROADMA01-DEG2':
-                # Test related to DEG2
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+            if nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
@@ -153,6 +156,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
                 listNode.remove(nodeId)
             else:
                 self.assertFalse(True)
+
         self.assertEqual(len(listNode), 0)
 
     def test_06_connect_XPDRA(self):
@@ -167,6 +171,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
         self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
 
     def test_08_getOpenRoadmNetwork(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_net_request()
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
@@ -176,16 +181,17 @@ class TransportPCETopologyTesting(unittest.TestCase):
             self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network')
             self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA')
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'XPDRA01'):
+            if nodeId == 'XPDRA01':
                 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER')
                 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '1')
-            elif(nodeId == 'ROADMA01'):
+            elif nodeId == 'ROADMA01':
                 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM')
                 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '2')
             else:
                 self.assertFalse(True)
 
     def test_09_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -197,7 +203,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
             # Tests related to XPDRA nodes
-            if(nodeId == 'XPDRA01-XPDR1'):
+            if nodeId == 'XPDRA01-XPDR1':
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
@@ -207,60 +213,31 @@ class TransportPCETopologyTesting(unittest.TestCase):
                 client = 0
                 network = 0
                 for j in range(0, nbTps):
-                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
+                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j][
+                        'org-openroadm-common-network:tp-type']
                     tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
-                    if (tpType == 'XPONDER-CLIENT'):
+                    if tpType == 'XPONDER-CLIENT':
                         client += 1
-                    elif (tpType == 'XPONDER-NETWORK'):
+                    elif tpType == 'XPONDER-NETWORK':
                         network += 1
-                    if (tpId == 'XPDR1-NETWORK2'):
+                    if tpId == 'XPDR1-NETWORK2':
                         self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
                                          [j]['transportpce-topology:associated-connection-map-port'], 'XPDR1-CLIENT3')
-                    if (tpId == 'XPDR1-CLIENT3'):
+                    if tpId == 'XPDR1-CLIENT3':
                         self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
                                          [j]['transportpce-topology:associated-connection-map-port'], 'XPDR1-NETWORK2')
                 self.assertTrue(client == 4)
                 self.assertTrue(network == 2)
                 listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-SRG3'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-DEG1'):
-                # Test related to DEG1
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
+            # Tests related to ROADMA nodes
+            elif nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
                               res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-DEG2'):
-                # Test related to DEG2
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
                               res['network'][0]['node'][i]['supporting-node'])
                 listNode.remove(nodeId)
@@ -282,50 +259,37 @@ class TransportPCETopologyTesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.ok)
 
     def test_12_getLinks_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         # Tests related to links
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
         self.assertEqual(nbLink, 12)
-        expressLink = ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
-                       'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX']
-        addLink = ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
-                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX']
-        dropLink = ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
-                    'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX']
-        XPDR_IN = ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1']
-        XPDR_OUT = ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX']
+        check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
+                                       'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'],
+                      'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
+                                   'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
+                                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
+                                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'],
+                      'DROP-LINK': ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
+                                    'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
+                                    'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
+                                    'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX'],
+                      'XPONDER-INPUT': ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'],
+                      'XPONDER-OUTPUT': ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX']
+                      }
         for i in range(0, nbLink):
-            nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if(nodeType == 'EXPRESS-LINK'):
-                find = linkId in expressLink
-                self.assertEqual(find, True)
-                expressLink.remove(linkId)
-            elif(nodeType == 'ADD-LINK'):
-                find = linkId in addLink
-                self.assertEqual(find, True)
-                addLink.remove(linkId)
-            elif(nodeType == 'DROP-LINK'):
-                find = linkId in dropLink
+            linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+            if linkType in check_list:
+                find = linkId in check_list[linkType]
                 self.assertEqual(find, True)
-                dropLink.remove(linkId)
-            elif(nodeType == 'XPONDER-INPUT'):
-                find = linkId in XPDR_IN
-                self.assertEqual(find, True)
-                XPDR_IN.remove(linkId)
-            elif(nodeType == 'XPONDER-OUTPUT'):
-                find = linkId in XPDR_OUT
-                self.assertEqual(find, True)
-                XPDR_OUT.remove(linkId)
+                (check_list[linkType]).remove(linkId)
             else:
                 self.assertFalse(True)
-        self.assertEqual(len(expressLink), 0)
-        self.assertEqual(len(addLink), 0)
-        self.assertEqual(len(dropLink), 0)
-        self.assertEqual(len(XPDR_IN), 0)
-        self.assertEqual(len(XPDR_OUT), 0)
+        for link_type in check_list:
+            self.assertEqual(len(check_list[link_type]), 0)
 
     def test_13_connect_ROADMC(self):
         response = test_utils.mount_device("ROADMC01", 'roadmc')
@@ -358,6 +322,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.created)
 
     def test_16_getClliNetwork(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_clli_net_request()
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
@@ -365,99 +330,80 @@ class TransportPCETopologyTesting(unittest.TestCase):
         listNode = ['NodeA', 'NodeC']
         for i in range(0, nbNode):
             nodeId = res['network'][0]['node'][i]['node-id']
-            find = nodeId in listNode
-            self.assertEqual(find, True)
-            if(nodeId == 'NodeA'):
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeA')
+            if nodeId in listNode:
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
+                listNode.remove(nodeId)
             else:
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC')
-            listNode.remove(nodeId)
-
+                self.assertFalse(True)
         self.assertEqual(len(listNode), 0)
 
     def test_17_getOpenRoadmNetwork(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_net_request()
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         nbNode = len(res['network'][0]['node'])
         self.assertEqual(nbNode, 3)
         listNode = ['XPDRA01', 'ROADMA01', 'ROADMC01']
+        CHECK_LIST = {'XPDRA01': {'node-ref': 'NodeA', 'node-type': 'XPONDER', 'model': '1'},
+                      'ROADMA01': {'node-ref': 'NodeA', 'node-type': 'ROADM', 'model': '2'},
+                      'ROADMC01': {'node-ref': 'NodeC', 'node-type': 'ROADM', 'model': '2'}
+                      }
         for i in range(0, nbNode):
             self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network')
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'XPDRA01'):
-                self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '1')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01'):
-                self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '2')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMC01'):
-                self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeC')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '2')
+            if nodeId in CHECK_LIST:
+                self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],
+                                 CHECK_LIST[nodeId]['node-ref'])
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
+                                 CHECK_LIST[nodeId]['node-type'])
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],
+                                 CHECK_LIST[nodeId]['model'])
                 listNode.remove(nodeId)
             else:
                 self.assertFalse(True)
         self.assertEqual(len(listNode), 0)
 
     def test_18_getROADMLinkOpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         # Tests related to links
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
         self.assertEqual(nbLink, 20)
-        expressLink = ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX', 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
-                       'ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX', 'ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX']
-        addLink = ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
-                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
-                   'ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX', 'ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX']
-        dropLink = ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
-                    'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
-                    'ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX', 'ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX']
-        R2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX',
-                   'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX']
-        XPDR_IN = ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1']
-        XPDR_OUT = ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX']
+        check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
+                                       'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
+                                       'ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX',
+                                       'ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX'],
+                      'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
+                                   'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
+                                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
+                                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
+                                   'ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX',
+                                   'ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX'],
+                      'DROP-LINK': ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
+                                    'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
+                                    'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
+                                    'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
+                                    'ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX',
+                                    'ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX'],
+                      'ROADM-TO-ROADM': ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX',
+                                         'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX'],
+                      'XPONDER-INPUT': ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'],
+                      'XPONDER-OUTPUT': ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX']
+                      }
         for i in range(0, nbLink):
-            nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if(nodeType == 'EXPRESS-LINK'):
-                find = linkId in expressLink
-                self.assertEqual(find, True)
-                expressLink.remove(linkId)
-            elif(nodeType == 'ADD-LINK'):
-                find = linkId in addLink
-                self.assertEqual(find, True)
-                addLink.remove(linkId)
-            elif(nodeType == 'DROP-LINK'):
-                find = linkId in dropLink
+            linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+            if linkType in check_list:
+                find = linkId in check_list[linkType]
                 self.assertEqual(find, True)
-                dropLink.remove(linkId)
-            elif(nodeType == 'ROADM-TO-ROADM'):
-                find = linkId in R2RLink
-                self.assertEqual(find, True)
-                R2RLink.remove(linkId)
-            elif(nodeType == 'XPONDER-INPUT'):
-                find = linkId in XPDR_IN
-                self.assertEqual(find, True)
-                XPDR_IN.remove(linkId)
-            elif(nodeType == 'XPONDER-OUTPUT'):
-                find = linkId in XPDR_OUT
-                self.assertEqual(find, True)
-                XPDR_OUT.remove(linkId)
+                (check_list[linkType]).remove(linkId)
             else:
                 self.assertFalse(True)
-        self.assertEqual(len(expressLink), 0)
-        self.assertEqual(len(addLink), 0)
-        self.assertEqual(len(dropLink), 0)
-        self.assertEqual(len(R2RLink), 0)
-        self.assertEqual(len(XPDR_IN), 0)
-        self.assertEqual(len(XPDR_OUT), 0)
+        for link_type in check_list:
+            self.assertEqual(len(check_list[link_type]), 0)
 
     def test_19_getLinkOmsAttributesOpenRoadmTopology(self):
         response = test_utils.get_ordm_topo_request("")
@@ -469,21 +415,22 @@ class TransportPCETopologyTesting(unittest.TestCase):
         R2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX',
                    'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX']
         for i in range(0, nbLink):
-            nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if(link_id in R2RLink):
+            if link_id in R2RLink:
                 find = False
-                spanLoss = res['network'][0]['ietf-network-topology:link'][i][
-                    'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"]
-                length = res['network'][0]['ietf-network-topology:link'][i][
-                    'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
-                if((spanLoss != None) & (length != None)):
+                spanLoss = (res['network'][0]['ietf-network-topology:link'][i]
+                               ['org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"])
+                length = (res['network'][0]['ietf-network-topology:link'][i]
+                             ['org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]
+                             ['SRLG-length'])
+                if (spanLoss is not None) & (length is not None):
                     find = True
                 self.assertTrue(find)
                 R2RLink.remove(link_id)
         self.assertEqual(len(R2RLink), 0)
 
     def test_20_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -493,11 +440,11 @@ class TransportPCETopologyTesting(unittest.TestCase):
         listNode = ['XPDRA01-XPDR1',
                     'ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2',
                     'ROADMC01-SRG1', 'ROADMC01-DEG1', 'ROADMC01-DEG2']
-        # ************************Tests related to XPDRA nodes
         for i in range(0, nbNode):
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'XPDRA01-XPDR1'):
+            # Tests related to XPDRA nodes
+            if nodeId == 'XPDRA01-XPDR1':
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertEqual(nodeType, 'XPONDER')
@@ -506,86 +453,42 @@ class TransportPCETopologyTesting(unittest.TestCase):
                 client = 0
                 network = 0
                 for j in range(0, nbTps):
-                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
-                    if (tpType == 'XPONDER-CLIENT'):
+                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j][
+                        'org-openroadm-common-network:tp-type']
+                    if tpType == 'XPONDER-CLIENT':
                         client += 1
-                    elif (tpType == 'XPONDER-NETWORK'):
+                    elif tpType == 'XPONDER-NETWORK':
                         network += 1
                 self.assertTrue(client == 4)
                 self.assertTrue(network == 2)
                 listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-SRG3'):
-                # Test related to SRG1
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-DEG1'):
-                # Test related to DEG1
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
+            # Tests related to ROADMA nodes
+            elif nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-DEG2'):
-                # Test related to DEG2
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE')
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
+                                 self.CHECK_DICT1[nodeId]['node_type'])
                 listNode.remove(nodeId)
-            elif(nodeId == 'ROADMC01-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMC01-DEG1'):
-                # Test related to DEG1
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'},
+            # Tests related to ROADMC nodes
+            elif nodeId in self.CHECK_DICT2:
+                self.assertEqual(nodeType, self.CHECK_DICT2[nodeId]['node_type'])
+                if self.CHECK_DICT2[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+                for item in self.CHECK_DICT2[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeC'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMC01-DEG2'):
-                # Test related to DEG2
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE')
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
+                                 self.CHECK_DICT2[nodeId]['node_type'])
                 listNode.remove(nodeId)
             else:
                 self.assertFalse(True)
@@ -648,6 +551,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.created)
 
     def test_26_getClliNetwork(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_clli_net_request()
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
@@ -655,15 +559,11 @@ class TransportPCETopologyTesting(unittest.TestCase):
         listNode = ['NodeA', 'NodeB', 'NodeC']
         for i in range(0, nbNode):
             nodeId = res['network'][0]['node'][i]['node-id']
-            find = nodeId in listNode
-            self.assertEqual(find, True)
-            if(nodeId == 'NodeA'):
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeA')
-            elif(nodeId == 'NodeB'):
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeB')
+            if nodeId in listNode:
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
+                listNode.remove(nodeId)
             else:
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC')
-            listNode.remove(nodeId)
+                self.assertFalse(True)
         self.assertEqual(len(listNode), 0)
 
     def test_27_verifyDegree(self):
@@ -672,11 +572,15 @@ class TransportPCETopologyTesting(unittest.TestCase):
         res = response.json()
         # Tests related to links
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
-        listR2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX', 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX',
-                       'ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX', 'ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX',
-                       'ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX', 'ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX']
+        listR2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX',
+                       'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX',
+                       'ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX',
+                       'ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX',
+                       'ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX',
+                       'ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX']
         for i in range(0, nbLink):
-            if res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ROADM-TO-ROADM':
+            if (res['network'][0]['ietf-network-topology:link'][i]
+                   ['org-openroadm-common-network:link-type'] == 'ROADM-TO-ROADM'):
                 link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
                 find = link_id in listR2RLink
                 self.assertEqual(find, True)
@@ -695,7 +599,8 @@ class TransportPCETopologyTesting(unittest.TestCase):
             link_type = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             link_src = res['network'][0]['ietf-network-topology:link'][i]['source']['source-node']
             link_dest = res['network'][0]['ietf-network-topology:link'][i]['destination']['dest-node']
-            oppLink_id = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:opposite-link']
+            oppLink_id = (res['network'][0]['ietf-network-topology:link'][i]
+                             ['org-openroadm-common-network:opposite-link'])
             # Find the opposite link
             response_oppLink = test_utils.get_ordm_topo_request("ietf-network-topology:link/"+oppLink_id)
             self.assertEqual(response_oppLink.status_code, requests.codes.ok)
@@ -705,18 +610,11 @@ class TransportPCETopologyTesting(unittest.TestCase):
             self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['source']['source-node'], link_dest)
             self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['destination']['dest-node'], link_src)
             oppLink_type = res_oppLink['ietf-network-topology:link'][0]['org-openroadm-common-network:link-type']
-            if link_type == 'ADD-LINK':
-                self.assertEqual(oppLink_type, 'DROP-LINK')
-            elif link_type == 'DROP-LINK':
-                self.assertEqual(oppLink_type, 'ADD-LINK')
-            elif link_type == 'EXPRESS-LINK':
-                self.assertEqual(oppLink_type, 'EXPRESS-LINK')
-            elif link_type == 'ROADM-TO-ROADM':
-                self.assertEqual(oppLink_type, 'ROADM-TO-ROADM')
-            elif link_type == 'XPONDER-INPUT':
-                self.assertEqual(oppLink_type, 'XPONDER-OUTPUT')
-            elif link_type == 'XPONDER-OUTPUT':
-                self.assertEqual(oppLink_type, 'XPONDER-INPUT')
+            CHECK_DICT = {'ADD-LINK': 'DROP-LINK', 'DROP-LINK': 'ADD-LINK',
+                          'EXPRESS-LINK': 'EXPRESS-LINK', 'ROADM-TO-ROADM': 'ROADM-TO-ROADM',
+                          'XPONDER-INPUT': 'XPONDER-OUTPUT', 'XPONDER-OUTUT': 'XPONDER-INPUT'}
+            if link_type in CHECK_DICT:
+                self.assertEqual(oppLink_type, CHECK_DICT[link_type])
 
     def test_29_getLinkOmsAttributesOpenRoadmTopology(self):
         response = test_utils.get_ordm_topo_request("")
@@ -730,15 +628,14 @@ class TransportPCETopologyTesting(unittest.TestCase):
                    'ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX',
                    'ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX']
         for i in range(0, nbLink):
-            nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if(link_id in R2RLink):
+            if link_id in R2RLink:
                 find = False
                 spanLoss = res['network'][0]['ietf-network-topology:link'][i][
                     'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"]
                 length = res['network'][0]['ietf-network-topology:link'][i][
                     'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
-                if((spanLoss != None) & (length != None)):
+                if (spanLoss is not None) & (length is not None):
                     find = True
                 self.assertTrue(find)
                 R2RLink.remove(link_id)
@@ -760,6 +657,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.ok)
 
     def test_32_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -771,61 +669,32 @@ class TransportPCETopologyTesting(unittest.TestCase):
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
             # Tests related to XPDRA nodes
-            if(nodeId == 'XPDRA01-XPDR1'):
+            if nodeId == 'XPDRA01-XPDR1':
                 nbTp = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 for j in range(0, nbTp):
                     tpid = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
-                    if (tpid == 'XPDR1-CLIENT1'):
+                    if tpid == 'XPDR1-CLIENT1':
                         self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
                                          ['org-openroadm-common-network:tp-type'], 'XPONDER-CLIENT')
-                    if (tpid == 'XPDR1-NETWORK1'):
+                    if tpid == 'XPDR1-NETWORK1':
                         self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
                                          ['org-openroadm-common-network:tp-type'], 'XPONDER-NETWORK')
                         self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
-                                         ['org-openroadm-network-topology:xpdr-network-attributes']['tail-equipment-id'],
+                                         ['org-openroadm-network-topology:xpdr-network-attributes']
+                                         ['tail-equipment-id'],
                                          'ROADMA01-SRG1--SRG1-PP1-TXRX')
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'},
                               res['network'][0]['node'][i]['supporting-node'])
                 listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-SRG3'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-DEG1'):
-                # Test related to DEG1
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
+            # Tests related to ROADMA nodes
+            elif nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
                               res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-DEG2'):
-                # Test related to DEG2
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
                               res['network'][0]['node'][i]['supporting-node'])
                 listNode.remove(nodeId)
@@ -855,7 +724,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
         nbNode = len(res['network'][0]['node'])
         self.assertEqual(nbNode, 1)
         for i in range(0, nbNode-1):
-            self.assertNotEqual(res['network'][0]['node'][1]['org-openroadm-clli-network:clli'], 'NodeC')
+            self.assertNotEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC')
 
     def test_35_disconnect_XPDRA(self):
         response = test_utils.unmount_device("XPDRA01")
@@ -879,6 +748,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
             self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'XPDRA01')
 
     def test_38_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -891,39 +761,16 @@ class TransportPCETopologyTesting(unittest.TestCase):
                           res['network'][0]['node'][i]['supporting-node'])
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'ROADMA01-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-SRG3'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-DEG1'):
-                # Test related to DEG1
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADMA01-DEG2'):
-                # Test related to DEG2
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+            if nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
+                              res['network'][0]['node'][i]['supporting-node'])
+                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
+                              res['network'][0]['node'][i]['supporting-node'])
                 listNode.remove(nodeId)
             else:
                 self.assertFalse(True)
@@ -943,34 +790,29 @@ class TransportPCETopologyTesting(unittest.TestCase):
         res = response.json()
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
         self.assertEqual(nbLink, 16)
-        expressLink = ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
-                       'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX']
-        addLink = ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
-                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX', 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX']
-        dropLink = ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
-                    'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX', 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX']
+        check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
+                                       'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'],
+                      'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
+                                   'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
+                                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
+                                   'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'],
+                      'DROP-LINK': ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
+                                    'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
+                                    'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
+                                    'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX']
+                      }
         roadmtoroadmLink = 0
         for i in range(0, nbLink):
-            if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'EXPRESS-LINK'):
-                link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-                find = link_id in expressLink
-                self.assertEqual(find, True)
-                expressLink.remove(link_id)
-            elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ADD-LINK'):
-                link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-                find = link_id in addLink
-                self.assertEqual(find, True)
-                addLink.remove(link_id)
-            elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'DROP-LINK'):
-                link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-                find = link_id in dropLink
+            linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
+            linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+            if linkType in check_list:
+                find = linkId in check_list[linkType]
                 self.assertEqual(find, True)
-                dropLink.remove(link_id)
+                (check_list[linkType]).remove(linkId)
             else:
                 roadmtoroadmLink += 1
-        self.assertEqual(len(expressLink), 0)
-        self.assertEqual(len(addLink), 0)
-        self.assertEqual(len(dropLink), 0)
+        for link_type in check_list:
+            self.assertEqual(len(check_list[link_type]), 0)
         self.assertEqual(roadmtoroadmLink, 6)
         for i in range(0, nbLink):
             self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]
index f5013e09327332e9aedf7e81459ae550c2ba7b23..bc9b3a634b64d191901ae85816601801674af2c3 100644 (file)
@@ -8,9 +8,10 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
 
 import unittest
-import json
 import time
 import requests
 from common import test_utils
@@ -117,6 +118,7 @@ class TransportPCEFulltesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -514,7 +516,7 @@ class TransportPCEFulltesting(unittest.TestCase):
         for ele in liste_tp:
             if ele[u'org-openroadm-common-network:tp-type'] == 'XPONDER-CLIENT':
                 self.assertNotIn('org-openroadm-network-topology:xpdr-client-attributes', dict.keys(ele))
-            elif (ele[u'org-openroadm-common-network:tp-type'] == 'XPONDER-NETWORK'):
+            elif ele[u'org-openroadm-common-network:tp-type'] == 'XPONDER-NETWORK':
                 self.assertIn(u'tail-equipment-id',
                               dict.keys(ele[u'org-openroadm-network-topology:xpdr-network-attributes']))
                 self.assertNotIn('wavelength', dict.keys(
index c470283e21c4af12fbad31f49b423b083bf88654..4a5e97b48ed6368e88baa094889a5f192f36f7ae 100644 (file)
@@ -9,9 +9,11 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 #############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
 import time
-import json
 import requests
 from common import test_utils
 
@@ -27,6 +29,7 @@ class TransportOlmTesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -427,7 +430,7 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertIn('Request processed', res["output"]["result"])
         time.sleep(10)
 
-    """to test case where SRG where the xpdr is connected to has no optical range data"""
+   #"""to test case where SRG where the xpdr is connected to has no optical range data"""
 
     def test_31_connect_xprdA_to_roadmA(self):
         response = test_utils.connect_xpdr_to_rdm_request("XPDR-A1", "1", "2",
index ffda6a582e0ad182de832d5f6c71e8355c5e310f..d2208da6d8727f05201635885b552b3b65ce6f09 100644 (file)
@@ -9,6 +9,9 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
 import time
 import requests
@@ -129,6 +132,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -494,12 +498,12 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(nb_links, 4)
         for link in res['network'][0]['ietf-network-topology:link']:
             linkId = link['link-id']
-            if (linkId == 'OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1' or
-                    linkId == 'OTU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1'):
+            if (linkId in ('OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1',
+                           'OTU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1')):
                 self.assertEqual(link['org-openroadm-otn-network-topology:available-bandwidth'], 0)
                 self.assertEqual(link['org-openroadm-otn-network-topology:used-bandwidth'], 100000)
-            elif (linkId == 'ODU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1' or
-                  linkId == 'ODU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1'):
+            elif (linkId in ('ODU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1',
+                             'ODU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1')):
                 self.assertEqual(link['org-openroadm-otn-network-topology:available-bandwidth'], 100000)
                 self.assertEqual(link['org-openroadm-otn-network-topology:used-bandwidth'], 0)
                 self.assertEqual(link['transportpce-topology:otn-link-type'], 'ODTU4')
@@ -514,10 +518,10 @@ class TransportPCEtesting(unittest.TestCase):
         response = test_utils.get_otn_topo_request()
         res = response.json()
         for node in res['network'][0]['node']:
-            if (node['node-id'] == 'SPDR-SA1-XPDR1' or 'SPDR-SC1-XPDR1'):
+            if node['node-id'] == 'SPDR-SA1-XPDR1' or 'SPDR-SC1-XPDR1':
                 tpList = node['ietf-network-topology:termination-point']
                 for tp in tpList:
-                    if (tp['tp-id'] == 'XPDR1-NETWORK1'):
+                    if tp['tp-id'] == 'XPDR1-NETWORK1':
                         xpdrTpPortConAt = tp['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']
                         self.assertEqual(len(xpdrTpPortConAt['ts-pool']), 80)
                         self.assertEqual(len(xpdrTpPortConAt['odtu-tpn-pool'][0]['tpn-pool']), 80)
@@ -745,8 +749,8 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(nb_links, 4)
         for link in res['network'][0]['ietf-network-topology:link']:
             linkId = link['link-id']
-            if (linkId == 'ODU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1' or
-                    linkId == 'ODU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1'):
+            if (linkId in ('ODU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1',
+                           'ODU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1')):
                 self.assertEqual(link['org-openroadm-otn-network-topology:available-bandwidth'], 90000)
                 self.assertEqual(link['org-openroadm-otn-network-topology:used-bandwidth'], 10000)
 
@@ -754,13 +758,13 @@ class TransportPCEtesting(unittest.TestCase):
         response = test_utils.get_otn_topo_request()
         res = response.json()
         for node in res['network'][0]['node']:
-            if (node['node-id'] == 'SPDR-SA1-XPDR1' or 'SPDR-SC1-XPDR1'):
+            if node['node-id'] == 'SPDR-SA1-XPDR1' or 'SPDR-SC1-XPDR1':
                 tpList = node['ietf-network-topology:termination-point']
                 for tp in tpList:
-                    if (tp['tp-id'] == 'XPDR1-NETWORK1'):
+                    if tp['tp-id'] == 'XPDR1-NETWORK1':
                         xpdrTpPortConAt = tp['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']
                         self.assertEqual(len(xpdrTpPortConAt['ts-pool']), 72)
-                        tsPoolList = [i for i in range(1, 9)]
+                        tsPoolList = list(range(1, 9))
                         self.assertNotIn(tsPoolList, xpdrTpPortConAt['ts-pool'])
                         self.assertEqual(len(xpdrTpPortConAt['odtu-tpn-pool'][0]['tpn-pool']), 79)
                         self.assertNotIn(1, xpdrTpPortConAt['odtu-tpn-pool'][0]['tpn-pool'])
@@ -807,8 +811,8 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(nb_links, 4)
         for link in res['network'][0]['ietf-network-topology:link']:
             linkId = link['link-id']
-            if (linkId == 'ODU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1' or
-                    linkId == 'ODU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1'):
+            if (linkId in ('ODU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1',
+                           'ODU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1')):
                 self.assertEqual(link['org-openroadm-otn-network-topology:available-bandwidth'], 100000)
                 self.assertEqual(link['org-openroadm-otn-network-topology:used-bandwidth'], 0)
 
@@ -819,7 +823,7 @@ class TransportPCEtesting(unittest.TestCase):
             if (node['node-id'] == 'SPDR-SA1-XPDR1' or 'SPDR-SC1-XPDR1'):
                 tpList = node['ietf-network-topology:termination-point']
                 for tp in tpList:
-                    if (tp['tp-id'] == 'XPDR1-NETWORK1'):
+                    if tp['tp-id'] == 'XPDR1-NETWORK1':
                         xpdrTpPortConAt = tp['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']
                         self.assertEqual(len(xpdrTpPortConAt['ts-pool']), 80)
                         self.assertEqual(len(xpdrTpPortConAt['odtu-tpn-pool'][0]['tpn-pool']), 80)
@@ -850,10 +854,10 @@ class TransportPCEtesting(unittest.TestCase):
         response = test_utils.get_otn_topo_request()
         res = response.json()
         for node in res['network'][0]['node']:
-            if (node['node-id'] == 'SPDR-SA1-XPDR1' or 'SPDR-SC1-XPDR1'):
+            if node['node-id'] == 'SPDR-SA1-XPDR1' or 'SPDR-SC1-XPDR1':
                 tpList = node['ietf-network-topology:termination-point']
                 for tp in tpList:
-                    if (tp['tp-id'] == 'XPDR1-NETWORK1'):
+                    if tp['tp-id'] == 'XPDR1-NETWORK1':
                         xpdrTpPortConAt = tp['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']
                         self.assertNotIn('ts-pool', dict.keys(xpdrTpPortConAt))
                         self.assertNotIn('odtu-tpn-pool', dict.keys(xpdrTpPortConAt))
index e5a3816f764acc7e3175ecd63779ef5986bc9515..b8fd458acbfb484fc102e0bb7bdf61204caf26db 100644 (file)
@@ -9,8 +9,10 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
-import json
 import time
 import requests
 from common import test_utils
@@ -27,6 +29,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -49,16 +52,16 @@ class TransportPCEtesting(unittest.TestCase):
     def test_02_get_portmapping_CLIENT4(self):
         response = test_utils.portmapping_request("SPDR-SA1/mapping/XPDR1-CLIENT4")
         self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertEqual('CP1-SFP4-P1', res['mapping'][0]['supporting-port'])
-        self.assertEqual('CP1-SFP4', res['mapping'][0]['supporting-circuit-pack-name'])
-        self.assertEqual('XPDR1-CLIENT4', res['mapping'][0]['logical-connection-point'])
-        self.assertEqual('bidirectional', res['mapping'][0]['port-direction'])
-        self.assertEqual('xpdr-client', res['mapping'][0]['port-qual'])
-        self.assertEqual('FqlcrxV7p3g=', res['mapping'][0]['lcp-hash-val'])
-        self.assertIn('org-openroadm-port-types:if-10GE-ODU2e', res['mapping'][0]['supported-interface-capability'])
-        self.assertIn('org-openroadm-port-types:if-10GE-ODU2', res['mapping'][0]['supported-interface-capability'])
-        self.assertIn('org-openroadm-port-types:if-10GE', res['mapping'][0]['supported-interface-capability'])
+        res_mapping = (response.json())['mapping'][0]
+        self.assertEqual('CP1-SFP4-P1', res_mapping['supporting-port'])
+        self.assertEqual('CP1-SFP4', res_mapping['supporting-circuit-pack-name'])
+        self.assertEqual('XPDR1-CLIENT4', res_mapping['logical-connection-point'])
+        self.assertEqual('bidirectional', res_mapping['port-direction'])
+        self.assertEqual('xpdr-client', res_mapping['port-qual'])
+        self.assertEqual('FqlcrxV7p3g=', res_mapping['lcp-hash-val'])
+        self.assertIn('org-openroadm-port-types:if-10GE-ODU2e', res_mapping['supported-interface-capability'])
+        self.assertIn('org-openroadm-port-types:if-10GE-ODU2', res_mapping['supported-interface-capability'])
+        self.assertIn('org-openroadm-port-types:if-10GE', res_mapping['supported-interface-capability'])
 
     def test_03_get_portmapping_NETWORK1(self):
         response = test_utils.portmapping_request("SPDR-SA1/mapping/XPDR1-NETWORK1")
@@ -212,7 +215,8 @@ class TransportPCEtesting(unittest.TestCase):
         response = test_utils.otn_service_path_request("create", "service1", "10G", "Ethernet",
                                                        [{"node-id": "SPDR-SA1", "client-tp": "XPDR1-CLIENT4",
                                                            "network-tp": "XPDR1-NETWORK1"}],
-                                                       {"ethernet-encoding": "eth encode", "trib-slot": ["1"], "trib-port-number": "1"})
+                                                       {"ethernet-encoding": "eth encode",
+                                                        "trib-slot": ["1"], "trib-port-number": "1"})
         time.sleep(3)
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
@@ -220,7 +224,7 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertTrue(res["output"]["success"])
         self.assertEqual('SPDR-SA1', res["output"]['node-interface'][0]['node-id'])
         self.assertIn('XPDR1-CLIENT4-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1',
-                         res["output"]['node-interface'][0]['connection-id'])
+                      res["output"]['node-interface'][0]['connection-id'])
         self.assertIn('XPDR1-CLIENT4-ETHERNET10G', res["output"]['node-interface'][0]['eth-interface-id'])
         self.assertIn('XPDR1-NETWORK1-ODU2e-service1', res["output"]['node-interface'][0]['odu-interface-id'])
         self.assertIn('XPDR1-CLIENT4-ODU2e-service1', res["output"]['node-interface'][0]['odu-interface-id'])
@@ -320,7 +324,8 @@ class TransportPCEtesting(unittest.TestCase):
         response = test_utils.otn_service_path_request("delete", "service1", "10G", "Ethernet",
                                                        [{"node-id": "SPDR-SA1", "client-tp": "XPDR1-CLIENT4",
                                                            "network-tp": "XPDR1-NETWORK1"}],
-                                                       {"ethernet-encoding": "eth encode", "trib-slot": ["1"], "trib-port-number": "1"})
+                                                       {"ethernet-encoding": "eth encode",
+                                                        "trib-slot": ["1"], "trib-port-number": "1"})
         time.sleep(3)
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
index 2ec03efa73c69322008038550595d53e11a9ca89..26054626b8946035c19101c71bd9efa4ba35b846 100644 (file)
@@ -9,6 +9,9 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
 import time
 import requests
@@ -26,6 +29,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
index 91045e501d20e89bb31baaf9b02abfa1a8dabe37..f80c12d514d778a534dd6316985421621a861af9 100644 (file)
@@ -9,6 +9,9 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
 import time
 import logging
@@ -27,6 +30,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -74,58 +78,44 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertNotIn('ietf-network-topology:link', res['network'][0])
 
     def test_05_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
         self.assertEqual(response.status_code, requests.codes.ok)
         self.assertIn('node', res['network'][0])
-        if ('node' in res['network'][0]):
+        if 'node' in res['network'][0]:
             nbNode = len(res['network'][0]['node'])
             self.assertEqual(nbNode, 2)
             listNode = ['SPDR-SA1-XPDR1', 'SPDR-SA1-XPDR2']
             for i in range(0, nbNode):
                 nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
                 nodeId = res['network'][0]['node'][i]['node-id']
-                if (nodeId == 'SPDR-SA1-XPDR1'):
-                    self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'},
-                                  res['network'][0]['node'][i]['supporting-node'])
-                    self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'},
-                                  res['network'][0]['node'][i]['supporting-node'])
-                    self.assertEqual(nodeType, 'XPONDER')
-                    nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                    client = 0
-                    network = 0
-                    for j in range(0, nbTps):
-                        tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
-                        tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
-                        if (tpType == 'XPONDER-CLIENT'):
-                            client += 1
-                        elif (tpType == 'XPONDER-NETWORK'):
-                            network += 1
-                    self.assertTrue(client == 0)
+                if nodeId not in listNode:
+                    self.assertFalse(True)
+                    continue
+                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'},
+                              res['network'][0]['node'][i]['supporting-node'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'},
+                              res['network'][0]['node'][i]['supporting-node'])
+                self.assertEqual(nodeType, 'XPONDER')
+                nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                client = 0
+                network = 0
+                for j in range(0, nbTps):
+                    tpType = (res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                 ['org-openroadm-common-network:tp-type'])
+                    if tpType == 'XPONDER-CLIENT':
+                        client += 1
+                    elif tpType == 'XPONDER-NETWORK':
+                        network += 1
+                self.assertTrue(client == 0)
+                if nodeId == 'SPDR-SA1-XPDR1':
                     self.assertTrue(network == 1)
-                    listNode.remove(nodeId)
-                elif (nodeId == 'SPDR-SA1-XPDR2'):
-                    self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'},
-                                  res['network'][0]['node'][i]['supporting-node'])
-                    self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'},
-                                  res['network'][0]['node'][i]['supporting-node'])
-                    self.assertEqual(nodeType, 'XPONDER')
-                    nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                    client = 0
-                    network = 0
-                    for j in range(0, nbTps):
-                        tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
-                        tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
-                        if (tpType == 'XPONDER-CLIENT'):
-                            client += 1
-                        elif (tpType == 'XPONDER-NETWORK'):
-                            network += 1
-                    self.assertTrue(client == 0)
-                    self.assertTrue(network == 4)
-                    listNode.remove(nodeId)
                 else:
-                    self.assertFalse(True)
+                    # elif nodeId == 'SPDR-SA1-XPDR2':
+                    self.assertTrue(network == 4)
+                listNode.remove(nodeId)
             self.assertEqual(len(listNode), 0)
 
     def test_06_getLinks_OtnTopology(self):
@@ -135,113 +125,100 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertNotIn('ietf-network-topology:link', res['network'][0])
 
     def test_07_getNodes_OtnTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_otn_topo_request()
         res = response.json()
         self.assertEqual(response.status_code, requests.codes.ok)
         nbNode = len(res['network'][0]['node'])
         self.assertEqual(nbNode, 2)
         listNode = ['SPDR-SA1-XPDR1', 'SPDR-SA1-XPDR2']
+        CHECK_LIST = {
+            'SPDR-SA1-XPDR1': {
+                'node-type': 'MUXPDR',
+                'xpdr-number': 1,
+                'port-types': 'org-openroadm-port-types:if-10GE-ODU2e',
+                'otn-common-types': 'org-openroadm-otn-common-types:ODU2e',
+                'network_nb': 1,
+                'nbl_nb': 4,
+                'tp-checklist': ['XPDR1-NETWORK1', 'XPDR1-CLIENT1'],
+                'tp-unchecklist': ['XPDR1-CLIENT2']
+            },
+            'SPDR-SA1-XPDR2': {
+                'node-type': 'SWITCH',
+                'xpdr-number': 2,
+                'port-types': 'org-openroadm-port-types:if-100GE-ODU4',
+                'otn-common-types': 'org-openroadm-otn-common-types:ODU4',
+                'network_nb': 4,
+                'nbl_nb': 1,
+                'tp-checklist': ['XPDR2-NETWORK4', 'XPDR2-CLIENT1', 'XPDR2-NETWORK3', 'XPDR2-CLIENT4',
+                                 'XPDR2-CLIENT2', 'XPDR2-NETWORK2', 'XPDR2-CLIENT3', 'XPDR2-NETWORK1'],
+                'tp-unchecklist': []
+            }
+        }
         for i in range(0, nbNode):
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'SPDR-SA1-XPDR1'):
+            if nodeId in CHECK_LIST:
                 nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
-                self.assertEqual(nodeType, 'MUXPDR')
+                self.assertEqual(nodeType, CHECK_LIST[nodeId]['node-type'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertIn({'network-ref': 'openroadm-topology', 'node-ref': 'SPDR-SA1-XPDR1'},
+                self.assertIn({'network-ref': 'openroadm-topology', 'node-ref': nodeId},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertEqual(res['network'][0]['node'][i]
-                                 ['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 1)
+                                    ['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'],
+                                 CHECK_LIST[nodeId]['xpdr-number'])
                 nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 client = 0
                 network = 0
                 for j in range(0, nbTps):
-                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
+                    tpType = (res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                 ['org-openroadm-common-network:tp-type'])
                     tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
-                    if (tpType == 'XPONDER-CLIENT'):
+                    if tpType == 'XPONDER-CLIENT':
                         client += 1
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
-                                         ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-10GE-ODU2e')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
-                                         ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU2e')
-                    elif (tpType == 'XPONDER-NETWORK'):
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                             ['org-openroadm-otn-network-topology:tp-supported-interfaces']
+                                             ['supported-interface-capability'][0]['if-cap-type']),
+                                         CHECK_LIST[nodeId]['port-types'])
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                             ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']
+                                             ['rate']),
+                                         CHECK_LIST[nodeId]['otn-common-types'])
+                    elif tpType == 'XPONDER-NETWORK':
                         network += 1
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
-                                         ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
-                                         ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
-                                         [j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
-                                         [j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR1')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
-                                         [j]['supporting-termination-point'][0]['tp-ref'], 'XPDR1-NETWORK1')
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                             ['org-openroadm-otn-network-topology:tp-supported-interfaces']
+                                             ['supported-interface-capability'][0]['if-cap-type']),
+                                         'org-openroadm-port-types:if-OCH-OTU4-ODU4')
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                             ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']
+                                             ['rate']),
+                                         'org-openroadm-otn-common-types:ODU4')
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                             ['supporting-termination-point'][0]['network-ref']), 'openroadm-topology')
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                             ['supporting-termination-point'][0]['node-ref']), nodeId)
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                             ['supporting-termination-point'][0]['tp-ref']), tpId)
                 self.assertTrue(client == 4)
-                self.assertTrue(network == 1)
+                self.assertTrue(network == CHECK_LIST[nodeId]['network_nb'])
                 listNode.remove(nodeId)
                 nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']
                             ['odu-switching-pools'][0]['non-blocking-list'])
-                self.assertEqual(nbNbl, 4)
+                self.assertEqual(nbNbl, CHECK_LIST[nodeId]['nbl_nb'])
                 for k in range(0, nbNbl):
-                    nbl = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'][k]
-                    if (nbl['nbl-number'] == 1):
-                        self.assertEqual(nbl['available-interconnect-bandwidth'], 10)
-                        self.assertEqual(nbl['interconnect-bandwidth-unit'], 1000000000)
-                        self.assertIn('XPDR1-NETWORK1', nbl['tp-list'])
-                        self.assertIn('XPDR1-CLIENT1', nbl['tp-list'])
-                        self.assertNotIn('XPDR1-CLIENT2', nbl['tp-list'])
-            elif(nodeId == 'SPDR-SA1-XPDR2'):
-                nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
-                self.assertEqual(nodeType, 'SWITCH')
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'SPDR-SA1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertIn({'network-ref': 'openroadm-topology', 'node-ref': 'SPDR-SA1-XPDR2'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeSA'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]
-                                 ['org-openroadm-otn-network-topology:xpdr-attributes']['xpdr-number'], 2)
-                nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                client = 0
-                network = 0
-                for j in range(0, nbTps):
-                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
-                    tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
-                    if (tpType == 'XPONDER-CLIENT'):
-                        client += 1
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
-                                         ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-100GE-ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
-                                         ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
-                    elif (tpType == 'XPONDER-NETWORK'):
-                        network += 1
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-otn-network-topology:tp-supported-interfaces']
-                                         ['supported-interface-capability'][0]['if-cap-type'], 'org-openroadm-port-types:if-OCH-OTU4-ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
-                                         ['org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes']['rate'], 'org-openroadm-otn-common-types:ODU4')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
-                                         [j]['supporting-termination-point'][0]['network-ref'], 'openroadm-topology')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
-                                         [j]['supporting-termination-point'][0]['node-ref'], 'SPDR-SA1-XPDR2')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
-                                         [j]['supporting-termination-point'][0]['tp-ref'], tpId)
-                self.assertTrue(client == 4)
-                self.assertTrue(network == 4)
-                listNode.remove(nodeId)
-                nbNbl = len(res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']
-                            ['odu-switching-pools'][0]['non-blocking-list'])
-                self.assertEqual(nbNbl, 1)
-                nbl = res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']['odu-switching-pools'][0]['non-blocking-list'][0]
-                self.assertIn('XPDR2-NETWORK1', nbl['tp-list'])
-                self.assertIn('XPDR2-CLIENT1', nbl['tp-list'])
-                self.assertIn('XPDR2-NETWORK2', nbl['tp-list'])
-                self.assertIn('XPDR2-CLIENT2', nbl['tp-list'])
-                self.assertIn('XPDR2-NETWORK3', nbl['tp-list'])
-                self.assertIn('XPDR2-CLIENT3', nbl['tp-list'])
-                self.assertIn('XPDR2-NETWORK4', nbl['tp-list'])
-                self.assertIn('XPDR2-CLIENT4', nbl['tp-list'])
+                    nbl = (res['network'][0]['node'][i]['org-openroadm-otn-network-topology:switching-pools']
+                              ['odu-switching-pools'][0]['non-blocking-list'][k])
+                    if nbl['nbl-number'] == 1:
+                        if nodeId == 'SPDR-SA1-XPDR1':
+                            self.assertEqual(nbl['available-interconnect-bandwidth'], 10)
+                            self.assertEqual(nbl['interconnect-bandwidth-unit'], 1000000000)
+                        for tp in CHECK_LIST[nodeId]['tp-checklist']:
+                            self.assertIn(tp, nbl['tp-list'])
+                        for tp in CHECK_LIST[nodeId]['tp-unchecklist']:
+                            self.assertNotIn(tp, nbl['tp-list'])
             else:
                 self.assertFalse(True)
         self.assertEqual(len(listNode), 0)
index ddc4d0b0616007f89bc2f1c553ec4a567e08b160..7692c3246168bb75a9336832da361ce39558f1c2 100644 (file)
@@ -9,6 +9,9 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
 import time
 import requests
@@ -26,6 +29,7 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
index 29b0789da3ee7a5336d893800d230008e8435811..83fb148226e3bfb60a24fdf3cca7d9f2b3cc4898 100644 (file)
@@ -9,8 +9,10 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 #############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
-import json
 #from unittest.result import failfast
 import requests
 from common import test_utils
@@ -27,6 +29,7 @@ class TransportPCERendererTesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -75,9 +78,11 @@ class TransportPCERendererTesting(unittest.TestCase):
     def test_05_service_path_create(self):
         response = test_utils.service_path_request("create", "service_test", "7",
                                                    [{"renderer:node-id": "ROADM-A1",
-                                                     "renderer:src-tp": "SRG1-PP3-TXRX", "renderer:dest-tp": "DEG1-TTP-TXRX"},
+                                                     "renderer:src-tp": "SRG1-PP3-TXRX",
+                                                     "renderer:dest-tp": "DEG1-TTP-TXRX"},
                                                     {"renderer:node-id": "XPDR-A1",
-                                                     "renderer:src-tp": "XPDR1-CLIENT1", "renderer:dest-tp": "XPDR1-NETWORK1"}])
+                                                     "renderer:src-tp": "XPDR1-CLIENT1",
+                                                     "renderer:dest-tp": "XPDR1-NETWORK1"}])
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Roadm-connection successfully created for nodes: ROADM-A1', res["output"]["result"])
@@ -273,9 +278,11 @@ class TransportPCERendererTesting(unittest.TestCase):
     def test_17_service_path_delete(self):
         response = test_utils.service_path_request("delete", "service_test", "7",
                                                    [{"renderer:node-id": "ROADM-A1",
-                                                     "renderer:src-tp": "SRG1-PP3-TXRX", "renderer:dest-tp": "DEG1-TTP-TXRX"},
+                                                     "renderer:src-tp": "SRG1-PP3-TXRX",
+                                                     "renderer:dest-tp": "DEG1-TTP-TXRX"},
                                                     {"renderer:node-id": "XPDR-A1",
-                                                     "renderer:src-tp": "XPDR1-CLIENT1", "renderer:dest-tp": "XPDR1-NETWORK1"}])
+                                                     "renderer:src-tp": "XPDR1-CLIENT1",
+                                                     "renderer:dest-tp": "XPDR1-NETWORK1"}])
         self.assertEqual(response.status_code, requests.codes.ok)
         self.assertEqual(response.json(), {
             'output': {'result': 'Request processed', 'success': True}})
index 01c99fb8835ef130872f93b7ee4a5c896310ae83..496a33e65d88d38f5eccd6a35b460f9e424cc340 100644 (file)
@@ -7,6 +7,13 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
+
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+# some pylint false positives specific to tapi test
+# pylint: disable=unsubscriptable-object
+# pylint: disable=unsupported-assignment-operation
+
 import os
 import sys
 import time
@@ -50,6 +57,7 @@ class TransportTapitesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
similarity index 93%
rename from tests/transportpce_tests/2.2.1/test_topoPortMapping.py
rename to tests/transportpce_tests/2.2.1/test_topo_portmapping.py
index d60aac9b472c52a5a9b39462eab1ba003c14b825..66c0c23d328fb0c271dd87877a6942e735e8472b 100644 (file)
@@ -9,8 +9,10 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+
 import unittest
-import json
 import time
 import requests
 from common import test_utils
@@ -27,6 +29,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -59,10 +62,10 @@ class TransportPCEtesting(unittest.TestCase):
             nbMapCurrent = 0
             for j in range(0, nbTp):
                 tpId = resTopo['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
-                if((not "CP" in tpId) and (not "CTP" in tpId)):
+                if (not "CP" in tpId) and (not "CTP" in tpId):
                     responseMap = test_utils.portmapping_request(nodeMapId+"/mapping/"+tpId)
                     self.assertEqual(responseMap.status_code, requests.codes.ok)
-                    if(responseMap.status_code == requests.codes.ok):
+                    if responseMap.status_code == requests.codes.ok:
                         nbMapCurrent += 1
             nbMapCumul += nbMapCurrent
         nbMappings -= nbMapCurrent
index 3d8cf50dfa24da8ac6662e0baf2f2fbdf560cc58..b9969c7b28dc848536b1d9d195948c349a614e7a 100644 (file)
@@ -9,9 +9,12 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+# pylint: disable=no-member
+# pylint: disable=too-many-public-methods
+# pylint: disable=too-many-lines
+
 import unittest
 import time
-import json
 import logging
 import requests
 from common import test_utils
@@ -20,6 +23,45 @@ from common import test_utils
 class TransportPCEtesting(unittest.TestCase):
 
     processes = None
+    CHECK_DICT1 = {
+        'ROADM-A1-SRG1': {
+            'node_type': 'SRG',
+            'checks_tp': [({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}),
+                          ({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'})]
+        },
+        'ROADM-A1-SRG3': {
+            'node_type': 'SRG',
+            'checks_tp': [({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}),
+                          ({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'})]
+        },
+        'ROADM-A1-DEG1': {
+            'node_type': 'DEGREE',
+            'checks_tp': [({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
+                          ({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
+        },
+        'ROADM-A1-DEG2': {
+            'node_type': 'DEGREE',
+            'checks_tp': [({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
+                          ({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
+        }
+    }
+    CHECK_DICT2 = {
+        'ROADM-C1-SRG1': {
+            'node_type': 'SRG',
+            'checks_tp': [({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}),
+                          ({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'})]
+        },
+        'ROADM-C1-DEG1': {
+            'node_type': 'DEGREE',
+            'checks_tp': [({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
+                          ({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
+        },
+        'ROADM-C1-DEG2': {
+            'node_type': 'DEGREE',
+            'checks_tp': [({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
+                          ({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
+        }
+    }
 
     @classmethod
     def setUpClass(cls):
@@ -28,6 +70,7 @@ class TransportPCEtesting(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        # pylint: disable=not-an-iterable
         for process in cls.processes:
             test_utils.shutdown_process(process)
         print("all processes killed")
@@ -58,43 +101,38 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:model'], 'model2')
 
     def test_04_getLinks_OpenroadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         # Tests related to links
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
         self.assertEqual(nbLink, 10)
-        expressLink = ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
-                       'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX']
-        addLink = ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
-                   'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
-                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
-                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX']
-        dropLink = ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
-                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
-                    'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX',
-                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX']
+        check_list = {'EXPRESS-LINK': ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
+                                       'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'],
+                      'ADD-LINK': ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
+                                   'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
+                                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
+                                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX'],
+                      'DROP-LINK': ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
+                                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
+                                    'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX',
+                                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX']
+                      }
         for i in range(0, nbLink):
             linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'EXPRESS-LINK'):
-                find = linkId in expressLink
-                self.assertEqual(find, True)
-                expressLink.remove(linkId)
-            elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ADD-LINK'):
-                find = linkId in addLink
-                self.assertEqual(find, True)
-                addLink.remove(linkId)
-            elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'DROP-LINK'):
-                find = linkId in dropLink
+            linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+            if linkType in check_list:
+                find = linkId in check_list[linkType]
                 self.assertEqual(find, True)
-                dropLink.remove(linkId)
+                (check_list[linkType]).remove(linkId)
             else:
                 self.assertFalse(True)
-        self.assertEqual(len(expressLink), 0)
-        self.assertEqual(len(addLink), 0)
-        self.assertEqual(len(dropLink), 0)
+        for link_type in check_list:
+            self.assertEqual(len(check_list[link_type]), 0)
 
     def test_05_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -107,51 +145,12 @@ class TransportPCEtesting(unittest.TestCase):
                           res['network'][0]['node'][i]['supporting-node'])
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'ROADM-A1-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-SRG3'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG1'):
-                # Test related to DEG1
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG2'):
-                # Test related to DEG2
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+            if nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
@@ -173,6 +172,7 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
 
     def test_08_getOpenRoadmNetwork(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_net_request()
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
@@ -182,16 +182,17 @@ class TransportPCEtesting(unittest.TestCase):
             self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network')
             self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA')
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'XPDR-A1'):
+            if nodeId == 'XPDR-A1':
                 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2')
-            elif(nodeId == 'ROADM-A1'):
+            elif nodeId == 'ROADM-A1':
                 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2')
             else:
                 self.assertFalse(True)
+                continue
+            self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2')
 
     def test_09_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -203,7 +204,7 @@ class TransportPCEtesting(unittest.TestCase):
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
             # Tests related to XPDRA nodes
-            if(nodeId == 'XPDR-A1-XPDR1'):
+            if nodeId == 'XPDR-A1-XPDR1':
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
@@ -213,61 +214,31 @@ class TransportPCEtesting(unittest.TestCase):
                 client = 0
                 network = 0
                 for j in range(0, nbTps):
-                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
+                    tpType = (res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                 ['org-openroadm-common-network:tp-type'])
                     tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
-                    if (tpType == 'XPONDER-CLIENT'):
+                    if tpType == 'XPONDER-CLIENT':
                         client += 1
-                    elif (tpType == 'XPONDER-NETWORK'):
+                    elif tpType == 'XPONDER-NETWORK':
                         network += 1
-                    if (tpId == 'XPDR1-NETWORK2'):
+                    if tpId == 'XPDR1-NETWORK2':
                         self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
                                          ['transportpce-topology:associated-connection-map-port'], 'XPDR1-CLIENT2')
-                    if (tpId == 'XPDR1-CLIENT2'):
+                    if tpId == 'XPDR1-CLIENT2':
                         self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
                                          ['transportpce-topology:associated-connection-map-port'], 'XPDR1-NETWORK2')
 
                 self.assertTrue(client == 2)
                 self.assertTrue(network == 2)
                 listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-SRG3'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG1'):
-                # Test related to DEG1
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
+            elif nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
                               res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG2'):
-                # Test related to DEG2
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
                               res['network'][0]['node'][i]['supporting-node'])
                 listNode.remove(nodeId)
@@ -279,59 +250,46 @@ class TransportPCEtesting(unittest.TestCase):
     def test_10_connect_tail_xpdr_rdm(self):
         # Connect the tail: XPDRA to ROADMA
         response = test_utils.connect_xpdr_to_rdm_request("XPDR-A1", "1", "1",
-                                                           "ROADM-A1", "1", "SRG1-PP1-TXRX")
+                                                          "ROADM-A1", "1", "SRG1-PP1-TXRX")
         self.assertEqual(response.status_code, requests.codes.ok)
 
     def test_11_connect_tail_rdm_xpdr(self):
         response = test_utils.connect_rdm_to_xpdr_request("XPDR-A1", "1", "1",
-                                                           "ROADM-A1", "1", "SRG1-PP1-TXRX")
+                                                          "ROADM-A1", "1", "SRG1-PP1-TXRX")
         self.assertEqual(response.status_code, requests.codes.ok)
 
     def test_12_getLinks_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         # Tests related to links
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
         self.assertEqual(nbLink, 12)
-        expressLink = ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
-                       'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX']
-        addLink = ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
-                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX']
-        dropLink = ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
-                    'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX']
-        XPDR_IN = ['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1']
-        XPDR_OUT = ['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX']
+        check_list = {'EXPRESS-LINK': ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
+                                       'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'],
+                      'ADD-LINK': ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
+                                   'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
+                                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
+                                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX'],
+                      'DROP-LINK': ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
+                                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
+                                    'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX',
+                                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX'],
+                      'XPONDER-INPUT': ['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1'],
+                      'XPONDER-OUTPUT': ['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX']
+                      }
         for i in range(0, nbLink):
-            nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if(nodeType == 'EXPRESS-LINK'):
-                find = linkId in expressLink
-                self.assertEqual(find, True)
-                expressLink.remove(linkId)
-            elif(nodeType == 'ADD-LINK'):
-                find = linkId in addLink
-                self.assertEqual(find, True)
-                addLink.remove(linkId)
-            elif(nodeType == 'DROP-LINK'):
-                find = linkId in dropLink
+            linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+            if linkType in check_list:
+                find = linkId in check_list[linkType]
                 self.assertEqual(find, True)
-                dropLink.remove(linkId)
-            elif(nodeType == 'XPONDER-INPUT'):
-                find = linkId in XPDR_IN
-                self.assertEqual(find, True)
-                XPDR_IN.remove(linkId)
-            elif(nodeType == 'XPONDER-OUTPUT'):
-                find = linkId in XPDR_OUT
-                self.assertEqual(find, True)
-                XPDR_OUT.remove(linkId)
+                (check_list[linkType]).remove(linkId)
             else:
                 self.assertFalse(True)
-        self.assertEqual(len(expressLink), 0)
-        self.assertEqual(len(addLink), 0)
-        self.assertEqual(len(dropLink), 0)
-        self.assertEqual(len(XPDR_IN), 0)
-        self.assertEqual(len(XPDR_OUT), 0)
+        for link_type in check_list:
+            self.assertEqual(len(check_list[link_type]), 0)
 
     def test_13_connect_ROADMC(self):
         response = test_utils.mount_device("ROADM-C1", 'roadmc')
@@ -365,6 +323,7 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.created)
 
     def test_16_getClliNetwork(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_clli_net_request()
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
@@ -372,98 +331,80 @@ class TransportPCEtesting(unittest.TestCase):
         listNode = ['NodeA', 'NodeC']
         for i in range(0, nbNode):
             nodeId = res['network'][0]['node'][i]['node-id']
-            find = nodeId in listNode
-            self.assertEqual(find, True)
-            if(nodeId == 'NodeA'):
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeA')
+            if nodeId in listNode:
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
+                listNode.remove(nodeId)
             else:
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC')
-            listNode.remove(nodeId)
+                self.assertFalse(True)
         self.assertEqual(len(listNode), 0)
 
     def test_17_getOpenRoadmNetwork(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_net_request()
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         nbNode = len(res['network'][0]['node'])
         self.assertEqual(nbNode, 3)
         listNode = ['XPDR-A1', 'ROADM-A1', 'ROADM-C1']
+        CHECK_LIST = {'XPDR-A1': {'node-ref': 'NodeA', 'node-type': 'XPONDER'},
+                      'ROADM-A1': {'node-ref': 'NodeA', 'node-type': 'ROADM'},
+                      'ROADM-C1': {'node-ref': 'NodeC', 'node-type': 'ROADM'}
+                      }
         for i in range(0, nbNode):
             self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network')
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'XPDR-A1'):
-                self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1'):
-                self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-C1'):
-                self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeC')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM')
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2')
+            if nodeId in CHECK_LIST:
+                self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],
+                                 CHECK_LIST[nodeId]['node-ref'])
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
+                                 CHECK_LIST[nodeId]['node-type'])
                 listNode.remove(nodeId)
             else:
                 self.assertFalse(True)
+                continue
+            self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], 'model2')
         self.assertEqual(len(listNode), 0)
 
     def test_18_getROADMLinkOpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         # Tests related to links
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
         self.assertEqual(nbLink, 20)
-        expressLink = ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX', 'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
-                       'ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX', 'ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX']
-        addLink = ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
-                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
-                   'ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX', 'ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX']
-        dropLink = ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
-                    'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX',
-                    'ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX', 'ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX']
-        R2RLink = ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX',
-                   'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX']
-        XPDR_IN = ['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1']
-        XPDR_OUT = ['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX']
+        check_list = {'EXPRESS-LINK': ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
+                                       'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
+                                       'ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX',
+                                       'ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX'],
+                      'ADD-LINK': ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
+                                   'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
+                                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
+                                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
+                                   'ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX',
+                                   'ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX'],
+                      'DROP-LINK': ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
+                                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
+                                    'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX',
+                                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX',
+                                    'ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX',
+                                    'ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX'],
+                      'ROADM-TO-ROADM': ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX',
+                                         'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX'],
+                      'XPONDER-INPUT': ['ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1'],
+                      'XPONDER-OUTPUT': ['XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX']
+                      }
         for i in range(0, nbLink):
-            nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if(nodeType == 'EXPRESS-LINK'):
-                find = linkId in expressLink
-                self.assertEqual(find, True)
-                expressLink.remove(linkId)
-            elif(nodeType == 'ADD-LINK'):
-                find = linkId in addLink
+            linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+            if linkType in check_list:
+                find = linkId in check_list[linkType]
                 self.assertEqual(find, True)
-                addLink.remove(linkId)
-            elif(nodeType == 'DROP-LINK'):
-                find = linkId in dropLink
-                self.assertEqual(find, True)
-                dropLink.remove(linkId)
-            elif(nodeType == 'ROADM-TO-ROADM'):
-                find = linkId in R2RLink
-                self.assertEqual(find, True)
-                R2RLink.remove(linkId)
-            elif(nodeType == 'XPONDER-INPUT'):
-                find = linkId in XPDR_IN
-                self.assertEqual(find, True)
-                XPDR_IN.remove(linkId)
-            elif(nodeType == 'XPONDER-OUTPUT'):
-                find = linkId in XPDR_OUT
-                self.assertEqual(find, True)
-                XPDR_OUT.remove(linkId)
+                (check_list[linkType]).remove(linkId)
             else:
                 self.assertFalse(True)
-        self.assertEqual(len(expressLink), 0)
-        self.assertEqual(len(addLink), 0)
-        self.assertEqual(len(dropLink), 0)
-        self.assertEqual(len(R2RLink), 0)
-        self.assertEqual(len(XPDR_IN), 0)
-        self.assertEqual(len(XPDR_OUT), 0)
+        for link_type in check_list:
+            self.assertEqual(len(check_list[link_type]), 0)
 
     def test_19_getLinkOmsAttributesOpenRoadmTopology(self):
         response = test_utils.get_ordm_topo_request("")
@@ -475,21 +416,21 @@ class TransportPCEtesting(unittest.TestCase):
         R2RLink = ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX',
                    'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX']
         for i in range(0, nbLink):
-            nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if(link_id in R2RLink):
+            if link_id in R2RLink:
                 find = False
                 spanLoss = res['network'][0]['ietf-network-topology:link'][i][
                     'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"]
                 length = res['network'][0]['ietf-network-topology:link'][i][
                     'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
-                if((spanLoss != None) & (length != None)):
+                if (spanLoss is not None) & (length is not None):
                     find = True
                 self.assertTrue(find)
                 R2RLink.remove(link_id)
         self.assertEqual(len(R2RLink), 0)
 
     def test_20_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -499,11 +440,11 @@ class TransportPCEtesting(unittest.TestCase):
         listNode = ['XPDR-A1-XPDR1',
                     'ROADM-A1-SRG1', 'ROADM-A1-SRG3', 'ROADM-A1-DEG1', 'ROADM-A1-DEG2',
                     'ROADM-C1-SRG1', 'ROADM-C1-DEG1', 'ROADM-C1-DEG2']
-        # ************************Tests related to XPDRA nodes
+        # Tests related to XPDRA nodes
         for i in range(0, nbNode):
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'XPDR-A1-XPDR1'):
+            if nodeId == 'XPDR-A1-XPDR1':
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'},
                               res['network'][0]['node'][i]['supporting-node'])
                 self.assertEqual(nodeType, 'XPONDER')
@@ -512,89 +453,43 @@ class TransportPCEtesting(unittest.TestCase):
                 client = 0
                 network = 0
                 for j in range(0, nbTps):
-                    tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['org-openroadm-common-network:tp-type']
-                    if (tpType == 'XPONDER-CLIENT'):
+                    tpType = (res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                 ['org-openroadm-common-network:tp-type'])
+                    if tpType == 'XPONDER-CLIENT':
                         client += 1
-                    elif (tpType == 'XPONDER-NETWORK'):
+                    elif tpType == 'XPONDER-NETWORK':
                         network += 1
                 self.assertTrue(client == 2)
                 self.assertTrue(network == 2)
                 listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-SRG3'):
-                # Test related to SRG1
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG1'):
-                # Test related to DEG1
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
+        # Tests related to ROADMA nodes
+            elif nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG2'):
-                # Test related to DEG2
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE')
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
+                                 self.CHECK_DICT1[nodeId]['node_type'])
                 listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-C1-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'},
+        # Tests related to ROADMA nodes
+            elif nodeId in self.CHECK_DICT2:
+                self.assertEqual(nodeType, self.CHECK_DICT2[nodeId]['node_type'])
+                if self.CHECK_DICT2[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+                for item in self.CHECK_DICT2[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeC'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'SRG')
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-C1-DEG1'):
-                # Test related to DEG1
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'},
                               res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE')
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
+                                 self.CHECK_DICT2[nodeId]['node_type'])
                 listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-C1-DEG2'):
-                # Test related to DEG1
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-C1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'DEGREE')
-                listNode.remove(nodeId)
-            else:
-                self.assertFalse(True)
         self.assertEqual(len(listNode), 0)
 
     def test_21_connect_ROADMB(self):
@@ -660,6 +555,7 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.created)
 
     def test_26_getClliNetwork(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_clli_net_request()
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
@@ -667,15 +563,11 @@ class TransportPCEtesting(unittest.TestCase):
         listNode = ['NodeA', 'NodeB', 'NodeC']
         for i in range(0, nbNode):
             nodeId = res['network'][0]['node'][i]['node-id']
-            find = nodeId in listNode
-            self.assertEqual(find, True)
-            if(nodeId == 'NodeA'):
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeA')
-            elif(nodeId == 'NodeB'):
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeB')
+            if nodeId in listNode:
+                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
+                listNode.remove(nodeId)
             else:
-                self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC')
-            listNode.remove(nodeId)
+                self.assertFalse(True)
         self.assertEqual(len(listNode), 0)
 
     def test_27_verifyDegree(self):
@@ -684,11 +576,15 @@ class TransportPCEtesting(unittest.TestCase):
         res = response.json()
         # Tests related to links
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
-        listR2RLink = ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX', 'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX',
-                       'ROADM-A1-DEG1-DEG1-TTP-TXRXtoROADM-B1-DEG1-DEG1-TTP-TXRX', 'ROADM-C1-DEG2-DEG2-TTP-TXRXtoROADM-B1-DEG2-DEG2-TTP-TXRX',
-                       'ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX', 'ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX']
+        listR2RLink = ['ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX',
+                       'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX',
+                       'ROADM-A1-DEG1-DEG1-TTP-TXRXtoROADM-B1-DEG1-DEG1-TTP-TXRX',
+                       'ROADM-C1-DEG2-DEG2-TTP-TXRXtoROADM-B1-DEG2-DEG2-TTP-TXRX',
+                       'ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX',
+                       'ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX']
         for i in range(0, nbLink):
-            if res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ROADM-TO-ROADM':
+            if (res['network'][0]['ietf-network-topology:link'][i]
+                   ['org-openroadm-common-network:link-type'] == 'ROADM-TO-ROADM'):
                 link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
                 find = link_id in listR2RLink
                 self.assertEqual(find, True)
@@ -707,7 +603,8 @@ class TransportPCEtesting(unittest.TestCase):
             link_type = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             link_src = res['network'][0]['ietf-network-topology:link'][i]['source']['source-node']
             link_dest = res['network'][0]['ietf-network-topology:link'][i]['destination']['dest-node']
-            oppLink_id = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:opposite-link']
+            oppLink_id = (res['network'][0]['ietf-network-topology:link'][i]
+                             ['org-openroadm-common-network:opposite-link'])
             # Find the opposite link
             response_oppLink = test_utils.get_ordm_topo_request("ietf-network-topology:link/"+oppLink_id)
             self.assertEqual(response_oppLink.status_code, requests.codes.ok)
@@ -717,18 +614,11 @@ class TransportPCEtesting(unittest.TestCase):
             self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['source']['source-node'], link_dest)
             self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['destination']['dest-node'], link_src)
             oppLink_type = res_oppLink['ietf-network-topology:link'][0]['org-openroadm-common-network:link-type']
-            if link_type == 'ADD-LINK':
-                self.assertEqual(oppLink_type, 'DROP-LINK')
-            elif link_type == 'DROP-LINK':
-                self.assertEqual(oppLink_type, 'ADD-LINK')
-            elif link_type == 'EXPRESS-LINK':
-                self.assertEqual(oppLink_type, 'EXPRESS-LINK')
-            elif link_type == 'ROADM-TO-ROADM':
-                self.assertEqual(oppLink_type, 'ROADM-TO-ROADM')
-            elif link_type == 'XPONDER-INPUT':
-                self.assertEqual(oppLink_type, 'XPONDER-OUTPUT')
-            elif link_type == 'XPONDER-OUTPUT':
-                self.assertEqual(oppLink_type, 'XPONDER-INPUT')
+            CHECK_DICT = {'ADD-LINK': 'DROP-LINK', 'DROP-LINK': 'ADD-LINK',
+                          'EXPRESS-LINK': 'EXPRESS-LINK', 'ROADM-TO-ROADM': 'ROADM-TO-ROADM',
+                          'XPONDER-INPUT': 'XPONDER-OUTPUT', 'XPONDER-OUTUT': 'XPONDER-INPUT'}
+            if link_type in CHECK_DICT:
+                self.assertEqual(oppLink_type, CHECK_DICT[link_type])
 
     def test_29_getLinkOmsAttributesOpenRoadmTopology(self):
         response = test_utils.get_ordm_topo_request("")
@@ -742,15 +632,14 @@ class TransportPCEtesting(unittest.TestCase):
                    'ROADM-B1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG1-DEG1-TTP-TXRX',
                    'ROADM-B1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG2-DEG2-TTP-TXRX']
         for i in range(0, nbLink):
-            nodeType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
             link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-            if(link_id in R2RLink):
+            if link_id in R2RLink:
                 find = False
                 spanLoss = res['network'][0]['ietf-network-topology:link'][i][
                     'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"]
                 length = res['network'][0]['ietf-network-topology:link'][i][
                     'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
-                if((spanLoss != None) & (length != None)):
+                if (spanLoss is not None) & (length is not None):
                     find = True
                 self.assertTrue(find)
                 R2RLink.remove(link_id)
@@ -771,62 +660,8 @@ class TransportPCEtesting(unittest.TestCase):
         response = test_utils.del_node_request("NodeC")
         self.assertEqual(response.status_code, requests.codes.ok)
 
-#    def test_24_check_roadm2roadm_links_deletion(self):
-#        response = test_utils.get_ordm_topo_request("")
-#        self.assertEqual(response.status_code, requests.codes.ok)
-#        res = response.json()
-#        #Write the response in the log
-#        with open('./transportpce_tests/log/response.log', 'a') as outfile1:
-#            outfile1.write(str(res))
-#        #Tests related to links
-#        nbLink=len(res['network'][0]['ietf-network-topology:link'])
-#        self.assertEqual(nbLink,8)
-#        expressLink=['ROADMA-DEG2-DEG2-CTP-TXRXtoROADMA-DEG1-DEG1-CTP-TXRX','ROADMA-DEG1-DEG1-CTP-TXRXtoROADMA-DEG2-DEG2-CTP-TXRX']
-#        addLink=['ROADMA-SRG1-SRG1-CP-TXRXtoROADMA-DEG2-DEG2-CTP-TXRX','ROADMA-SRG1-SRG1-CP-TXRXtoROADMA-DEG1-DEG1-CTP-TXRX',]
-#        dropLink=['ROADMA-DEG1-DEG1-CTP-TXRXtoROADMA-SRG1-SRG1-CP-TXRX','ROADMA-DEG2-DEG2-CTP-TXRXtoROADMA-SRG1-SRG1-CP-TXRX']
-#        XPDR_IN=['ROADMA-SRG1-SRG1-PP1-TXRXtoXPDRA-XPDR1-XPDR1-NETWORK1']
-#        XPDR_OUT=['XPDRA-XPDR1-XPDR1-NETWORK1toROADMA-SRG1-SRG1-PP1-TXRX']
-#        for i in range(0,nbLink):
-#            nodeType=res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
-#            linkId=res['network'][0]['ietf-network-topology:link'][i]['link-id']
-#            if(nodeType=='EXPRESS-LINK'):
-#                find= linkId in expressLink
-#                self.assertEqual(find, True)
-#                expressLink.remove(linkId)
-#            elif(nodeType=='ADD-LINK'):
-#                find= linkId in addLink
-#                self.assertEqual(find, True)
-#                addLink.remove(linkId)
-#            elif(nodeType=='DROP-LINK'):
-#                find= linkId in dropLink
-#                self.assertEqual(find, True)
-#                dropLink.remove(linkId)
-#            elif(nodeType=='XPONDER-INPUT'):
-#                find= linkId in XPDR_IN
-#                self.assertEqual(find, True)
-#                XPDR_IN.remove(linkId)
-#            elif(nodeType=='XPONDER-OUTPUT'):
-#                find= linkId in XPDR_OUT
-#                self.assertEqual(find, True)
-#                XPDR_OUT.remove(linkId)
-#            else:
-#                self.assertFalse(True)
-#        self.assertEqual(len(expressLink),0)
-#        self.assertEqual(len(addLink),0)
-#        self.assertEqual(len(dropLink),0)
-#        self.assertEqual(len(XPDR_IN),0)
-#        self.assertEqual(len(XPDR_OUT),0)
-#
-#        for i in range(0,nbLink):
-#            self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'],'ROADM-TO-ROADM')
-#            self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['link-id'],'ROADMC-SRG1-SRG1-CP-TXRXtoROADMC-DEG1-DEG1-CTP-TXRX')
-#            self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['link-id'],'ROADMC-DEG1-DEG1-CTP-TXRXtoROADMC-SRG1-SRG1-CP-TXRX')
-#            self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['link-id'],'ROADMC-SRG1-SRG1-CP-TXRXtoROADMC-DEG2-DEG1-CTP-TXRX')
-#            self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['link-id'],'ROADMC-DEG1-DEG2-CTP-TXRXtoROADMC-SRG1-SRG1-CP-TXRX')
-#            self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['link-id'],'ROADMC-DEG1-DEG1-CTP-TXRXtoROADMC-DEG2-DEG2-CTP-TXRX')
-#            self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]['link-id'],'ROADMC-DEG2-DEG2-CTP-TXRXtoROADMC-DEG1-DEG1-CTP-TXRX')
-
     def test_32_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -838,61 +673,32 @@ class TransportPCEtesting(unittest.TestCase):
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
             # Tests related to XPDRA nodes
-            if(nodeId == 'XPDR-A1-XPDR1'):
+            if nodeId == 'XPDR-A1-XPDR1':
                 nbTp = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 for j in range(0, nbTp):
                     tpid = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
-                    if (tpid == 'XPDR1-CLIENT1'):
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
-                                         ['org-openroadm-common-network:tp-type'], 'XPONDER-CLIENT')
-                    if (tpid == 'XPDR1-NETWORK1'):
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
-                                         ['org-openroadm-common-network:tp-type'], 'XPONDER-NETWORK')
-                        self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
-                                         ['org-openroadm-network-topology:xpdr-network-attributes']['tail-equipment-id'],
+                    if tpid == 'XPDR1-CLIENT1':
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                             ['org-openroadm-common-network:tp-type']), 'XPONDER-CLIENT')
+                    if tpid == 'XPDR1-NETWORK1':
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                          ['org-openroadm-common-network:tp-type']), 'XPONDER-NETWORK')
+                        self.assertEqual((res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
+                                          ['org-openroadm-network-topology:xpdr-network-attributes']
+                                          ['tail-equipment-id']),
                                          'ROADM-A1-SRG1--SRG1-PP1-TXRX')
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDR-A1'},
                               res['network'][0]['node'][i]['supporting-node'])
                 listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-SRG3'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
-                              res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG1'):
-                # Test related to DEG1
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
+            # Tests related to ROADMA nodes
+            elif nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
                               res['network'][0]['node'][i]['supporting-node'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG2'):
-                # Test related to DEG2
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
                 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
                               res['network'][0]['node'][i]['supporting-node'])
                 listNode.remove(nodeId)
@@ -922,7 +728,7 @@ class TransportPCEtesting(unittest.TestCase):
         nbNode = len(res['network'][0]['node'])
         self.assertEqual(nbNode, 1)
         for i in range(0, nbNode-1):
-            self.assertNotEqual(res['network'][0]['node'][1]['org-openroadm-clli-network:clli'], 'NodeC')
+            self.assertNotEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC')
 
     def test_35_disconnect_XPDRA(self):
         response = test_utils.unmount_device("XPDR-A1")
@@ -946,6 +752,7 @@ class TransportPCEtesting(unittest.TestCase):
             self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'XPDR-A1')
 
     def test_38_getNodes_OpenRoadmTopology(self):
+        # pylint: disable=redundant-unittest-assert
         response = test_utils.get_ordm_topo_request("")
         res = response.json()
         # Tests related to nodes
@@ -958,39 +765,16 @@ class TransportPCEtesting(unittest.TestCase):
                           res['network'][0]['node'][i]['supporting-node'])
             nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
             nodeId = res['network'][0]['node'][i]['node-id']
-            if(nodeId == 'ROADM-A1-SRG1'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-SRG3'):
-                # Test related to SRG1
-                self.assertEqual(nodeType, 'SRG')
-                self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
-                self.assertIn({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG1'):
-                # Test related to DEG1
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                listNode.remove(nodeId)
-            elif(nodeId == 'ROADM-A1-DEG2'):
-                # Test related to DEG2
-                self.assertEqual(nodeType, 'DEGREE')
-                self.assertIn({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
-                self.assertIn({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'},
-                              res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+            if nodeId in self.CHECK_DICT1:
+                self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
+                if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
+                    self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 5)
+                for item in self.CHECK_DICT1[nodeId]['checks_tp']:
+                    self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
+                self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
+                              res['network'][0]['node'][i]['supporting-node'])
+                self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADM-A1'},
+                              res['network'][0]['node'][i]['supporting-node'])
                 listNode.remove(nodeId)
             else:
                 self.assertFalse(True)
@@ -1010,34 +794,29 @@ class TransportPCEtesting(unittest.TestCase):
         res = response.json()
         nbLink = len(res['network'][0]['ietf-network-topology:link'])
         self.assertEqual(nbLink, 16)
-        expressLink = ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
-                       'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX']
-        addLink = ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
-                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX', 'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX']
-        dropLink = ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
-                    'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX', 'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX']
+        check_list = {'EXPRESS-LINK': ['ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
+                                       'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX'],
+                      'ADD-LINK': ['ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
+                                   'ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX',
+                                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX',
+                                   'ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX'],
+                      'DROP-LINK': ['ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
+                                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX',
+                                    'ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX',
+                                    'ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX']
+                      }
         roadmtoroadmLink = 0
         for i in range(0, nbLink):
-            if (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'EXPRESS-LINK'):
-                link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-                find = link_id in expressLink
-                self.assertEqual(find, True)
-                expressLink.remove(link_id)
-            elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'ADD-LINK'):
-                link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-                find = link_id in addLink
-                self.assertEqual(find, True)
-                addLink.remove(link_id)
-            elif (res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type'] == 'DROP-LINK'):
-                link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
-                find = link_id in dropLink
+            linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
+            linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
+            if linkType in check_list:
+                find = linkId in check_list[linkType]
                 self.assertEqual(find, True)
-                dropLink.remove(link_id)
+                (check_list[linkType]).remove(linkId)
             else:
                 roadmtoroadmLink += 1
-        self.assertEqual(len(expressLink), 0)
-        self.assertEqual(len(addLink), 0)
-        self.assertEqual(len(dropLink), 0)
+        for link_type in check_list:
+            self.assertEqual(len(check_list[link_type]), 0)
         self.assertEqual(roadmtoroadmLink, 6)
         for i in range(0, nbLink):
             self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]
diff --git a/tests/transportpce_tests/common/__init__.py b/tests/transportpce_tests/common/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
index 3a2d6e9ea2936b0684dca000ddc2ad41ff166e70..dd26aba7996af0440a37316cef7b3be9dbe45731 100644 (file)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python
+
 ##############################################################################
 # Copyright (c) 2020 Orange, Inc. and others.  All rights reserved.
 #
@@ -7,6 +8,9 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
+
+# pylint: disable=no-member
+
 import json
 import os
 import sys
@@ -132,7 +136,7 @@ def install_karaf_feature(feature_name: str):
         "..", "..", "..", "karaf", "target", "assembly", "bin", "client")
     return subprocess.run([executable],
                           input='feature:install ' + feature_name + '\n feature:list | grep tapi \n logout \n',
-                          universal_newlines=True)
+                          universal_newlines=True, check=False)
 
 
 def get_request(url):
@@ -149,11 +153,11 @@ def post_request(url, data):
             data=json.dumps(data),
             headers=TYPE_APPLICATION_JSON,
             auth=(ODL_LOGIN, ODL_PWD))
-    else:
-        return requests.request(
-            "POST", url.format(RESTCONF_BASE_URL),
-            headers=TYPE_APPLICATION_JSON,
-            auth=(ODL_LOGIN, ODL_PWD))
+
+    return requests.request(
+        "POST", url.format(RESTCONF_BASE_URL),
+        headers=TYPE_APPLICATION_JSON,
+        auth=(ODL_LOGIN, ODL_PWD))
 
 
 def post_xmlrequest(url, data):
@@ -163,6 +167,7 @@ def post_xmlrequest(url, data):
             data=data,
             headers=TYPE_APPLICATION_XML,
             auth=(ODL_LOGIN, ODL_PWD))
+    return None
 
 
 def put_request(url, data):
@@ -329,32 +334,34 @@ def get_service_list_request(suffix: str):
 def service_create_request(attr):
     return post_request(URL_SERV_CREATE, attr)
 
-def service_delete_request(servicename : str,
-                           requestid = "e3028bae-a90f-4ddd-a83f-cf224eba0e58",
+
+def service_delete_request(servicename: str,
+                           requestid="e3028bae-a90f-4ddd-a83f-cf224eba0e58",
                            notificationurl="http://localhost:8585/NotificationServer/notify"):
     attr = {"input": {
-                "sdnc-request-header": {
-                     "request-id": requestid,
-                     "rpc-action": "service-delete",
-                     "request-system-id": "appname",
-                     "notification-url": notificationurl},
-                "service-delete-req-info": {
-                     "service-name": servicename,
-                     "tail-retention": "no"}}}
+        "sdnc-request-header": {
+            "request-id": requestid,
+            "rpc-action": "service-delete",
+            "request-system-id": "appname",
+            "notification-url": notificationurl},
+        "service-delete-req-info": {
+            "service-name": servicename,
+            "tail-retention": "no"}}}
     return post_request(URL_SERV_DELETE, attr)
 
 
 def service_path_request(operation: str, servicename: str, wavenumber: str, nodes):
     attr = {"renderer:input": {
-            "renderer:service-name": servicename,
-            "renderer:wave-number": wavenumber,
-            "renderer:modulation-format": "qpsk",
-            "renderer:operation": operation,
-            "renderer:nodes": nodes}}
+        "renderer:service-name": servicename,
+        "renderer:wave-number": wavenumber,
+        "renderer:modulation-format": "qpsk",
+        "renderer:operation": operation,
+        "renderer:nodes": nodes}}
     return post_request(URL_SERVICE_PATH, attr)
 
 
-def otn_service_path_request(operation: str, servicename: str, servicerate: str, servicetype: str, nodes, eth_attr=None):
+def otn_service_path_request(operation: str, servicename: str, servicerate: str, servicetype: str, nodes,
+                             eth_attr=None):
     attr = {"service-name": servicename,
             "operation": operation,
             "service-rate": servicerate,
@@ -367,25 +374,26 @@ def otn_service_path_request(operation: str, servicename: str, servicerate: str,
 
 def create_ots_oms_request(nodeid: str, lcp: str):
     attr = {"input": {
-            "node-id": nodeid,
-            "logical-connection-point": lcp}}
+        "node-id": nodeid,
+        "logical-connection-point": lcp}}
     return post_request(URL_CREATE_OTS_OMS, attr)
 
+
 def path_computation_request(requestid: str, servicename: str, serviceaend, servicezend,
                              hardconstraints=None, softconstraints=None, metric="hop-count", other_attr=None):
-    attr =  {"service-name": servicename,
-             "resource-reserve": "true",
-             "service-handler-header": { "request-id": requestid },
-             "service-a-end": serviceaend,
-             "service-z-end": servicezend,
-             "pce-metric": metric}
+    attr = {"service-name": servicename,
+            "resource-reserve": "true",
+            "service-handler-header": {"request-id": requestid},
+            "service-a-end": serviceaend,
+            "service-z-end": servicezend,
+            "pce-metric": metric}
     if hardconstraints:
-        attr.update({ "hard-constraints": hardconstraints})
+        attr.update({"hard-constraints": hardconstraints})
     if softconstraints:
-        attr.update({ "soft-constraints": softconstraints})
+        attr.update({"soft-constraints": softconstraints})
     if other_attr:
         attr.update(other_attr)
-    return post_request(URL_PATH_COMPUTATION_REQUEST, {"input": attr })
+    return post_request(URL_PATH_COMPUTATION_REQUEST, {"input": attr})
 
 
 def shutdown_process(process):
@@ -402,9 +410,11 @@ def start_honeynode(log_file: str, node_port: str, node_config_file_name: str):
             return subprocess.Popen(
                 [HONEYNODE_EXECUTABLE, node_port, os.path.join(SAMPLES_DIRECTORY, node_config_file_name)],
                 stdout=outfile, stderr=outfile)
+    return None
 
 
 def wait_until_log_contains(log_file, regexp, time_to_wait=20):
+    # pylint: disable=lost-exception
     stringfound = False
     filefound = False
     line = None
@@ -450,4 +460,5 @@ class TimeOut:
         signal.alarm(self.seconds)
 
     def __exit__(self, type, value, traceback):
+        # pylint: disable=W0622
         signal.alarm(0)
diff --git a/tox.ini b/tox.ini
index 5e6b31a236f4ccbfc7d0ec19e7a5018e010bfd7f..6df0e2fc10ca55b2c8d18ac2290388b7e44abece 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -37,7 +37,7 @@ commands =
   {py3,portmapping,topoPortMapping,flexgrid,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otntopology,olm221,tapi221,otnend2end,end2end221,gnpy}: - sh -c 'if [ "$USE_LIGHTY" = "True" ]; then (cd ../lighty && ./build.sh); fi'
 #run 1.2.1 functional tests
   {py3,portmapping}: nosetests --with-xunit transportpce_tests/1.2.1/test_portmapping.py
-  {py3,topoPortMapping}: nosetests --with-xunit transportpce_tests/1.2.1/test_topoPortMapping.py
+  {py3,topoPortMapping}: nosetests --with-xunit transportpce_tests/1.2.1/test_topo_portmapping.py
   {py3,topology}: nosetests --with-xunit transportpce_tests/1.2.1/test_topology.py
   {py3,rspn}: nosetests --with-xunit transportpce_tests/1.2.1/test_renderer_service_path_nominal.py
   {py3,pce}: nosetests --with-xunit transportpce_tests/1.2.1/test_pce.py
@@ -85,4 +85,4 @@ basepython = python3
 deps = pylint
 whitelist_externals = find
 commands =
-    find transportpce_tests/ -name *.py -exec pylint --max-line-length=120 --disable=missing-docstring  --reports=y --score=y  --output-format=colorized  \{\} +
+    find transportpce_tests/ -name *.py -exec pylint --max-line-length=120 --disable=missing-docstring --method-rgx="(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$" --variable-rgx="[a-zA-Z_][a-zA-Z0-9_]{1,30}$" --reports=y --score=y  --output-format=colorized  \{\} +