run autopep8 on functional tests suite
[transportpce.git] / tests / transportpce_tests / 2.2.1 / test_otn_renderer.py
index 476f146b69d5b845d795864f03275218b61c94fa..27f09cd006740c47ae6f109c9b3e2a45d65b47d7 100644 (file)
@@ -22,6 +22,10 @@ import logging
 import test_utils
 
 
+def extract_a_from_b(a, b):
+    return dict([(i, b[i]) for i in b.keys() if i in a.keys()])
+
+
 class TransportPCEtesting(unittest.TestCase):
 
     honeynode_process1 = None
@@ -100,8 +104,10 @@ class TransportPCEtesting(unittest.TestCase):
                 'org-openroadm-port-types:if-10GE'],
              'supporting-port': 'CP1-SFP4-P1',
              'supporting-circuit-pack-name': 'CP1-SFP4',
-             'logical-connection-point': 'XPDR1-CLIENT1', 'port-direction': 'bidirectional',
-             'port-qual': 'xpdr-client'},
+             'logical-connection-point': 'XPDR1-CLIENT1',
+             'port-direction': 'bidirectional',
+             'port-qual': 'xpdr-client',
+             'lcp-hash-val': '8b3efff522736722500b5e68fb6e696e'},
             res['mapping'])
 
     def test_03_get_portmapping_NETWORK1(self):
@@ -122,10 +128,11 @@ class TransportPCEtesting(unittest.TestCase):
                 "port-direction": "bidirectional",
                 "port-qual": "xpdr-network",
                 "supporting-circuit-pack-name": "CP1-CFP0",
-                "xponder-type": "mpdr"},
+                "xponder-type": "mpdr",
+             'lcp-hash-val': '1021db8d2affe7386705c438c67ea21f'},
             res['mapping'])
 
-    def test_04_service_path_create_ODU4(self):
+    def test_04_service_path_create_OCH_OTU4(self):
         url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl)
         data = {"renderer:input": {
             "service-name": "service_ODU4",
@@ -147,7 +154,6 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertIn(
             {'node-id': 'SPDR-SA1',
              'otu-interface-id': ['XPDR1-NETWORK1-OTU'],
-             'odu-interface-id': ['XPDR1-NETWORK1-ODU4'],
              'och-interface-id': ['XPDR1-NETWORK1-1']}, res["output"]['node-interface'])
 
     def test_05_get_portmapping_NETWORK1(self):
@@ -169,7 +175,7 @@ class TransportPCEtesting(unittest.TestCase):
                 "port-qual": "xpdr-network",
                 "supporting-circuit-pack-name": "CP1-CFP0",
                 "xponder-type": "mpdr",
-                "supporting-odu4": "XPDR1-NETWORK1-ODU4"},
+                "lcp-hash-val": "1021db8d2affe7386705c438c67ea21f"},
             res['mapping'])
 
     def test_06_check_interface_och(self):
@@ -182,10 +188,24 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
+
+        input_dict = {'name': 'XPDR1-NETWORK1-1',
+                      'administrative-state': 'inService',
+                      'supporting-circuit-pack-name': 'CP1-CFP0',
+                      'type': 'org-openroadm-interfaces:opticalChannel',
+                      'supporting-port': 'CP1-CFP0-P1'
+                      }
+        # assertDictContainsSubset is deprecated
+        '''
         self.assertDictContainsSubset({'name': 'XPDR1-NETWORK1-1', 'administrative-state': 'inService',
                                        'supporting-circuit-pack-name': 'CP1-CFP0',
                                        'type': 'org-openroadm-interfaces:opticalChannel',
                                        'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0])
+        '''
+        self.assertDictEqual(input_dict,
+                             extract_a_from_b(input_dict,
+                                              res['interface'][0])
+                             )
         self.assertDictEqual(
             {u'frequency': 196.1, u'rate': u'org-openroadm-common-types:R100G',
              u'transmit-power': -5},
@@ -201,16 +221,77 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
+        input_dict = {'name': 'XPDR1-NETWORK1-OTU',
+                      'administrative-state': 'inService',
+                      'supporting-circuit-pack-name': 'CP1-CFP0',
+                      'supporting-interface': 'XPDR1-NETWORK1-1',
+                      'type': 'org-openroadm-interfaces:otnOtu',
+                      'supporting-port': 'CP1-CFP0-P1'}
+
+        # assertDictContainsSubset is deprecated
+        '''
         self.assertDictContainsSubset({'name': 'XPDR1-NETWORK1-OTU', 'administrative-state': 'inService',
                                        'supporting-circuit-pack-name': 'CP1-CFP0', 'supporting-interface': 'XPDR1-NETWORK1-1',
                                        'type': 'org-openroadm-interfaces:otnOtu',
                                        'supporting-port': 'CP1-CFP0-P1'}, res['interface'][0])
+        '''
+        self.assertDictEqual(input_dict, extract_a_from_b(input_dict,
+                                                          res['interface'][0])
+                             )
+
         self.assertDictEqual(
             {u'rate': u'org-openroadm-otn-common-types:OTU4',
              u'fec': u'scfec'},
             res['interface'][0]['org-openroadm-otn-otu-interfaces:otu'])
 
-    def test_08_check_interface_ODU4(self):
+    def test_08_otn_service_path_create_ODU4(self):
+        url = "{}/operations/transportpce-device-renderer:otn-service-path".format(self.restconf_baseurl)
+        data = {"renderer:input": {
+            "service-name": "service_ODU4",
+            "operation": "create",
+            "service-rate": "100G",
+            "service-type": "ODU",
+            "nodes": [
+                {"node-id": "SPDR-SA1",
+                 "network-tp": "XPDR1-NETWORK1"}]}}
+        headers = {'content-type': 'application/json'}
+        response = requests.request(
+            "POST", url, data=json.dumps(data),
+            headers=headers, auth=('admin', 'admin'))
+        time.sleep(3)
+        self.assertEqual(response.status_code, requests.codes.ok)
+        res = response.json()
+        self.assertIn('Otn Service path was set up successfully for node :SPDR-SA1', res["output"]["result"])
+        self.assertTrue(res["output"]["success"])
+        self.assertIn(
+            {'node-id': 'SPDR-SA1',
+             'odu-interface-id': ['XPDR1-NETWORK1-ODU4']}, res["output"]['node-interface'])
+
+    def test_09_get_portmapping_NETWORK1(self):
+        url = ("{}/config/transportpce-portmapping:network/"
+               "nodes/SPDR-SA1/mapping/XPDR1-NETWORK1"
+               .format(self.restconf_baseurl))
+        headers = {'content-type': 'application/json'}
+        response = requests.request(
+            "GET", url, headers=headers, auth=('admin', 'admin'))
+        self.assertEqual(response.status_code, requests.codes.ok)
+        res = response.json()
+        self.assertIn(
+            {"logical-connection-point": "XPDR1-NETWORK1",
+             "supporting-port": "CP1-CFP0-P1",
+             "supported-interface-capability": [
+                 "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+             ],
+                "port-direction": "bidirectional",
+                "port-qual": "xpdr-network",
+                "supporting-circuit-pack-name": "CP1-CFP0",
+                "xponder-type": "mpdr",
+                "supporting-odu4": "XPDR1-NETWORK1-ODU4",
+                "lcp-hash-val": "1021db8d2affe7386705c438c67ea21f"
+             },
+            res['mapping'])
+
+    def test_10_check_interface_ODU4(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-NETWORK1-ODU4"
@@ -220,6 +301,23 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
+        input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU4', 'administrative-state': 'inService',
+                        'supporting-circuit-pack-name': 'CP1-CFP0', 'supporting-interface': 'XPDR1-NETWORK1-OTU',
+                        'type': 'org-openroadm-interfaces:otnOdu',
+                        'supporting-port': 'CP1-CFP0-P1'}
+        input_dict_2 = {'odu-function': 'org-openroadm-otn-common-types:ODU-TTP',
+                        'rate': 'org-openroadm-otn-common-types:ODU4'}
+
+        self.assertDictEqual(input_dict_1, extract_a_from_b(input_dict_1,
+                                                            res['interface'][0])
+                             )
+        self.assertDictEqual(input_dict_2,
+                             extract_a_from_b(input_dict_2,
+                                              res['interface'][0][
+                                                  'org-openroadm-otn-odu-interfaces:odu'])
+
+                             )
+        '''
         self.assertDictContainsSubset({'name': 'XPDR1-NETWORK1-ODU4', 'administrative-state': 'inService',
                                        'supporting-circuit-pack-name': 'CP1-CFP0', 'supporting-interface': 'XPDR1-NETWORK1-OTU',
                                        'type': 'org-openroadm-interfaces:otnOdu',
@@ -228,11 +326,12 @@ class TransportPCEtesting(unittest.TestCase):
             {'odu-function': 'org-openroadm-otn-common-types:ODU-TTP',
              'rate': 'org-openroadm-otn-common-types:ODU4'},
             res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
+        '''
         self.assertDictEqual(
             {u'payload-type': u'21', u'exp-payload-type': u'21'},
             res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
 
-    def test_09_otn_service_path_create_10GE(self):
+    def test_11_otn_service_path_create_10GE(self):
         url = "{}/operations/transportpce-device-renderer:otn-service-path".format(self.restconf_baseurl)
         data = {"renderer:input": {
             "service-name": "service1",
@@ -242,7 +341,6 @@ class TransportPCEtesting(unittest.TestCase):
             "ethernet-encoding": "eth encode",
             "trib-slot": ["1"],
             "trib-port-number": "1",
-            "opucn-trib-slots": ["1"],
             "nodes": [
                 {"node-id": "SPDR-SA1",
                  "client-tp": "XPDR1-CLIENT1",
@@ -251,12 +349,18 @@ class TransportPCEtesting(unittest.TestCase):
         response = requests.request(
             "POST", url, data=json.dumps(data),
             headers=headers, auth=('admin', 'admin'))
+        time.sleep(3)
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
-        self.assertIn('Otn Service path was set up successfully for node :service1-SPDR-SA1', res["output"]["result"])
+        self.assertIn('Otn Service path was set up successfully for node :SPDR-SA1', res["output"]["result"])
         self.assertTrue(res["output"]["success"])
+        self.assertIn(
+            {'node-id': 'SPDR-SA1',
+             'connection-id': ['XPDR1-CLIENT1-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1'],
+             'odu-interface-id': ['XPDR1-NETWORK1-ODU2e-service1', 'XPDR1-CLIENT1-ODU2e-service1'],
+             'eth-interface-id': ['XPDR1-CLIENT1-ETHERNET10G']}, res["output"]['node-interface'])
 
-    def test_10_check_interface_10GE_CLIENT(self):
+    def test_12_check_interface_10GE_CLIENT(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-CLIENT1-ETHERNET10G"
@@ -266,15 +370,27 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
+        input_dict = {'name': 'XPDR1-CLIENT1-ETHERNET10G',
+                      'administrative-state': 'inService',
+                      'supporting-circuit-pack-name': 'CP1-SFP4',
+                      'type': 'org-openroadm-interfaces:ethernetCsmacd',
+                      'supporting-port': 'CP1-SFP4-P1'
+                      }
+
+        '''
         self.assertDictContainsSubset({'name': 'XPDR1-CLIENT1-ETHERNET10G', 'administrative-state': 'inService',
                                        'supporting-circuit-pack-name': 'CP1-SFP4',
                                        'type': 'org-openroadm-interfaces:ethernetCsmacd',
                                        'supporting-port': 'CP1-SFP4-P1'}, res['interface'][0])
+        '''
+        self.assertDictEqual(input_dict, extract_a_from_b(input_dict,
+                                                          res['interface'][0])
+                             )
         self.assertDictEqual(
             {u'speed': 10000},
             res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet'])
 
-    def test_11_check_interface_ODU2E_CLIENT(self):
+    def test_13_check_interface_ODU2E_CLIENT(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-CLIENT1-ODU2e-service1"
@@ -284,6 +400,27 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
+
+        input_dict_1 = {'name': 'XPDR1-CLIENT1-ODU2e-service1',
+                        'administrative-state': 'inService',
+                        'supporting-circuit-pack-name': 'CP1-SFP4',
+                        'supporting-interface': 'XPDR1-CLIENT1-ETHERNET10G',
+                        'type': 'org-openroadm-interfaces:otnOdu',
+                        'supporting-port': 'CP1-SFP4-P1'}
+        input_dict_2 = {
+            'odu-function': 'org-openroadm-otn-common-types:ODU-TTP-CTP',
+            'rate': 'org-openroadm-otn-common-types:ODU2e',
+            'monitoring-mode': 'terminated'}
+
+        self.assertDictEqual(input_dict_1, extract_a_from_b(input_dict_1,
+                                                            res['interface'][0])
+                             )
+        self.assertDictEqual(input_dict_2,
+                             extract_a_from_b(input_dict_2, res['interface'][0][
+                                 'org-openroadm-otn-odu-interfaces:odu'])
+                             )
+
+        '''
         self.assertDictContainsSubset({'name': 'XPDR1-CLIENT1-ODU2e-service1', 'administrative-state': 'inService',
                                        'supporting-circuit-pack-name': 'CP1-SFP4',
                                        'supporting-interface': 'XPDR1-CLIENT1-ETHERNET10G',
@@ -293,11 +430,12 @@ class TransportPCEtesting(unittest.TestCase):
             'odu-function': 'org-openroadm-otn-common-types:ODU-TTP-CTP',
             'rate': 'org-openroadm-otn-common-types:ODU2e',
             'monitoring-mode': 'terminated'}, res['interface'][0]['org-openroadm-otn-odu-interfaces:odu'])
+        '''
         self.assertDictEqual(
             {u'payload-type': u'03', u'exp-payload-type': u'03'},
             res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
 
-    def test_12_check_interface_ODU2E_NETWORK(self):
+    def test_14_check_interface_ODU2E_NETWORK(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-NETWORK1-ODU2e-service1"
@@ -307,6 +445,35 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
+        input_dict_1 = {'name': 'XPDR1-NETWORK1-ODU2e-service1', 'administrative-state': 'inService',
+                        'supporting-circuit-pack-name': 'CP1-CFP0',
+                        'supporting-interface': 'XPDR1-NETWORK1-ODU4',
+                        'type': 'org-openroadm-interfaces:otnOdu',
+                        'supporting-port': 'CP1-CFP0-P1'}
+        input_dict_2 = {
+            'odu-function': 'org-openroadm-otn-common-types:ODU-CTP',
+            'rate': 'org-openroadm-otn-common-types:ODU2e',
+            'monitoring-mode': 'monitored'}
+
+        input_dict_3 = {'trib-port-number': 1}
+
+        self.assertDictEqual(input_dict_1, extract_a_from_b(input_dict_1,
+                                                            res['interface'][0])
+                             )
+
+        self.assertDictEqual(input_dict_2,
+                             extract_a_from_b(input_dict_2,
+                                              res['interface'][0][
+                                                  'org-openroadm-otn-odu-interfaces:odu']
+                                              ))
+
+        self.assertDictEqual(input_dict_3,
+                             extract_a_from_b(input_dict_3,
+                                              res['interface'][0][
+                                                  'org-openroadm-otn-odu-interfaces:odu'][
+                                                  'parent-odu-allocation']))
+
+        '''
         self.assertDictContainsSubset({'name': 'XPDR1-NETWORK1-ODU2e-service1', 'administrative-state': 'inService',
                                        'supporting-circuit-pack-name': 'CP1-CFP0',
                                        'supporting-interface': 'XPDR1-NETWORK1-ODU4',
@@ -319,10 +486,13 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertDictContainsSubset(
             {'trib-port-number': 1},
             res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['parent-odu-allocation'])
+        '''
         self.assertIn(1,
-                      res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['parent-odu-allocation']['trib-slots'])
+                      res['interface'][0][
+                          'org-openroadm-otn-odu-interfaces:odu'][
+                          'parent-odu-allocation']['trib-slots'])
 
-    def test_13_check_ODU2E_connection(self):
+    def test_15_check_ODU2E_connection(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "odu-connection/XPDR1-CLIENT1-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1"
@@ -332,16 +502,27 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
+        input_dict_1 = {
+            'connection-name':
+            'XPDR1-CLIENT1-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1',
+            'direction': 'bidirectional'
+        }
+
+        self.assertDictEqual(input_dict_1,
+                             extract_a_from_b(input_dict_1,
+                                              res['odu-connection'][0]))
+        '''
         self.assertDictContainsSubset({
             'connection-name': 'XPDR1-CLIENT1-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1',
             'direction': 'bidirectional'},
             res['odu-connection'][0])
+        '''
         self.assertDictEqual({u'dst-if': u'XPDR1-NETWORK1-ODU2e-service1'},
                              res['odu-connection'][0]['destination'])
         self.assertDictEqual({u'src-if': u'XPDR1-CLIENT1-ODU2e-service1'},
                              res['odu-connection'][0]['source'])
 
-    def test_14_otn_service_path_delete_10GE(self):
+    def test_16_otn_service_path_delete_10GE(self):
         url = "{}/operations/transportpce-device-renderer:otn-service-path".format(self.restconf_baseurl)
         data = {"renderer:input": {
             "service-name": "service1",
@@ -351,7 +532,6 @@ class TransportPCEtesting(unittest.TestCase):
             "ethernet-encoding": "eth encode",
             "trib-slot": ["1"],
             "trib-port-number": "1",
-            "opucn-trib-slots": ["1"],
             "nodes": [
                 {"node-id": "SPDR-SA1",
                  "client-tp": "XPDR1-CLIENT1",
@@ -360,12 +540,13 @@ class TransportPCEtesting(unittest.TestCase):
         response = requests.request(
             "POST", url, data=json.dumps(data),
             headers=headers, auth=('admin', 'admin'))
+        time.sleep(3)
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn('Request processed', res["output"]["result"])
         self.assertTrue(res["output"]["success"])
 
-    def test_15_check_no_ODU2E_connection(self):
+    def test_17_check_no_ODU2E_connection(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "odu-connection/XPDR1-CLIENT1-ODU2e-service1-x-XPDR1-NETWORK1-ODU2e-service1"
@@ -375,7 +556,7 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.not_found)
 
-    def test_16_check_no_interface_ODU2E_NETWORK(self):
+    def test_18_check_no_interface_ODU2E_NETWORK(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-NETWORK1-ODU2e-service1"
@@ -385,7 +566,7 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.not_found)
 
-    def test_17_check_no_interface_ODU2E_CLIENT(self):
+    def test_19_check_no_interface_ODU2E_CLIENT(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-CLIENT1-ODU2e-service1"
@@ -395,7 +576,7 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.not_found)
 
-    def test_18_check_no_interface_10GE_CLIENT(self):
+    def test_20_check_no_interface_10GE_CLIENT(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-CLIENT1-ETHERNET10G"
@@ -405,16 +586,16 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.not_found)
 
-    def test_19_service_path_delete_ODU4(self):
-        url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl)
+    def test_21_otn_service_path_delete_ODU4(self):
+        url = "{}/operations/transportpce-device-renderer:otn-service-path".format(self.restconf_baseurl)
         data = {"renderer:input": {
             "service-name": "service_ODU4",
-            "wave-number": "1",
-            "modulation-format": "qpsk",
             "operation": "delete",
+            "service-rate": "100G",
+            "service-type": "ODU",
             "nodes": [
                 {"node-id": "SPDR-SA1",
-                 "dest-tp": "XPDR1-NETWORK1"}]}}
+                 "network-tp": "XPDR1-NETWORK1"}]}}
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "POST", url, data=json.dumps(data),
@@ -425,7 +606,7 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertIn('Request processed', res["output"]["result"])
         self.assertTrue(res["output"]["success"])
 
-    def test_20_check_no_interface_ODU4(self):
+    def test_22_check_no_interface_ODU4(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-NETWORK1-ODU4"
@@ -435,7 +616,27 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.not_found)
 
-    def test_21_check_no_interface_OTU(self):
+    def test_23_service_path_delete_OCH_OTU4(self):
+        url = "{}/operations/transportpce-device-renderer:service-path".format(self.restconf_baseurl)
+        data = {"renderer:input": {
+            "service-name": "service_OTU4",
+            "wave-number": "1",
+            "modulation-format": "qpsk",
+            "operation": "delete",
+            "nodes": [
+                {"node-id": "SPDR-SA1",
+                 "dest-tp": "XPDR1-NETWORK1"}]}}
+        headers = {'content-type': 'application/json'}
+        response = requests.request(
+            "POST", url, data=json.dumps(data),
+            headers=headers, auth=('admin', 'admin'))
+        time.sleep(3)
+        self.assertEqual(response.status_code, requests.codes.ok)
+        res = response.json()
+        self.assertIn('Request processed', res["output"]["result"])
+        self.assertTrue(res["output"]["success"])
+
+    def test_24_check_no_interface_OTU4(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-NETWORK1-OTU"
@@ -445,7 +646,7 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.not_found)
 
-    def test_22_check_no_interface_och(self):
+    def test_25_check_no_interface_OCH(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/SPDR-SA1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
                "interface/XPDR1-NETWORK1-1"
@@ -455,7 +656,7 @@ class TransportPCEtesting(unittest.TestCase):
             "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.not_found)
 
-    def test_23_disconnect_SPDR_SA1(self):
+    def test_26_disconnect_SPDR_SA1(self):
         url = ("{}/config/network-topology:"
                "network-topology/topology/topology-netconf/node/SPDR-SA1"
                .format(self.restconf_baseurl))