Code Duplication    Length = 44-46 lines in 2 locations

tests/models/test_link_protection.py 2 locations

@@ 237-282 (lines=46) @@
234
        msg = f"{evc} deployed after link down."
235
        log_mocked.debug.assert_called_once_with(msg)
236
237
    @patch('napps.kytos.mef_eline.models.log')
238
    @patch('napps.kytos.mef_eline.models.EVCDeploy.deploy')
239
    @patch('napps.kytos.mef_eline.models.LinkProtection.deploy_to')
240
    @patch('napps.kytos.mef_eline.models.DynamicPathManager.get_paths')
241
    def test_handle_link_down_case_3(self, get_paths_mocked,
242
                                     deploy_to_mocked, deploy_mocked,
243
                                     log_mocked):
244
        """Test if circuit without dynamic path is return failed."""
245
        deploy_mocked.return_value = False
246
        deploy_to_mocked.return_value = False
247
        primary_path = [
248
                get_link_mocked(endpoint_a_port=9, endpoint_b_port=10,
249
                                metadata={"s_vlan": 5},
250
                                status=EntityStatus.DOWN),
251
                get_link_mocked(endpoint_a_port=11, endpoint_b_port=12,
252
                                metadata={"s_vlan": 6},
253
                                status=EntityStatus.UP),
254
        ]
255
        backup_path = [
256
                get_link_mocked(endpoint_a_port=9, endpoint_b_port=10,
257
                                metadata={"s_vlan": 5},
258
                                status=EntityStatus.DOWN),
259
                get_link_mocked(endpoint_a_port=11, endpoint_b_port=12,
260
                                metadata={"s_vlan": 6},
261
                                status=EntityStatus.UP),
262
        ]
263
        attributes = {
264
            "controller": get_controller_mock(),
265
            "name": "circuit_name",
266
            "uni_a": get_uni_mocked(is_valid=True),
267
            "uni_z": get_uni_mocked(is_valid=True),
268
            "primary_path": primary_path,
269
            "backup_path": backup_path,
270
            "enabled": True
271
        }
272
273
        evc = EVC(**attributes)
274
        evc.current_path = evc.backup_path
275
        current_handle_link_down = evc.handle_link_down()
276
        self.assertEqual(deploy_mocked.call_count, 0)
277
        self.assertEqual(deploy_to_mocked.call_count, 1)
278
        deploy_to_mocked.assert_called_once_with('primary_path',
279
                                                 evc.primary_path)
280
        self.assertFalse(current_handle_link_down)
281
        msg = f'Failed to re-deploy {evc} after link down.'
282
        log_mocked.debug.assert_called_once_with(msg)
283
284
    @patch('napps.kytos.mef_eline.models.log')
285
    @patch('napps.kytos.mef_eline.models.EVCDeploy.deploy')
@@ 148-191 (lines=44) @@
145
        self.assertFalse(deployed)
146
147
148
    @patch('napps.kytos.mef_eline.models.log')
149
    @patch('napps.kytos.mef_eline.models.LinkProtection.deploy_to')
150
    @patch('napps.kytos.mef_eline.models.EVCDeploy.deploy')
151
    @patch('napps.kytos.mef_eline.models.Path.status', EntityStatus.UP)
152
    def test_handle_link_down_case_1(self, deploy_mocked, deploy_to_mocked,
153
                                     log_mocked):
154
        """Test if deploy_to backup path is called."""
155
        deploy_mocked.return_value = True
156
157
        primary_path = [
158
                get_link_mocked(endpoint_a_port=9, endpoint_b_port=10,
159
                                metadata={"s_vlan": 5},
160
                                status=EntityStatus.DOWN),
161
                get_link_mocked(endpoint_a_port=11, endpoint_b_port=12,
162
                                metadata={"s_vlan": 6},
163
                                status=EntityStatus.UP),
164
        ]
165
        backup_path = [
166
                get_link_mocked(endpoint_a_port=9, endpoint_b_port=10,
167
                                metadata={"s_vlan": 5},
168
                                status=EntityStatus.UP),
169
                get_link_mocked(endpoint_a_port=11, endpoint_b_port=12,
170
                                metadata={"s_vlan": 6},
171
                                status=EntityStatus.UP),
172
        ]
173
        attributes = {
174
            "controller": get_controller_mock(),
175
            "name": "circuit_name",
176
            "uni_a": get_uni_mocked(is_valid=True),
177
            "uni_z": get_uni_mocked(is_valid=True),
178
            "primary_path": primary_path,
179
            "backup_path": backup_path,
180
            "enabled": True
181
        }
182
        evc = EVC(**attributes)
183
184
        evc.current_path = evc.primary_path
185
        current_handle_link_down = evc.handle_link_down()
186
        self.assertEqual(deploy_mocked.call_count, 0)
187
        deploy_to_mocked.assert_called_once_with('backup_path',
188
                                                 evc.backup_path)
189
        self.assertTrue(current_handle_link_down)
190
        msg = f"{evc} deployed after link down."
191
        log_mocked.debug.assert_called_once_with(msg)
192
193
    @patch('napps.kytos.mef_eline.models.log')
194
    @patch('napps.kytos.mef_eline.models.EVCDeploy.deploy')