Code Duplication    Length = 36-39 lines in 2 locations

django-data/image/crbanim/tests/test_helpers.py 2 locations

@@ 465-503 (lines=39) @@
462
        'language/speciesynonym'
463
    ]
464
465
    @patch('crbanim.helpers.send_message_to_websocket')
466
    @patch('asyncio.get_event_loop')
467
    def test_upload_crbanim(
468
            self, asyncio_mock, send_message_to_websocket_mock):
469
        """Testing uploading and importing data from crbanim to UID"""
470
471
        tmp = asyncio_mock.return_value
472
        tmp.run_until_complete = Mock()
473
474
        # assert upload
475
        self.assertTrue(upload_crbanim(self.submission))
476
477
        # reload submission
478
        self.submission.refresh_from_db()
479
480
        # assert submission messages
481
        self.assertEqual(
482
            self.submission.status,
483
            LOADED)
484
485
        self.assertIn(
486
            "CRBAnim import completed for submission",
487
            self.submission.message)
488
489
        # assert data into database
490
        self.assertTrue(db_has_data())
491
        self.assertTrue(Animal.objects.exists())
492
        self.assertTrue(Sample.objects.exists())
493
494
        self.assertEqual(asyncio_mock.call_count, 1)
495
        self.assertEqual(tmp.run_until_complete.call_count, 1)
496
        self.assertEqual(send_message_to_websocket_mock.call_count, 1)
497
        send_message_to_websocket_mock.assert_called_with(
498
            {'message': 'Loaded',
499
             'notification_message': 'CRBAnim import completed for '
500
                                     'submission: 1',
501
             'validation_message': {'animals': 1, 'samples': 2,
502
                                    'animal_unkn': 1, 'sample_unkn': 2,
503
                                    'animal_issues': 0, 'sample_issues': 0}}, 1)
@@ 323-358 (lines=36) @@
320
321
class UploadCRBAnimTestCase(BaseTestCase, TestCase):
322
323
    @patch('crbanim.helpers.send_message_to_websocket')
324
    @patch('asyncio.get_event_loop')
325
    def test_upload_crbanim(self, asyncio_mock, send_message_to_websocket_mock):
326
        """Testing uploading and importing data from crbanim to UID"""
327
        tmp = asyncio_mock.return_value
328
        tmp.run_until_complete = Mock()
329
330
        self.assertTrue(upload_crbanim(self.submission))
331
332
        # reload submission
333
        self.submission.refresh_from_db()
334
335
        # assert submission messages
336
        self.assertEqual(
337
            self.submission.status,
338
            LOADED)
339
340
        self.assertIn(
341
            "CRBAnim import completed for submission",
342
            self.submission.message)
343
344
        # assert data into database
345
        self.assertTrue(db_has_data())
346
        self.assertTrue(Animal.objects.exists())
347
        self.assertTrue(Sample.objects.exists())
348
349
        self.assertEqual(asyncio_mock.call_count, 1)
350
        self.assertEqual(tmp.run_until_complete.call_count, 1)
351
        self.assertEqual(send_message_to_websocket_mock.call_count, 1)
352
        send_message_to_websocket_mock.assert_called_with(
353
            {'message': 'Loaded',
354
             'notification_message': 'CRBAnim import completed for '
355
                                     'submission: 1',
356
             'validation_message': {'animals': 1, 'samples': 2,
357
                                    'animal_unkn': 1, 'sample_unkn': 2,
358
                                    'animal_issues': 0, 'sample_issues': 0}}, 1)
359
360
    @patch('crbanim.helpers.send_message_to_websocket')
361
    @patch('asyncio.get_event_loop')