Code Duplication    Length = 72-77 lines in 2 locations

backend/tracim_backend/tests/functional/test_contents.py 2 locations

@@ 2778-2854 (lines=77) @@
2775
        new_image = Image.open(io.BytesIO(res.body))
2776
        assert 256, 256 == new_image.size
2777
2778
    def test_api__get_sized_jpeg_revision_preview__ok__200__force_download_case(self) -> None:  # nopep8
2779
        """
2780
        get 256x256 revision preview of a txt file
2781
        """
2782
        dbsession = get_tm_session(self.session_factory, transaction.manager)
2783
        admin = dbsession.query(models.User) \
2784
            .filter(models.User.email == '[email protected]') \
2785
            .one()
2786
        workspace_api = WorkspaceApi(
2787
            current_user=admin,
2788
            session=dbsession,
2789
            config=self.app_config
2790
        )
2791
        content_api = ContentApi(
2792
            current_user=admin,
2793
            session=dbsession,
2794
            config=self.app_config
2795
        )
2796
        business_workspace = workspace_api.get_one(1)
2797
        tool_folder = content_api.get_one(1, content_type=CONTENT_TYPES.Any_SLUG)
2798
        test_file = content_api.create(
2799
            content_type_slug=CONTENT_TYPES.File.slug,
2800
            workspace=business_workspace,
2801
            parent=tool_folder,
2802
            label='Test file',
2803
            do_save=False,
2804
            do_notify=False,
2805
        )
2806
        test_file.file_extension = '.txt'
2807
        test_file.depot_file = FileIntent(
2808
            b'Test file',
2809
            'Test_file.txt',
2810
            'text/plain',
2811
        )
2812
        dbsession.flush()
2813
        transaction.commit()
2814
        content_id = int(test_file.content_id)
2815
        revision_id = int(test_file.revision_id)
2816
        image = create_1000px_png_test_image()
2817
        self.testapp.authorization = (
2818
            'Basic',
2819
            (
2820
                '[email protected]',
2821
                '[email protected]'
2822
            )
2823
        )
2824
        self.testapp.put(
2825
            '/api/v2/workspaces/1/files/{}/raw'.format(content_id),
2826
            upload_files=[
2827
                ('files', image.name, image.getvalue())
2828
            ],
2829
            status=204,
2830
        )
2831
        res = self.testapp.get(
2832
            '/api/v2/workspaces/1/files/{content_id}/revisions/{revision_id}/raw'.format(  # nopep8
2833
                content_id=content_id,
2834
                revision_id=revision_id,
2835
            ),
2836
            status=200
2837
        )
2838
        assert res.content_type == 'text/plain'
2839
        params = {
2840
            'force_download': 1,
2841
        }
2842
        res = self.testapp.get(
2843
            '/api/v2/workspaces/1/files/{content_id}/revisions/{revision_id}/preview/jpg/256x256'.format(  # nopep8
2844
                content_id=content_id,
2845
                revision_id=revision_id,
2846
            ),
2847
            status=200,
2848
            params=params,
2849
        )
2850
        assert res.headers['Content-Disposition'] == 'attachment; filename="Test file_page_1_256x256.jpg"'  # nopep8
2851
        assert res.body != image.getvalue()
2852
        assert res.content_type == 'image/jpeg'
2853
        new_image = Image.open(io.BytesIO(res.body))
2854
        assert 256, 256 == new_image.size
2855
2856
    def test_api__get_full_pdf_preview__ok__200__nominal_case(self) -> None:
2857
        """
@@ 2705-2776 (lines=72) @@
2702
            status=400
2703
        )
2704
2705
    def test_api__get_sized_jpeg_revision_preview__ok__200__nominal_case(self) -> None:  # nopep8
2706
        """
2707
        get 256x256 revision preview of a txt file
2708
        """
2709
        dbsession = get_tm_session(self.session_factory, transaction.manager)
2710
        admin = dbsession.query(models.User) \
2711
            .filter(models.User.email == '[email protected]') \
2712
            .one()
2713
        workspace_api = WorkspaceApi(
2714
            current_user=admin,
2715
            session=dbsession,
2716
            config=self.app_config
2717
        )
2718
        content_api = ContentApi(
2719
            current_user=admin,
2720
            session=dbsession,
2721
            config=self.app_config
2722
        )
2723
        business_workspace = workspace_api.get_one(1)
2724
        tool_folder = content_api.get_one(1, content_type=CONTENT_TYPES.Any_SLUG)
2725
        test_file = content_api.create(
2726
            content_type_slug=CONTENT_TYPES.File.slug,
2727
            workspace=business_workspace,
2728
            parent=tool_folder,
2729
            label='Test file',
2730
            do_save=False,
2731
            do_notify=False,
2732
        )
2733
        test_file.file_extension = '.txt'
2734
        test_file.depot_file = FileIntent(
2735
            b'Test file',
2736
            'Test_file.txt',
2737
            'text/plain',
2738
        )
2739
        dbsession.flush()
2740
        transaction.commit()
2741
        content_id = int(test_file.content_id)
2742
        revision_id = int(test_file.revision_id)
2743
        image = create_1000px_png_test_image()
2744
        self.testapp.authorization = (
2745
            'Basic',
2746
            (
2747
                '[email protected]',
2748
                '[email protected]'
2749
            )
2750
        )
2751
        self.testapp.put(
2752
            '/api/v2/workspaces/1/files/{}/raw'.format(content_id),
2753
            upload_files=[
2754
                ('files', image.name, image.getvalue())
2755
            ],
2756
            status=204,
2757
        )
2758
        res = self.testapp.get(
2759
            '/api/v2/workspaces/1/files/{content_id}/revisions/{revision_id}/raw'.format(  # nopep8
2760
                content_id=content_id,
2761
                revision_id=revision_id,
2762
            ),
2763
            status=200
2764
        )
2765
        assert res.content_type == 'text/plain'
2766
        res = self.testapp.get(
2767
            '/api/v2/workspaces/1/files/{content_id}/revisions/{revision_id}/preview/jpg/256x256'.format(  # nopep8
2768
                content_id=content_id,
2769
                revision_id=revision_id,
2770
            ),
2771
            status=200
2772
        )
2773
        assert res.body != image.getvalue()
2774
        assert res.content_type == 'image/jpeg'
2775
        new_image = Image.open(io.BytesIO(res.body))
2776
        assert 256, 256 == new_image.size
2777
2778
    def test_api__get_sized_jpeg_revision_preview__ok__200__force_download_case(self) -> None:  # nopep8
2779
        """