Code Duplication    Length = 109-111 lines in 2 locations

tracim/tests/library/test_content_api.py 2 locations

@@ 511-621 (lines=111) @@
508
        eq_('', c.label)
509
        eq_(ActionDescription.COMMENT, c.revision_type)
510
511
    def test_unit_copy_file_different_label_different_parent_ok(self):
512
        uapi = UserApi(
513
            session=self.session,
514
            config=self.app_config,
515
            current_user=None,
516
        )
517
        group_api = GroupApi(
518
            current_user=None,
519
            session=self.session
520
        )
521
        groups = [group_api.get_one(Group.TIM_USER),
522
                  group_api.get_one(Group.TIM_MANAGER),
523
                  group_api.get_one(Group.TIM_ADMIN)]
524
525
        user = uapi.create_user(
526
            email='user1@user',
527
            groups=groups,
528
            save_now=True
529
        )
530
        user2 = uapi.create_user(
531
            email='user2@user',
532
            groups=groups,
533
            save_now=True
534
        )
535
        workspace = WorkspaceApi(
536
            current_user=user,
537
            session=self.session
538
        ).create_workspace(
539
            'test workspace',
540
            save_now=True
541
        )
542
        RoleApi(current_user=user, session=self.session).create_one(
543
            user2,
544
            workspace,
545
            UserRoleInWorkspace.WORKSPACE_MANAGER,
546
            with_notif=False
547
        )
548
        api = ContentApi(
549
            current_user=user,
550
            session=self.session,
551
            config=self.app_config,
552
        )
553
        foldera = api.create(
554
            ContentType.Folder,
555
            workspace,
556
            None,
557
            'folder a',
558
            True
559
        )
560
        with self.session.no_autoflush:
561
            text_file = api.create(
562
                content_type=ContentType.File,
563
                workspace=workspace,
564
                parent=foldera,
565
                label='test_file',
566
                do_save=False,
567
            )
568
            api.update_file_data(
569
                text_file,
570
                'test_file',
571
                'text/plain',
572
                b'test_content'
573
            )
574
575
        api.save(text_file, ActionDescription.CREATION)
576
        api2 = ContentApi(
577
            current_user=user2,
578
            session=self.session,
579
            config=self.app_config,
580
        )
581
        workspace2 = WorkspaceApi(
582
            current_user=user2,
583
            session=self.session,
584
        ).create_workspace(
585
            'test workspace2',
586
            save_now=True
587
        )
588
        folderb = api2.create(
589
            ContentType.Folder,
590
            workspace2,
591
            None,
592
            'folder b',
593
            True
594
        )
595
596
        api2.copy(
597
            item=text_file,
598
            new_parent=folderb,
599
            new_label='test_file_copy'
600
        )
601
602
        transaction.commit()
603
        text_file_copy = api2.get_one_by_label_and_parent(
604
            'test_file_copy',
605
            folderb,
606
        )
607
608
        assert text_file != text_file_copy
609
        assert text_file_copy.content_id != text_file.content_id
610
        assert text_file_copy.workspace_id == workspace2.workspace_id
611
        assert text_file_copy.depot_file.file.read() == text_file.depot_file.file.read()   # nopep8
612
        assert text_file_copy.depot_file.path != text_file.depot_file.path
613
        assert text_file_copy.label == 'test_file_copy'
614
        assert text_file_copy.type == text_file.type
615
        assert text_file_copy.parent.content_id == folderb.content_id
616
        assert text_file_copy.owner.user_id == user.user_id
617
        assert text_file_copy.description == text_file.description
618
        assert text_file_copy.file_extension == text_file.file_extension
619
        assert text_file_copy.file_mimetype == text_file.file_mimetype
620
        assert text_file_copy.revision_type == ActionDescription.COPY
621
        assert len(text_file_copy.revisions) == len(text_file.revisions) + 1
622
623
    def test_unit_copy_file__same_label_different_parent_ok(self):
624
        uapi = UserApi(
@@ 623-731 (lines=109) @@
620
        assert text_file_copy.revision_type == ActionDescription.COPY
621
        assert len(text_file_copy.revisions) == len(text_file.revisions) + 1
622
623
    def test_unit_copy_file__same_label_different_parent_ok(self):
624
        uapi = UserApi(
625
            session=self.session,
626
            config=self.app_config,
627
            current_user=None,
628
        )
629
        group_api = GroupApi(
630
            current_user=None,
631
            session=self.session
632
        )
633
        groups = [group_api.get_one(Group.TIM_USER),
634
                  group_api.get_one(Group.TIM_MANAGER),
635
                  group_api.get_one(Group.TIM_ADMIN)]
636
637
        user = uapi.create_user(
638
            email='user1@user',
639
            groups=groups,
640
            save_now=True
641
        )
642
        user2 = uapi.create_user(
643
            email='user2@user',
644
            groups=groups,
645
            save_now=True
646
        )
647
        workspace = WorkspaceApi(
648
            current_user=user,
649
            session=self.session
650
        ).create_workspace(
651
            'test workspace',
652
            save_now=True
653
        )
654
        RoleApi(current_user=user, session=self.session).create_one(
655
            user2,
656
            workspace,
657
            UserRoleInWorkspace.WORKSPACE_MANAGER,
658
            with_notif=False
659
        )
660
        api = ContentApi(
661
            current_user=user,
662
            session=self.session,
663
            config=self.app_config,
664
        )
665
        foldera = api.create(
666
            ContentType.Folder,
667
            workspace,
668
            None,
669
            'folder a',
670
            True
671
        )
672
        with self.session.no_autoflush:
673
            text_file = api.create(
674
                content_type=ContentType.File,
675
                workspace=workspace,
676
                parent=foldera,
677
                label='test_file',
678
                do_save=False,
679
            )
680
            api.update_file_data(
681
                text_file,
682
                'test_file',
683
                'text/plain',
684
                b'test_content'
685
            )
686
687
        api.save(text_file, ActionDescription.CREATION)
688
        api2 = ContentApi(
689
            current_user=user2,
690
            session=self.session,
691
            config=self.app_config,
692
        )
693
        workspace2 = WorkspaceApi(
694
            current_user=user2,
695
            session=self.session
696
        ).create_workspace(
697
            'test workspace2',
698
            save_now=True
699
        )
700
        folderb = api2.create(
701
            ContentType.Folder,
702
            workspace2,
703
            None,
704
            'folder b',
705
            True
706
        )
707
        api2.copy(
708
            item=text_file,
709
            new_parent=folderb,
710
        )
711
712
        transaction.commit()
713
        text_file_copy = api2.get_one_by_label_and_parent(
714
            'test_file',
715
            folderb,
716
        )
717
718
        assert text_file != text_file_copy
719
        assert text_file_copy.content_id != text_file.content_id
720
        assert text_file_copy.workspace_id == workspace2.workspace_id
721
        assert text_file_copy.depot_file.file.read() == text_file.depot_file.file.read()  # nopep8
722
        assert text_file_copy.depot_file.path != text_file.depot_file.path
723
        assert text_file_copy.label == text_file.label
724
        assert text_file_copy.type == text_file.type
725
        assert text_file_copy.parent.content_id == folderb.content_id
726
        assert text_file_copy.owner.user_id == user.user_id
727
        assert text_file_copy.description == text_file.description
728
        assert text_file_copy.file_extension == text_file.file_extension
729
        assert text_file_copy.file_mimetype == text_file.file_mimetype
730
        assert text_file_copy.revision_type == ActionDescription.COPY
731
        assert len(text_file_copy.revisions) == len(text_file.revisions) + 1
732
733
    def test_unit_copy_file_different_label_same_parent_ok(self):
734
        uapi = UserApi(