3 ##############################################################################
4 # Copyright (c) 2017 Orange, Inc. and others. All rights reserved.
6 # All rights reserved. This program and the accompanying materials
7 # are made available under the terms of the Apache License, Version 2.0
8 # which accompanies this distribution, and is available at
9 # http://www.apache.org/licenses/LICENSE-2.0
10 ##############################################################################
12 # pylint: disable=no-member
13 # pylint: disable=too-many-public-methods
14 # pylint: disable=too-many-lines
19 from common import test_utils
22 class TransportPCETopologyTesting(unittest.TestCase):
28 'checks_tp': [({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}),
29 ({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'})]
33 'checks_tp': [({'tp-id': 'SRG3-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}),
34 ({'tp-id': 'SRG3-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'})]
37 'node_type': 'DEGREE',
38 'checks_tp': [({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
39 ({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
42 'node_type': 'DEGREE',
43 'checks_tp': [({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
44 ({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
50 'checks_tp': [({'tp-id': 'SRG1-CP-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-CP'}),
51 ({'tp-id': 'SRG1-PP1-TXRX', 'org-openroadm-common-network:tp-type': 'SRG-TXRX-PP'})]
54 'node_type': 'DEGREE',
55 'checks_tp': [({'tp-id': 'DEG1-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
56 ({'tp-id': 'DEG1-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
59 'node_type': 'DEGREE',
60 'checks_tp': [({'tp-id': 'DEG2-TTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-TTP'}),
61 ({'tp-id': 'DEG2-CTP-TXRX', 'org-openroadm-common-network:tp-type': 'DEGREE-TXRX-CTP'})]
67 cls.processes = test_utils.start_tpce()
68 cls.processes = test_utils.start_sims(['xpdra', 'roadma', 'roadmb', 'roadmc'])
71 def tearDownClass(cls):
72 # pylint: disable=not-an-iterable
73 for process in cls.processes:
74 test_utils.shutdown_process(process)
75 print("all processes killed")
80 def test_01_connect_ROADMA(self):
81 response = test_utils.mount_device("ROADMA01", 'roadma')
82 self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
84 def test_02_getClliNetwork(self):
85 response = test_utils.get_clli_net_request()
86 self.assertEqual(response.status_code, requests.codes.ok)
88 self.assertEqual(res['network'][0]['node'][0]['node-id'], 'NodeA')
89 self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
91 def test_03_getOpenRoadmNetwork(self):
92 response = test_utils.get_ordm_net_request()
93 self.assertEqual(response.status_code, requests.codes.ok)
95 self.assertEqual(res['network'][0]['node'][0]['node-id'], 'ROADMA01')
96 self.assertEqual(res['network'][0]['node'][0]['supporting-node'][0]['network-ref'], 'clli-network')
97 self.assertEqual(res['network'][0]['node'][0]['supporting-node'][0]['node-ref'], 'NodeA')
98 self.assertEqual(res['network'][0]['node'][0]['org-openroadm-common-network:node-type'], 'ROADM')
99 self.assertEqual(res['network'][0]['node'][0]['org-openroadm-network:model'], '2')
101 def test_04_getLinks_OpenroadmTopology(self):
102 # pylint: disable=redundant-unittest-assert
103 response = test_utils.get_ordm_topo_request("")
104 self.assertEqual(response.status_code, requests.codes.ok)
105 res = response.json()
106 # Tests related to links
107 nbLink = len(res['network'][0]['ietf-network-topology:link'])
108 self.assertEqual(nbLink, 10)
109 check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
110 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'],
111 'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
112 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
113 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
114 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'],
115 'DROP-LINK': ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
116 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
117 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
118 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX']
120 for i in range(0, nbLink):
121 linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
122 linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
123 if linkType in check_list:
124 find = linkId in check_list[linkType]
125 self.assertEqual(find, True)
126 (check_list[linkType]).remove(linkId)
128 self.assertFalse(True)
129 for link_type in check_list:
130 self.assertEqual(len(check_list[link_type]), 0)
132 def test_05_getNodes_OpenRoadmTopology(self):
133 # pylint: disable=redundant-unittest-assert
134 response = test_utils.get_ordm_topo_request("")
135 res = response.json()
136 # Tests related to nodes
137 self.assertEqual(response.status_code, requests.codes.ok)
138 nbNode = len(res['network'][0]['node'])
139 self.assertEqual(nbNode, 4)
140 listNode = ['ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2']
141 for i in range(0, nbNode):
142 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
143 res['network'][0]['node'][i]['supporting-node'])
144 nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
145 nodeId = res['network'][0]['node'][i]['node-id']
146 if nodeId in self.CHECK_DICT1:
147 self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
148 if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
149 self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
150 for item in self.CHECK_DICT1[nodeId]['checks_tp']:
151 self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
152 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
153 res['network'][0]['node'][i]['supporting-node'])
154 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
155 res['network'][0]['node'][i]['supporting-node'])
156 listNode.remove(nodeId)
158 self.assertFalse(True)
160 self.assertEqual(len(listNode), 0)
162 def test_06_connect_XPDRA(self):
163 response = test_utils.mount_device("XPDRA01", 'xpdra')
164 self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
166 def test_07_getClliNetwork(self):
167 response = test_utils.get_clli_net_request()
168 self.assertEqual(response.status_code, requests.codes.ok)
169 res = response.json()
170 self.assertEqual(res['network'][0]['node'][0]['node-id'], 'NodeA')
171 self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
173 def test_08_getOpenRoadmNetwork(self):
174 # pylint: disable=redundant-unittest-assert
175 response = test_utils.get_ordm_net_request()
176 self.assertEqual(response.status_code, requests.codes.ok)
177 res = response.json()
178 nbNode = len(res['network'][0]['node'])
179 self.assertEqual(nbNode, 2)
180 for i in range(0, nbNode):
181 self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network')
182 self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'], 'NodeA')
183 nodeId = res['network'][0]['node'][i]['node-id']
184 if nodeId == 'XPDRA01':
185 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'XPONDER')
186 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '1')
187 elif nodeId == 'ROADMA01':
188 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'], 'ROADM')
189 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'], '2')
191 self.assertFalse(True)
193 def test_09_getNodes_OpenRoadmTopology(self):
194 # pylint: disable=redundant-unittest-assert
195 response = test_utils.get_ordm_topo_request("")
196 res = response.json()
197 # Tests related to nodes
198 self.assertEqual(response.status_code, requests.codes.ok)
199 nbNode = len(res['network'][0]['node'])
200 self.assertEqual(nbNode, 5)
201 listNode = ['XPDRA01-XPDR1', 'ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2']
202 for i in range(0, nbNode):
203 nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
204 nodeId = res['network'][0]['node'][i]['node-id']
205 # Tests related to XPDRA nodes
206 if nodeId == 'XPDRA01-XPDR1':
207 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'},
208 res['network'][0]['node'][i]['supporting-node'])
209 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
210 res['network'][0]['node'][i]['supporting-node'])
211 self.assertEqual(nodeType, 'XPONDER')
212 nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
215 for j in range(0, nbTps):
216 tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j][
217 'org-openroadm-common-network:tp-type']
218 tpId = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
219 if tpType == 'XPONDER-CLIENT':
221 elif tpType == 'XPONDER-NETWORK':
223 if tpId == 'XPDR1-NETWORK2':
224 self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
225 [j]['transportpce-topology:associated-connection-map-port'], 'XPDR1-CLIENT3')
226 if tpId == 'XPDR1-CLIENT3':
227 self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point']
228 [j]['transportpce-topology:associated-connection-map-port'], 'XPDR1-NETWORK2')
229 self.assertTrue(client == 4)
230 self.assertTrue(network == 2)
231 listNode.remove(nodeId)
232 # Tests related to ROADMA nodes
233 elif nodeId in self.CHECK_DICT1:
234 self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
235 if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
236 self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
237 for item in self.CHECK_DICT1[nodeId]['checks_tp']:
238 self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
239 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
240 res['network'][0]['node'][i]['supporting-node'])
241 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
242 res['network'][0]['node'][i]['supporting-node'])
243 listNode.remove(nodeId)
245 self.assertFalse(True)
246 self.assertEqual(len(listNode), 0)
248 # Connect the tail XPDRA to ROADMA and vice versa
249 def test_10_connect_tail_xpdr_rdm(self):
250 # Connect the tail: XPDRA to ROADMA
251 response = test_utils.connect_xpdr_to_rdm_request("XPDRA01", "1", "1",
252 "ROADMA01", "1", "SRG1-PP1-TXRX")
253 self.assertEqual(response.status_code, requests.codes.ok)
255 def test_11_connect_tail_rdm_xpdr(self):
256 # Connect the tail: ROADMA to XPDRA
257 response = test_utils.connect_rdm_to_xpdr_request("XPDRA01", "1", "1",
258 "ROADMA01", "1", "SRG1-PP1-TXRX")
259 self.assertEqual(response.status_code, requests.codes.ok)
261 def test_12_getLinks_OpenRoadmTopology(self):
262 # pylint: disable=redundant-unittest-assert
263 response = test_utils.get_ordm_topo_request("")
264 self.assertEqual(response.status_code, requests.codes.ok)
265 res = response.json()
266 # Tests related to links
267 nbLink = len(res['network'][0]['ietf-network-topology:link'])
268 self.assertEqual(nbLink, 12)
269 check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
270 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'],
271 'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
272 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
273 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
274 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'],
275 'DROP-LINK': ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
276 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
277 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
278 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX'],
279 'XPONDER-INPUT': ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'],
280 'XPONDER-OUTPUT': ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX']
282 for i in range(0, nbLink):
283 linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
284 linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
285 if linkType in check_list:
286 find = linkId in check_list[linkType]
287 self.assertEqual(find, True)
288 (check_list[linkType]).remove(linkId)
290 self.assertFalse(True)
291 for link_type in check_list:
292 self.assertEqual(len(check_list[link_type]), 0)
294 def test_13_connect_ROADMC(self):
295 response = test_utils.mount_device("ROADMC01", 'roadmc')
296 self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
298 def test_14_omsAttributes_ROADMA_ROADMC(self):
299 # Config ROADMA01-ROADMC01 oms-attributes
301 "auto-spanloss": "true",
302 "engineered-spanloss": 12.2,
303 "link-concatenation": [{
306 "SRLG-length": 100000,
308 response = test_utils.add_oms_attr_request("ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX", data)
309 self.assertEqual(response.status_code, requests.codes.created)
311 def test_15_omsAttributes_ROADMC_ROADMA(self):
312 # Config ROADMC01-ROADMA oms-attributes
314 "auto-spanloss": "true",
315 "engineered-spanloss": 12.2,
316 "link-concatenation": [{
319 "SRLG-length": 100000,
321 response = test_utils.add_oms_attr_request("ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX", data)
322 self.assertEqual(response.status_code, requests.codes.created)
324 def test_16_getClliNetwork(self):
325 # pylint: disable=redundant-unittest-assert
326 response = test_utils.get_clli_net_request()
327 self.assertEqual(response.status_code, requests.codes.ok)
328 res = response.json()
329 nbNode = len(res['network'][0]['node'])
330 listNode = ['NodeA', 'NodeC']
331 for i in range(0, nbNode):
332 nodeId = res['network'][0]['node'][i]['node-id']
333 if nodeId in listNode:
334 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
335 listNode.remove(nodeId)
337 self.assertFalse(True)
338 self.assertEqual(len(listNode), 0)
340 def test_17_getOpenRoadmNetwork(self):
341 # pylint: disable=redundant-unittest-assert
342 response = test_utils.get_ordm_net_request()
343 self.assertEqual(response.status_code, requests.codes.ok)
344 res = response.json()
345 nbNode = len(res['network'][0]['node'])
346 self.assertEqual(nbNode, 3)
347 listNode = ['XPDRA01', 'ROADMA01', 'ROADMC01']
348 CHECK_LIST = {'XPDRA01': {'node-ref': 'NodeA', 'node-type': 'XPONDER', 'model': '1'},
349 'ROADMA01': {'node-ref': 'NodeA', 'node-type': 'ROADM', 'model': '2'},
350 'ROADMC01': {'node-ref': 'NodeC', 'node-type': 'ROADM', 'model': '2'}
352 for i in range(0, nbNode):
353 self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['network-ref'], 'clli-network')
354 nodeId = res['network'][0]['node'][i]['node-id']
355 if nodeId in CHECK_LIST:
356 self.assertEqual(res['network'][0]['node'][i]['supporting-node'][0]['node-ref'],
357 CHECK_LIST[nodeId]['node-ref'])
358 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
359 CHECK_LIST[nodeId]['node-type'])
360 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-network:model'],
361 CHECK_LIST[nodeId]['model'])
362 listNode.remove(nodeId)
364 self.assertFalse(True)
365 self.assertEqual(len(listNode), 0)
367 def test_18_getROADMLinkOpenRoadmTopology(self):
368 # pylint: disable=redundant-unittest-assert
369 response = test_utils.get_ordm_topo_request("")
370 self.assertEqual(response.status_code, requests.codes.ok)
371 res = response.json()
372 # Tests related to links
373 nbLink = len(res['network'][0]['ietf-network-topology:link'])
374 self.assertEqual(nbLink, 20)
375 check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
376 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
377 'ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX',
378 'ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX'],
379 'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
380 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
381 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
382 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
383 'ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG2-DEG2-CTP-TXRX',
384 'ROADMC01-SRG1-SRG1-CP-TXRXtoROADMC01-DEG1-DEG1-CTP-TXRX'],
385 'DROP-LINK': ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
386 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
387 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
388 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
389 'ROADMC01-DEG1-DEG1-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX',
390 'ROADMC01-DEG2-DEG2-CTP-TXRXtoROADMC01-SRG1-SRG1-CP-TXRX'],
391 'ROADM-TO-ROADM': ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX',
392 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX'],
393 'XPONDER-INPUT': ['ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1'],
394 'XPONDER-OUTPUT': ['XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX']
396 for i in range(0, nbLink):
397 linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
398 linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
399 if linkType in check_list:
400 find = linkId in check_list[linkType]
401 self.assertEqual(find, True)
402 (check_list[linkType]).remove(linkId)
404 self.assertFalse(True)
405 for link_type in check_list:
406 self.assertEqual(len(check_list[link_type]), 0)
408 def test_19_getLinkOmsAttributesOpenRoadmTopology(self):
409 response = test_utils.get_ordm_topo_request("")
410 self.assertEqual(response.status_code, requests.codes.ok)
411 res = response.json()
412 # Tests related to links
413 nbLink = len(res['network'][0]['ietf-network-topology:link'])
414 self.assertEqual(nbLink, 20)
415 R2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX',
416 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX']
417 for i in range(0, nbLink):
418 link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
419 if link_id in R2RLink:
421 spanLoss = (res['network'][0]['ietf-network-topology:link'][i]
422 ['org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"])
423 length = (res['network'][0]['ietf-network-topology:link'][i]
424 ['org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]
426 if (spanLoss is not None) & (length is not None):
428 self.assertTrue(find)
429 R2RLink.remove(link_id)
430 self.assertEqual(len(R2RLink), 0)
432 def test_20_getNodes_OpenRoadmTopology(self):
433 # pylint: disable=redundant-unittest-assert
434 response = test_utils.get_ordm_topo_request("")
435 res = response.json()
436 # Tests related to nodes
437 self.assertEqual(response.status_code, requests.codes.ok)
438 nbNode = len(res['network'][0]['node'])
439 self.assertEqual(nbNode, 8)
440 listNode = ['XPDRA01-XPDR1',
441 'ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2',
442 'ROADMC01-SRG1', 'ROADMC01-DEG1', 'ROADMC01-DEG2']
443 for i in range(0, nbNode):
444 nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
445 nodeId = res['network'][0]['node'][i]['node-id']
446 # Tests related to XPDRA nodes
447 if nodeId == 'XPDRA01-XPDR1':
448 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'},
449 res['network'][0]['node'][i]['supporting-node'])
450 self.assertEqual(nodeType, 'XPONDER')
451 nbTps = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
452 self.assertTrue(nbTps == 6)
455 for j in range(0, nbTps):
456 tpType = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j][
457 'org-openroadm-common-network:tp-type']
458 if tpType == 'XPONDER-CLIENT':
460 elif tpType == 'XPONDER-NETWORK':
462 self.assertTrue(client == 4)
463 self.assertTrue(network == 2)
464 listNode.remove(nodeId)
465 # Tests related to ROADMA nodes
466 elif nodeId in self.CHECK_DICT1:
467 self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
468 if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
469 self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
470 for item in self.CHECK_DICT1[nodeId]['checks_tp']:
471 self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
472 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
473 res['network'][0]['node'][i]['supporting-node'])
474 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
475 res['network'][0]['node'][i]['supporting-node'])
476 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
477 self.CHECK_DICT1[nodeId]['node_type'])
478 listNode.remove(nodeId)
479 # Tests related to ROADMC nodes
480 elif nodeId in self.CHECK_DICT2:
481 self.assertEqual(nodeType, self.CHECK_DICT2[nodeId]['node_type'])
482 if self.CHECK_DICT2[nodeId]['node_type'] == 'SRG':
483 self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
484 for item in self.CHECK_DICT2[nodeId]['checks_tp']:
485 self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
486 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeC'},
487 res['network'][0]['node'][i]['supporting-node'])
488 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMC01'},
489 res['network'][0]['node'][i]['supporting-node'])
490 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-common-network:node-type'],
491 self.CHECK_DICT2[nodeId]['node_type'])
492 listNode.remove(nodeId)
494 self.assertFalse(True)
495 self.assertEqual(len(listNode), 0)
497 def test_21_connect_ROADMB(self):
498 response = test_utils.mount_device("ROADMB01", 'roadmb')
499 self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201)
501 def test_22_omsAttributes_ROADMA_ROADMB(self):
502 # Config ROADMA01-ROADMB01 oms-attributes
504 "auto-spanloss": "true",
505 "engineered-spanloss": 12.2,
506 "link-concatenation": [{
509 "SRLG-length": 100000,
511 response = test_utils.add_oms_attr_request("ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX", data)
512 self.assertEqual(response.status_code, requests.codes.created)
514 def test_23_omsAttributes_ROADMB_ROADMA(self):
515 # Config ROADMB01-ROADMA01 oms-attributes
517 "auto-spanloss": "true",
518 "engineered-spanloss": 12.2,
519 "link-concatenation": [{
522 "SRLG-length": 100000,
524 response = test_utils.add_oms_attr_request("ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX", data)
525 self.assertEqual(response.status_code, requests.codes.created)
527 def test_24_omsAttributes_ROADMB_ROADMC(self):
528 # Config ROADMB01-ROADMC01 oms-attributes
530 "auto-spanloss": "true",
531 "engineered-spanloss": 12.2,
532 "link-concatenation": [{
535 "SRLG-length": 100000,
537 response = test_utils.add_oms_attr_request("ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX", data)
538 self.assertEqual(response.status_code, requests.codes.created)
540 def test_25_omsAttributes_ROADMC_ROADMB(self):
541 # Config ROADMC01-ROADMB01 oms-attributes
543 "auto-spanloss": "true",
544 "engineered-spanloss": 12.2,
545 "link-concatenation": [{
548 "SRLG-length": 100000,
550 response = test_utils.add_oms_attr_request("ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX", data)
551 self.assertEqual(response.status_code, requests.codes.created)
553 def test_26_getClliNetwork(self):
554 # pylint: disable=redundant-unittest-assert
555 response = test_utils.get_clli_net_request()
556 self.assertEqual(response.status_code, requests.codes.ok)
557 res = response.json()
558 nbNode = len(res['network'][0]['node'])
559 listNode = ['NodeA', 'NodeB', 'NodeC']
560 for i in range(0, nbNode):
561 nodeId = res['network'][0]['node'][i]['node-id']
562 if nodeId in listNode:
563 self.assertEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], nodeId)
564 listNode.remove(nodeId)
566 self.assertFalse(True)
567 self.assertEqual(len(listNode), 0)
569 def test_27_verifyDegree(self):
570 response = test_utils.get_ordm_topo_request("")
571 self.assertEqual(response.status_code, requests.codes.ok)
572 res = response.json()
573 # Tests related to links
574 nbLink = len(res['network'][0]['ietf-network-topology:link'])
575 listR2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX',
576 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX',
577 'ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX',
578 'ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX',
579 'ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX',
580 'ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX']
581 for i in range(0, nbLink):
582 if (res['network'][0]['ietf-network-topology:link'][i]
583 ['org-openroadm-common-network:link-type'] == 'ROADM-TO-ROADM'):
584 link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
585 find = link_id in listR2RLink
586 self.assertEqual(find, True)
587 listR2RLink.remove(link_id)
588 self.assertEqual(len(listR2RLink), 0)
590 def test_28_verifyOppositeLinkTopology(self):
591 response = test_utils.get_ordm_topo_request("")
592 self.assertEqual(response.status_code, requests.codes.ok)
593 res = response.json()
594 # Tests related to links
595 nbLink = len(res['network'][0]['ietf-network-topology:link'])
596 self.assertEqual(nbLink, 34)
597 for i in range(0, nbLink):
598 link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
599 link_type = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
600 link_src = res['network'][0]['ietf-network-topology:link'][i]['source']['source-node']
601 link_dest = res['network'][0]['ietf-network-topology:link'][i]['destination']['dest-node']
602 oppLink_id = (res['network'][0]['ietf-network-topology:link'][i]
603 ['org-openroadm-common-network:opposite-link'])
604 # Find the opposite link
605 response_oppLink = test_utils.get_ordm_topo_request("ietf-network-topology:link/"+oppLink_id)
606 self.assertEqual(response_oppLink.status_code, requests.codes.ok)
607 res_oppLink = response_oppLink.json()
608 self.assertEqual(res_oppLink['ietf-network-topology:link'][0]
609 ['org-openroadm-common-network:opposite-link'], link_id)
610 self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['source']['source-node'], link_dest)
611 self.assertEqual(res_oppLink['ietf-network-topology:link'][0]['destination']['dest-node'], link_src)
612 oppLink_type = res_oppLink['ietf-network-topology:link'][0]['org-openroadm-common-network:link-type']
613 CHECK_DICT = {'ADD-LINK': 'DROP-LINK', 'DROP-LINK': 'ADD-LINK',
614 'EXPRESS-LINK': 'EXPRESS-LINK', 'ROADM-TO-ROADM': 'ROADM-TO-ROADM',
615 'XPONDER-INPUT': 'XPONDER-OUTPUT', 'XPONDER-OUTUT': 'XPONDER-INPUT'}
616 if link_type in CHECK_DICT:
617 self.assertEqual(oppLink_type, CHECK_DICT[link_type])
619 def test_29_getLinkOmsAttributesOpenRoadmTopology(self):
620 response = test_utils.get_ordm_topo_request("")
621 self.assertEqual(response.status_code, requests.codes.ok)
622 res = response.json()
623 nbLink = len(res['network'][0]['ietf-network-topology:link'])
624 R2RLink = ['ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX',
625 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX',
626 'ROADMA01-DEG2-DEG2-TTP-TXRXtoROADMB01-DEG1-DEG1-TTP-TXRX',
627 'ROADMC01-DEG1-DEG1-TTP-TXRXtoROADMB01-DEG2-DEG2-TTP-TXRX',
628 'ROADMB01-DEG1-DEG1-TTP-TXRXtoROADMA01-DEG2-DEG2-TTP-TXRX',
629 'ROADMB01-DEG2-DEG2-TTP-TXRXtoROADMC01-DEG1-DEG1-TTP-TXRX']
630 for i in range(0, nbLink):
631 link_id = res['network'][0]['ietf-network-topology:link'][i]['link-id']
632 if link_id in R2RLink:
634 spanLoss = res['network'][0]['ietf-network-topology:link'][i][
635 'org-openroadm-network-topology:OMS-attributes']['span']["engineered-spanloss"]
636 length = res['network'][0]['ietf-network-topology:link'][i][
637 'org-openroadm-network-topology:OMS-attributes']['span']['link-concatenation'][0]['SRLG-length']
638 if (spanLoss is not None) & (length is not None):
640 self.assertTrue(find)
641 R2RLink.remove(link_id)
642 self.assertEqual(len(R2RLink), 0)
644 def test_30_disconnect_ROADMB(self):
645 # Delete in the topology-netconf
646 response = test_utils.unmount_device("ROADMB01")
647 self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
648 # Delete in the clli-network
649 response = test_utils.del_node_request("NodeB")
650 self.assertEqual(response.status_code, requests.codes.ok)
652 def test_31_disconnect_ROADMC(self):
653 response = test_utils.unmount_device("ROADMC01")
654 self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
655 # Delete in the clli-network
656 response = test_utils.del_node_request("NodeC")
657 self.assertEqual(response.status_code, requests.codes.ok)
659 def test_32_getNodes_OpenRoadmTopology(self):
660 # pylint: disable=redundant-unittest-assert
661 response = test_utils.get_ordm_topo_request("")
662 res = response.json()
663 # Tests related to nodes
664 self.assertEqual(response.status_code, requests.codes.ok)
665 nbNode = len(res['network'][0]['node'])
666 self.assertEqual(nbNode, 5)
667 listNode = ['XPDRA01-XPDR1', 'ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2']
668 for i in range(0, nbNode):
669 nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
670 nodeId = res['network'][0]['node'][i]['node-id']
671 # Tests related to XPDRA nodes
672 if nodeId == 'XPDRA01-XPDR1':
673 nbTp = len(res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
674 for j in range(0, nbTp):
675 tpid = res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]['tp-id']
676 if tpid == 'XPDR1-CLIENT1':
677 self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
678 ['org-openroadm-common-network:tp-type'], 'XPONDER-CLIENT')
679 if tpid == 'XPDR1-NETWORK1':
680 self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
681 ['org-openroadm-common-network:tp-type'], 'XPONDER-NETWORK')
682 self.assertEqual(res['network'][0]['node'][i]['ietf-network-topology:termination-point'][j]
683 ['org-openroadm-network-topology:xpdr-network-attributes']
684 ['tail-equipment-id'],
685 'ROADMA01-SRG1--SRG1-PP1-TXRX')
686 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'XPDRA01'},
687 res['network'][0]['node'][i]['supporting-node'])
688 listNode.remove(nodeId)
689 # Tests related to ROADMA nodes
690 elif nodeId in self.CHECK_DICT1:
691 self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
692 if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
693 self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
694 for item in self.CHECK_DICT1[nodeId]['checks_tp']:
695 self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
696 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
697 res['network'][0]['node'][i]['supporting-node'])
698 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
699 res['network'][0]['node'][i]['supporting-node'])
700 listNode.remove(nodeId)
702 self.assertFalse(True)
703 self.assertEqual(len(listNode), 0)
704 # Test related to SRG1 of ROADMC
705 for i in range(0, nbNode):
706 self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMC01-SRG1')
707 self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMC01-DEG1')
708 self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMC01-DEG2')
710 def test_33_getOpenRoadmNetwork(self):
711 response = test_utils.get_ordm_net_request()
712 self.assertEqual(response.status_code, requests.codes.ok)
713 res = response.json()
714 nbNode = len(res['network'][0]['node'])
715 self.assertEqual(nbNode, 2)
716 for i in range(0, nbNode-1):
717 self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMC01')
718 self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'ROADMB01')
720 def test_34_getClliNetwork(self):
721 response = test_utils.get_clli_net_request()
722 self.assertEqual(response.status_code, requests.codes.ok)
723 res = response.json()
724 nbNode = len(res['network'][0]['node'])
725 self.assertEqual(nbNode, 1)
726 for i in range(0, nbNode-1):
727 self.assertNotEqual(res['network'][0]['node'][i]['org-openroadm-clli-network:clli'], 'NodeC')
729 def test_35_disconnect_XPDRA(self):
730 response = test_utils.unmount_device("XPDRA01")
731 self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
733 def test_36_getClliNetwork(self):
734 response = test_utils.get_clli_net_request()
735 self.assertEqual(response.status_code, requests.codes.ok)
736 res = response.json()
737 nbNode = len(res['network'][0]['node'])
738 self.assertEqual(nbNode, 1)
739 self.assertEqual(res['network'][0]['node'][0]['org-openroadm-clli-network:clli'], 'NodeA')
741 def test_37_getOpenRoadmNetwork(self):
742 response = test_utils.get_ordm_net_request()
743 self.assertEqual(response.status_code, requests.codes.ok)
744 res = response.json()
745 nbNode = len(res['network'][0]['node'])
746 self.assertEqual(nbNode, 1)
747 for i in range(0, nbNode):
748 self.assertNotEqual(res['network'][0]['node'][i]['node-id'], 'XPDRA01')
750 def test_38_getNodes_OpenRoadmTopology(self):
751 # pylint: disable=redundant-unittest-assert
752 response = test_utils.get_ordm_topo_request("")
753 res = response.json()
754 # Tests related to nodes
755 self.assertEqual(response.status_code, requests.codes.ok)
756 nbNode = len(res['network'][0]['node'])
757 self.assertEqual(nbNode, 4)
758 listNode = ['ROADMA01-SRG1', 'ROADMA01-SRG3', 'ROADMA01-DEG1', 'ROADMA01-DEG2']
759 for i in range(0, nbNode):
760 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
761 res['network'][0]['node'][i]['supporting-node'])
762 nodeType = res['network'][0]['node'][i]['org-openroadm-common-network:node-type']
763 nodeId = res['network'][0]['node'][i]['node-id']
764 if nodeId in self.CHECK_DICT1:
765 self.assertEqual(nodeType, self.CHECK_DICT1[nodeId]['node_type'])
766 if self.CHECK_DICT1[nodeId]['node_type'] == 'SRG':
767 self.assertEqual(len(res['network'][0]['node'][i]['ietf-network-topology:termination-point']), 17)
768 for item in self.CHECK_DICT1[nodeId]['checks_tp']:
769 self.assertIn(item, res['network'][0]['node'][i]['ietf-network-topology:termination-point'])
770 self.assertIn({'network-ref': 'clli-network', 'node-ref': 'NodeA'},
771 res['network'][0]['node'][i]['supporting-node'])
772 self.assertIn({'network-ref': 'openroadm-network', 'node-ref': 'ROADMA01'},
773 res['network'][0]['node'][i]['supporting-node'])
774 listNode.remove(nodeId)
776 self.assertFalse(True)
777 self.assertEqual(len(listNode), 0)
779 def test_39_disconnect_ROADM_XPDRA_link(self):
781 response = test_utils.del_link_request("XPDRA01-XPDR1-XPDR1-NETWORK1toROADMA01-SRG1-SRG1-PP1-TXRX")
782 self.assertEqual(response.status_code, requests.codes.ok)
784 response = test_utils.del_link_request("ROADMA01-SRG1-SRG1-PP1-TXRXtoXPDRA01-XPDR1-XPDR1-NETWORK1")
785 self.assertEqual(response.status_code, requests.codes.ok)
787 def test_40_getLinks_OpenRoadmTopology(self):
788 response = test_utils.get_ordm_topo_request("")
789 self.assertEqual(response.status_code, requests.codes.ok)
790 res = response.json()
791 nbLink = len(res['network'][0]['ietf-network-topology:link'])
792 self.assertEqual(nbLink, 16)
793 check_list = {'EXPRESS-LINK': ['ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
794 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX'],
795 'ADD-LINK': ['ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
796 'ROADMA01-SRG1-SRG1-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX',
797 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX',
798 'ROADMA01-SRG3-SRG3-CP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX'],
799 'DROP-LINK': ['ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
800 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG1-SRG1-CP-TXRX',
801 'ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX',
802 'ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-SRG3-SRG3-CP-TXRX']
805 for i in range(0, nbLink):
806 linkId = res['network'][0]['ietf-network-topology:link'][i]['link-id']
807 linkType = res['network'][0]['ietf-network-topology:link'][i]['org-openroadm-common-network:link-type']
808 if linkType in check_list:
809 find = linkId in check_list[linkType]
810 self.assertEqual(find, True)
811 (check_list[linkType]).remove(linkId)
813 roadmtoroadmLink += 1
814 for link_type in check_list:
815 self.assertEqual(len(check_list[link_type]), 0)
816 self.assertEqual(roadmtoroadmLink, 6)
817 for i in range(0, nbLink):
818 self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]
819 ['org-openroadm-common-network:link-type'], 'XPONDER-OUTPUT')
820 self.assertNotEqual(res['network'][0]['ietf-network-topology:link'][i]
821 ['org-openroadm-common-network:link-type'], 'XPONDER-INPUT')
823 def test_41_disconnect_ROADMA(self):
824 response = test_utils.unmount_device("ROADMA01")
825 self.assertEqual(response.status_code, requests.codes.ok, test_utils.CODE_SHOULD_BE_200)
826 # Delete in the clli-network
827 response = test_utils.del_node_request("NodeA")
828 self.assertEqual(response.status_code, requests.codes.ok)
830 def test_42_getClliNetwork(self):
831 response = test_utils.get_clli_net_request()
832 self.assertEqual(response.status_code, requests.codes.ok)
833 res = response.json()
834 self.assertNotIn('node', res['network'][0])
836 def test_43_getOpenRoadmNetwork(self):
837 response = test_utils.get_ordm_net_request()
838 self.assertEqual(response.status_code, requests.codes.ok)
839 res = response.json()
840 self.assertNotIn('node', res['network'][0])
842 def test_44_check_roadm2roadm_link_persistence(self):
843 response = test_utils.get_ordm_topo_request("")
844 self.assertEqual(response.status_code, requests.codes.ok)
845 res = response.json()
846 nbLink = len(res['network'][0]['ietf-network-topology:link'])
847 self.assertNotIn('node', res['network'][0])
848 self.assertEqual(nbLink, 6)
851 if __name__ == "__main__":
852 unittest.main(verbosity=2)