Code Duplication    Length = 22-24 lines in 5 locations

tests/unit/test_main.py 5 locations

@@ 250-273 (lines=24) @@
247
        expected = flow_by_sw
248
        assert response.json() == expected
249
250
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
251
    async def test_flow_stats_by_dpid_flow_id_without_dpid(self,
252
                                                           mock_from_flow):
253
        """Test flow_stats rest call."""
254
        flow_info = {
255
            "byte_count": 10,
256
            "duration_sec": 20,
257
            "duration_nsec": 30,
258
            "packet_count": 40,
259
            "cookie": 12310228866111668291,
260
            "match": {"in_port": 1},
261
            "priority": 32768
262
            }
263
        flow_stats_dict_mock = {'6055f13593fad45e0b4699f49d56b105': flow_info}
264
        flow_by_sw = {"00:00:00:00:00:00:00:01": flow_stats_dict_mock}
265
        mock_from_flow.return_value = flow_by_sw
266
267
        endpoint = "/flow/stats"
268
        url = f"{self.base_endpoint}{endpoint}"
269
        response = await self.api_client.get(url)
270
        assert response.status_code == 200
271
272
        expected = flow_by_sw
273
        assert response.json() == expected
274
275
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
276
    async def test_flow_stats_by_dpid_flow_id_with_dpid(self, mock_from_flow):
@@ 275-297 (lines=23) @@
272
        expected = flow_by_sw
273
        assert response.json() == expected
274
275
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
276
    async def test_flow_stats_by_dpid_flow_id_with_dpid(self, mock_from_flow):
277
        """Test flow_stats rest call."""
278
        flow_info = {
279
            "byte_count": 10,
280
            "duration_sec": 20,
281
            "duration_nsec": 30,
282
            "packet_count": 40,
283
            "cookie": 12310228866111668291,
284
            "match": {"in_port": 1},
285
            "priority": 32768
286
            }
287
        flow_stats_dict_mock = {'6055f13593fad45e0b4699f49d56b105': flow_info}
288
        flow_by_sw = {"00:00:00:00:00:00:00:01": flow_stats_dict_mock}
289
        mock_from_flow.return_value = flow_by_sw
290
291
        endpoint = "/flow/stats?dpid=00:00:00:00:00:00:00:01"
292
        url = f"{self.base_endpoint}{endpoint}"
293
        response = await self.api_client.get(url)
294
        assert response.status_code == 200
295
296
        expected = flow_by_sw
297
        assert response.json() == expected
298
299
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
300
    async def test_flow_stats_by_dpid_flow_id_not_found(self, mock_from_flow):
@@ 227-248 (lines=22) @@
224
        assert response.status_code == 200
225
        assert len(response.json()) == 1
226
227
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
228
    async def test_flow_stats_by_dpid_flow_id(self, mock_from_flow):
229
        """Test flow_stats rest call."""
230
        flow_info = {
231
            "byte_count": 10,
232
            "duration_sec": 20,
233
            "duration_nsec": 30,
234
            "packet_count": 40,
235
            "cookie": 12310228866111668291,
236
            "match": {"in_port": 1},
237
            "priority": 32768
238
            }
239
        flow_stats_dict_mock = {'6055f13593fad45e0b4699f49d56b105': flow_info}
240
        flow_by_sw = {"00:00:00:00:00:00:00:01": flow_stats_dict_mock}
241
        mock_from_flow.return_value = flow_by_sw
242
243
        endpoint = "/flow/stats?dpid=00:00:00:00:00:00:00:01"
244
        url = f"{self.base_endpoint}{endpoint}"
245
        response = await self.api_client.get(url)
246
        assert response.status_code == 200
247
        expected = flow_by_sw
248
        assert response.json() == expected
249
250
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
251
    async def test_flow_stats_by_dpid_flow_id_without_dpid(self,
@@ 204-225 (lines=22) @@
201
        assert response.status_code == 200
202
        assert len(response.json()) == 1
203
204
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
205
    async def test_flows_counters_bytes(self, mock_from_flow):
206
        """Test flows_counters function for bytes"""
207
        flow_info = {
208
            "byte_count": 10,
209
            "duration_sec": 20,
210
            "duration_nsec": 30,
211
            "packet_count": 40,
212
            "cookie": 12310228866111668291,
213
            "match": {"in_port": 1},
214
            "priority": 32768
215
            }
216
        flow_id = '6055f13593fad45e0b4699f49d56b105'
217
        flow_stats_dict_mock = {flow_id: flow_info}
218
        dpid = "00:00:00:00:00:00:00:01"
219
        flow_by_sw = {dpid: flow_stats_dict_mock}
220
        mock_from_flow.return_value = flow_by_sw
221
222
        endpoint = f"{self.base_endpoint}/bytes_count/per_flow/{dpid}"
223
        response = await self.api_client.get(endpoint)
224
        assert response.status_code == 200
225
        assert len(response.json()) == 1
226
227
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
228
    async def test_flow_stats_by_dpid_flow_id(self, mock_from_flow):
@@ 181-202 (lines=22) @@
178
        assert json_response[0]["bytes_counter"] == 10
179
        assert json_response[0]["bits_per_second"] == 4.0
180
181
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
182
    async def test_flows_counters_packet(self, mock_from_flow):
183
        """Test flows_counters function for packet"""
184
        flow_info = {
185
            "byte_count": 10,
186
            "duration_sec": 20,
187
            "duration_nsec": 30,
188
            "packet_count": 40,
189
            "cookie": 12310228866111668291,
190
            "match": {"in_port": 1},
191
            "priority": 32768
192
            }
193
        flow_id = '6055f13593fad45e0b4699f49d56b105'
194
        flow_stats_dict_mock = {flow_id: flow_info}
195
        dpid = "00:00:00:00:00:00:00:01"
196
        flow_by_sw = {dpid: flow_stats_dict_mock}
197
        mock_from_flow.return_value = flow_by_sw
198
199
        endpoint = f"{self.base_endpoint}/packet_count/per_flow/{dpid}"
200
        response = await self.api_client.get(endpoint)
201
        assert response.status_code == 200
202
        assert len(response.json()) == 1
203
204
    @patch("napps.amlight.flow_stats.main.Main.flow_stats_by_dpid_flow_id")
205
    async def test_flows_counters_bytes(self, mock_from_flow):