Code Duplication    Length = 66-70 lines in 2 locations

django-data/image/excel/tests/test_helpers.py 1 location

@@ 377-446 (lines=70) @@
374
    ]
375
376
377
class UpdateTemplateTestCase(ExcelMixin, TestCase):
378
    """Simulate an excel update with the same dataset. Data already
379
    present will be ignored."""
380
381
    # override used fixtures
382
    fixtures = [
383
        'crbanim/auth',
384
        'excel/dictspecie',
385
        'excel/uid',
386
        'excel/submission',
387
        'excel/speciesynonym'
388
    ]
389
390
    def setUp(self):
391
        # calling my base class setup
392
        super().setUp()
393
394
        # track old submission
395
        self.old_submission = Submission.objects.get(pk=1)
396
397
        # generate a new submission from old submission object
398
        submission = self.submission
399
        submission.pk = None
400
        submission.title = "Updated database"
401
        submission.datasource_version = "Updated database"
402
        submission.save()
403
404
        # track the new submission
405
        self.submission = submission
406
407
        # remove items from database
408
        sample = Sample.objects.get(pk=6)
409
        animal = sample.animal
410
        animal.delete()
411
412
    def test_upload_template(self):
413
        """Testing uploading and importing data from excel template to UID"""
414
415
        # test data loaded
416
        message = "Template import completed for submission"
417
        self.upload_datasource(message)
418
419
        # check animal and sample
420
        queryset = Animal.objects.all()
421
        self.assertEqual(len(queryset), 3, msg="check animal load")
422
423
        queryset = Sample.objects.all()
424
        self.assertEqual(len(queryset), 3, msg="check sample load")
425
426
        # assert data are in the proper submission
427
        self.assertEqual(self.old_submission.animal_set.count(), 2)
428
        self.assertEqual(self.old_submission.sample_set.count(), 2)
429
430
        self.assertEqual(self.submission.animal_set.count(), 1)
431
        self.assertEqual(self.submission.sample_set.count(), 1)
432
433
        # check async message called
434
        notification_message = (
435
            'Template import completed for submission: 2')
436
        validation_message = {
437
            'animals': 1, 'samples': 1,
438
            'animal_unkn': 1, 'sample_unkn': 1,
439
            'animal_issues': 0, 'sample_issues': 0}
440
441
        # check async message called using WebSocketMixin.check_message
442
        self.check_message(
443
            'Loaded',
444
            notification_message,
445
            validation_message,
446
            pk=self.submission.id)
447

django-data/image/crbanim/tests/test_helpers.py 1 location

@@ 369-434 (lines=66) @@
366
    ]
367
368
369
class UpdateCRBAnimTestCase(CRBAnimMixin, BaseTestCase, TestCase):
370
    """Simulate a crbanim update with the same dataset. Data already
371
    present will be ignored. I won't remove anithing from old submission,
372
    so I expect to not add any items into database"""
373
374
    # override used fixtures
375
    fixtures = [
376
        'crbanim/auth',
377
        'crbanim/dictspecie',
378
        'crbanim/uid',
379
        'crbanim/submission',
380
        'language/speciesynonym'
381
    ]
382
383
    def setUp(self):
384
        # calling my base class setup
385
        super().setUp()
386
387
        # track old submission
388
        self.old_submission = Submission.objects.get(pk=1)
389
390
        # generate a new submission from old submission object
391
        submission = self.submission
392
        submission.pk = None
393
        submission.title = "Updated database"
394
        submission.datasource_version = "Updated database"
395
        submission.save()
396
397
        # track the new submission
398
        self.submission = submission
399
400
    def test_upload_crbanim(self):
401
        """Testing uploading and importing data from crbanim to UID"""
402
403
        # test data loaded
404
        message = "CRBAnim import completed for submission"
405
        self.upload_datasource(message)
406
407
        # check animal and samples
408
        queryset = Animal.objects.all()
409
        self.assertEqual(len(queryset), 1, msg="check animal load")
410
411
        queryset = Sample.objects.all()
412
        self.assertEqual(len(queryset), 2, msg="check sample load")
413
414
        # assert data are in the proper submission
415
        self.assertEqual(self.old_submission.animal_set.count(), 1)
416
        self.assertEqual(self.old_submission.sample_set.count(), 2)
417
418
        self.assertEqual(self.submission.animal_set.count(), 0)
419
        self.assertEqual(self.submission.sample_set.count(), 0)
420
421
        # check async message called
422
        notification_message = (
423
            'CRBAnim import completed for submission: 2')
424
        validation_message = {
425
            'animals': 0, 'samples': 0,
426
            'animal_unkn': 0, 'sample_unkn': 0,
427
            'animal_issues': 0, 'sample_issues': 0}
428
429
        # check async message called using WebSocketMixin.check_message
430
        self.check_message(
431
            'Loaded',
432
            notification_message,
433
            validation_message,
434
            pk=self.submission.id)
435
436
437
class SanitizeAccessionTest(TestCase):