Code Duplication    Length = 66-70 lines in 2 locations

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):

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

@@ 457-526 (lines=70) @@
454
    ]
455
456
457
class UpdateTemplateTestCase(ExcelMixin, TestCase):
458
    """Simulate an excel update with the same dataset. Data already
459
    present will be ignored."""
460
461
    # override used fixtures
462
    fixtures = [
463
        'crbanim/auth',
464
        'excel/dictspecie',
465
        'excel/uid',
466
        'excel/submission',
467
        'excel/speciesynonym'
468
    ]
469
470
    def setUp(self):
471
        # calling my base class setup
472
        super().setUp()
473
474
        # track old submission
475
        self.old_submission = Submission.objects.get(pk=1)
476
477
        # generate a new submission from old submission object
478
        submission = self.submission
479
        submission.pk = None
480
        submission.title = "Updated database"
481
        submission.datasource_version = "Updated database"
482
        submission.save()
483
484
        # track the new submission
485
        self.submission = submission
486
487
        # remove items from database
488
        sample = Sample.objects.get(pk=6)
489
        animal = sample.animal
490
        animal.delete()
491
492
    def test_upload_template(self):
493
        """Testing uploading and importing data from excel template to UID"""
494
495
        # test data loaded
496
        message = "Template import completed for submission"
497
        self.upload_datasource(message)
498
499
        # check animal and sample
500
        queryset = Animal.objects.all()
501
        self.assertEqual(len(queryset), 3, msg="check animal load")
502
503
        queryset = Sample.objects.all()
504
        self.assertEqual(len(queryset), 3, msg="check sample load")
505
506
        # assert data are in the proper submission
507
        self.assertEqual(self.old_submission.animal_set.count(), 2)
508
        self.assertEqual(self.old_submission.sample_set.count(), 2)
509
510
        self.assertEqual(self.submission.animal_set.count(), 1)
511
        self.assertEqual(self.submission.sample_set.count(), 1)
512
513
        # check async message called
514
        notification_message = (
515
            'Template import completed for submission: 2')
516
        validation_message = {
517
            'animals': 1, 'samples': 1,
518
            'animal_unkn': 1, 'sample_unkn': 1,
519
            'animal_issues': 0, 'sample_issues': 0}
520
521
        # check async message called using WebSocketMixin.check_message
522
        self.check_message(
523
            'Loaded',
524
            notification_message,
525
            validation_message,
526
            pk=self.submission.id)
527