+ {"logical-connection-point": "XPDR2-NETWORK2",
+ "supporting-circuit-pack-name": "CP6-CFP",
+ "supported-interface-capability": ["org-openroadm-port-types:if-OCH-OTU4-ODU4"],
+ "supporting-port": "CP6-CFP-P1",
+ "lcp-hash-val": "exT821pFtOQ=",
+ "port-direction": "bidirectional",
+ "port-admin-state": "InService",
+ "xponder-type": "switch",
+ "port-qual": "switch-network",
+ "port-oper-state": "InService"},
+ response['mapping'])
+
+ def test_26_spdr_portmapping_XPDR3_CLIENT3(self):
+ response = test_utils_rfc8040.get_portmapping_node_attr("SPDR-SA1", "mapping", "XPDR3-CLIENT3")
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertIn(
+ {"logical-connection-point": "XPDR3-CLIENT3",
+ "supporting-circuit-pack-name": "CP3-SFP3",
+ "supported-interface-capability": ["org-openroadm-port-types:if-1GE-ODU0"],
+ "supporting-port": "CP3-SFP3-P1",
+ "lcp-hash-val": "AKsQ/HRQdtdN",
+ "port-direction": "bidirectional",
+ "port-admin-state": "InService",
+ "xponder-type": "mpdr",
+ "port-qual": "xpdr-client",
+ "port-oper-state": "InService"},
+ response['mapping'])
+
+ def test_27_spdr_portmapping_XPDR3_NETWORK1(self):
+ response = test_utils_rfc8040.get_portmapping_node_attr("SPDR-SA1", "mapping", "XPDR3-NETWORK1")
+ self.assertEqual(response['status_code'], requests.codes.ok)
+ self.assertIn(
+ {"logical-connection-point": "XPDR3-NETWORK1",
+ "supporting-circuit-pack-name": "CP3-CFP0",
+ "supported-interface-capability": ["org-openroadm-port-types:if-OCH-OTU4-ODU4"],
+ "supporting-port": "CP3-CFP0-P1",
+ "lcp-hash-val": "ANnxoi7K8q30",
+ "port-direction": "bidirectional",
+ "port-admin-state": "InService",
+ "xponder-type": "mpdr",
+ "port-qual": "xpdr-network",
+ "port-oper-state": "InService"},
+ response['mapping'])
+
+ def test_28_spdr_device_disconnection(self):
+ response = test_utils_rfc8040.unmount_device("SPDR-SA1")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
+
+ def test_29_xpdr_device_disconnected(self):
+ response = test_utils_rfc8040.check_device_connection("SPDR-SA1")
+ self.assertEqual(response['status_code'], requests.codes.conflict)
+ self.assertIn(response['connection-status']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['connection-status']['error-tag'], 'data-missing')
+ self.assertEqual(response['connection-status']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
+
+ def test_30_xpdr_device_disconnection(self):
+ response = test_utils_rfc8040.unmount_device("XPDR-A1")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
+
+ def test_31_xpdr_device_disconnected(self):
+ response = test_utils_rfc8040.check_device_connection("XPDR-A1")
+ self.assertEqual(response['status_code'], requests.codes.conflict)
+ self.assertIn(response['connection-status']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['connection-status']['error-tag'], 'data-missing')
+ self.assertEqual(response['connection-status']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
+
+ def test_32_xpdr_device_not_connected(self):
+ response = test_utils_rfc8040.get_portmapping_node_attr("XPDR-A1", "node-info", None)
+ self.assertEqual(response['status_code'], requests.codes.conflict)
+ self.assertIn(response['node-info']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['node-info']['error-tag'], 'data-missing')
+ self.assertEqual(response['node-info']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
+
+ def test_33_rdm_device_disconnection(self):
+ response = test_utils_rfc8040.unmount_device("ROADM-A1")
+ self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
+
+ def test_34_rdm_device_disconnected(self):
+ response = test_utils_rfc8040.check_device_connection("ROADM-A1")
+ self.assertEqual(response['status_code'], requests.codes.conflict)
+ self.assertIn(response['connection-status']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['connection-status']['error-tag'], 'data-missing')
+ self.assertEqual(response['connection-status']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')
+
+ def test_35_rdm_device_not_connected(self):
+ response = test_utils_rfc8040.get_portmapping_node_attr("ROADM-A1", "node-info", None)
+ self.assertEqual(response['status_code'], requests.codes.conflict)
+ self.assertIn(response['node-info']['error-type'], ('protocol', 'application'))
+ self.assertEqual(response['node-info']['error-tag'], 'data-missing')
+ self.assertEqual(response['node-info']['error-message'],
+ 'Request could not be completed because the relevant data model content does not exist')