Code Duplication    Length = 42-47 lines in 2 locations

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

@@ 403-449 (lines=47) @@
400
                                     'are not loaded in UID database: Rainbow '
401
                                     'trout'}, 1)
402
403
    @patch('crbanim.helpers.send_message_to_websocket')
404
    @patch('asyncio.get_event_loop')
405
    @patch("crbanim.helpers.CRBAnimReader.check_sex",
406
           return_value=[False, 'unknown'])
407
    def test_upload_crbanim_errors_with_sex(self, my_check, asyncio_mock,
408
                                            send_message_to_websocket_mock):
409
        """Testing importing with data into UID with errors"""
410
        tmp = asyncio_mock.return_value
411
        tmp.run_until_complete = Mock()
412
413
        self.assertFalse(upload_crbanim(self.submission))
414
415
        # reload submission
416
        self.submission.refresh_from_db()
417
418
        # test my mock method called
419
        self.assertTrue(my_check.called)
420
421
        # reload submission
422
        self.submission = Submission.objects.get(pk=1)
423
424
        self.assertEqual(
425
            self.submission.status,
426
            ERROR)
427
428
        # check for two distinct messages
429
        self.assertIn(
430
            "Not all Sex terms are loaded into database",
431
            self.submission.message)
432
433
        self.assertNotIn(
434
            "CRBAnim import completed for submission",
435
            self.submission.message)
436
437
        # assert data into database
438
        self.assertFalse(db_has_data())
439
        self.assertFalse(Animal.objects.exists())
440
        self.assertFalse(Sample.objects.exists())
441
442
        self.assertEqual(asyncio_mock.call_count, 1)
443
        self.assertEqual(tmp.run_until_complete.call_count, 1)
444
        self.assertEqual(send_message_to_websocket_mock.call_count, 1)
445
        send_message_to_websocket_mock.assert_called_with(
446
            {'message': 'Error',
447
             'notification_message': 'Error in importing data: Not all Sex '
448
                                     'terms are loaded into database: check '
449
                                     'for unknown in your dataset'}, 1)
450
451
452
class ReloadCRBAnimTestCase(BaseTestCase, TestCase):
@@ 360-401 (lines=42) @@
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')
362
    @patch("crbanim.helpers.CRBAnimReader.check_species",
363
           return_value=[False, 'Rainbow trout'])
364
    def test_upload_crbanim_errors(self, my_check, asyncio_mock,
365
                                   send_message_to_websocket_mock):
366
        """Testing importing with data into UID with errors"""
367
        tmp = asyncio_mock.return_value
368
        tmp.run_until_complete = Mock()
369
370
        self.assertFalse(upload_crbanim(self.submission))
371
372
        # reload submission
373
        self.submission.refresh_from_db()
374
375
        # test my mock method called
376
        self.assertTrue(my_check.called)
377
378
        # reload submission
379
        self.submission = Submission.objects.get(pk=1)
380
381
        self.assertEqual(
382
            self.submission.status,
383
            ERROR)
384
385
        self.assertIn(
386
            "Some species are not loaded in UID database",
387
            self.submission.message)
388
389
        # assert data into database
390
        self.assertFalse(db_has_data())
391
        self.assertFalse(Animal.objects.exists())
392
        self.assertFalse(Sample.objects.exists())
393
394
        self.assertEqual(asyncio_mock.call_count, 1)
395
        self.assertEqual(tmp.run_until_complete.call_count, 1)
396
        self.assertEqual(send_message_to_websocket_mock.call_count, 1)
397
        send_message_to_websocket_mock.assert_called_with(
398
            {'message': 'Error',
399
             'notification_message': 'Error in importing data: Some species '
400
                                     'are not loaded in UID database: Rainbow '
401
                                     'trout'}, 1)
402
403
    @patch('crbanim.helpers.send_message_to_websocket')
404
    @patch('asyncio.get_event_loop')