Code Duplication    Length = 109-111 lines in 2 locations

tracim/tests/library/test_content_api.py 2 locations

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