Code Duplication    Length = 72-72 lines in 2 locations

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

@@ 3548-3619 (lines=72) @@
3545
        assert res.headers['Content-Disposition'] == 'attachment; filename="Test file.pdf"'  # nopep8
3546
        assert res.content_type == 'application/pdf'
3547
3548
    def test_api__get_pdf_revision_preview__ok__200__force_download_case(self) -> None:
3549
        """
3550
        get pdf revision preview of content
3551
        """
3552
        dbsession = get_tm_session(self.session_factory, transaction.manager)
3553
        admin = dbsession.query(models.User) \
3554
            .filter(models.User.email == '[email protected]') \
3555
            .one()
3556
        workspace_api = WorkspaceApi(
3557
            current_user=admin,
3558
            session=dbsession,
3559
            config=self.app_config
3560
        )
3561
        content_api = ContentApi(
3562
            current_user=admin,
3563
            session=dbsession,
3564
            config=self.app_config
3565
        )
3566
        business_workspace = workspace_api.get_one(1)
3567
        tool_folder = content_api.get_one(1, content_type=CONTENT_TYPES.Any_SLUG)
3568
        test_file = content_api.create(
3569
            content_type_slug=CONTENT_TYPES.File.slug,
3570
            workspace=business_workspace,
3571
            parent=tool_folder,
3572
            label='Test file',
3573
            do_save=False,
3574
            do_notify=False,
3575
        )
3576
        test_file.file_extension = '.txt'
3577
        test_file.depot_file = FileIntent(
3578
            b'Test file',
3579
            'Test_file.txt',
3580
            'text/plain',
3581
        )
3582
        dbsession.flush()
3583
        transaction.commit()
3584
        content_id = int(test_file.content_id)
3585
        revision_id = int(test_file.revision_id)
3586
        image = create_1000px_png_test_image()
3587
        self.testapp.authorization = (
3588
            'Basic',
3589
            (
3590
                '[email protected]',
3591
                '[email protected]'
3592
            )
3593
        )
3594
        self.testapp.put(
3595
            '/api/v2/workspaces/1/files/{}/raw'.format(content_id),
3596
            upload_files=[
3597
                ('files', image.name, image.getvalue())
3598
            ],
3599
            status=204,
3600
        )
3601
        res = self.testapp.get(
3602
            '/api/v2/workspaces/1/files/{content_id}/revisions/{revision_id}/raw'.format(  # nopep8
3603
                content_id=content_id,
3604
                revision_id=revision_id,
3605
            ),
3606
            status=200
3607
        )
3608
        assert res.content_type == 'text/plain'
3609
        params = {'page': 1, 'force_download': 1}
3610
        res = self.testapp.get(
3611
            '/api/v2/workspaces/1/files/{content_id}/revisions/{revision_id}/preview/pdf'.format(  # nopep8
3612
                content_id=content_id,
3613
                revision_id=revision_id,
3614
            ),
3615
            status=200,
3616
            params=params,
3617
        )
3618
        assert res.headers['Content-Disposition'] == 'attachment; filename="test_image_page_1.pdf"'  # nopep8
3619
        assert res.content_type == 'application/pdf'
3620
3621
3622
class TestThreads(FunctionalTest):
@@ 3475-3546 (lines=72) @@
3472
        )
3473
        assert res.content_type == 'application/pdf'
3474
3475
    def test_api__get_full_pdf_revision_preview__ok__200__force_download_case(self) -> None:
3476
        """
3477
        get pdf revision preview of content
3478
        """
3479
        dbsession = get_tm_session(self.session_factory, transaction.manager)
3480
        admin = dbsession.query(models.User) \
3481
            .filter(models.User.email == '[email protected]') \
3482
            .one()
3483
        workspace_api = WorkspaceApi(
3484
            current_user=admin,
3485
            session=dbsession,
3486
            config=self.app_config
3487
        )
3488
        content_api = ContentApi(
3489
            current_user=admin,
3490
            session=dbsession,
3491
            config=self.app_config
3492
        )
3493
        business_workspace = workspace_api.get_one(1)
3494
        tool_folder = content_api.get_one(1, content_type=CONTENT_TYPES.Any_SLUG)
3495
        test_file = content_api.create(
3496
            content_type_slug=CONTENT_TYPES.File.slug,
3497
            workspace=business_workspace,
3498
            parent=tool_folder,
3499
            label='Test file',
3500
            do_save=False,
3501
            do_notify=False,
3502
        )
3503
        test_file.file_extension = '.txt'
3504
        test_file.depot_file = FileIntent(
3505
            b'Test file',
3506
            'Test_file.txt',
3507
            'text/plain',
3508
        )
3509
        dbsession.flush()
3510
        transaction.commit()
3511
        content_id = int(test_file.content_id)
3512
        revision_id = int(test_file.revision_id)
3513
        image = create_1000px_png_test_image()
3514
        self.testapp.authorization = (
3515
            'Basic',
3516
            (
3517
                '[email protected]',
3518
                '[email protected]'
3519
            )
3520
        )
3521
        self.testapp.put(
3522
            '/api/v2/workspaces/1/files/{}/raw'.format(content_id),
3523
            upload_files=[
3524
                ('files', image.name, image.getvalue())
3525
            ],
3526
            status=204,
3527
        )
3528
        res = self.testapp.get(
3529
            '/api/v2/workspaces/1/files/{content_id}/revisions/{revision_id}/raw'.format(  # nopep8
3530
                content_id=content_id,
3531
                revision_id=revision_id,
3532
            ),
3533
            status=200
3534
        )
3535
        assert res.content_type == 'text/plain'
3536
        params = {'force_download': 1}
3537
        res = self.testapp.get(
3538
            '/api/v2/workspaces/1/files/{content_id}/revisions/{revision_id}/preview/pdf/full'.format(  # nopep8
3539
                content_id=content_id,
3540
                revision_id=revision_id,
3541
            ),
3542
            status=200,
3543
            params=params,
3544
        )
3545
        assert res.headers['Content-Disposition'] == 'attachment; filename="Test file.pdf"'  # nopep8
3546
        assert res.content_type == 'application/pdf'
3547
3548
    def test_api__get_pdf_revision_preview__ok__200__force_download_case(self) -> None:
3549
        """