@@ 3576-3633 (lines=58) @@ | ||
3573 | assert dim['width'] == 256 |
|
3574 | assert dim['height'] == 256 |
|
3575 | ||
3576 | def test_api__get_jpeg_preview__ok__200__nominal_case(self) -> None: |
|
3577 | """ |
|
3578 | Set one file of a content |
|
3579 | """ |
|
3580 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
3581 | admin = dbsession.query(models.User) \ |
|
3582 | .filter(models.User.email == '[email protected]') \ |
|
3583 | .one() |
|
3584 | workspace_api = WorkspaceApi( |
|
3585 | current_user=admin, |
|
3586 | session=dbsession, |
|
3587 | config=self.app_config |
|
3588 | ) |
|
3589 | content_api = ContentApi( |
|
3590 | current_user=admin, |
|
3591 | session=dbsession, |
|
3592 | config=self.app_config |
|
3593 | ) |
|
3594 | business_workspace = workspace_api.get_one(1) |
|
3595 | tool_folder = content_api.get_one(1, content_type=content_type_list.Any_SLUG) |
|
3596 | test_file = content_api.create( |
|
3597 | content_type_slug=content_type_list.File.slug, |
|
3598 | workspace=business_workspace, |
|
3599 | parent=tool_folder, |
|
3600 | label='Test file', |
|
3601 | do_save=False, |
|
3602 | do_notify=False, |
|
3603 | ) |
|
3604 | test_file.file_extension = '.txt' |
|
3605 | test_file.depot_file = FileIntent( |
|
3606 | b'Test file', |
|
3607 | 'Test_file.txt', |
|
3608 | 'text/plain', |
|
3609 | ) |
|
3610 | dbsession.flush() |
|
3611 | transaction.commit() |
|
3612 | content_id = int(test_file.content_id) |
|
3613 | image = create_1000px_png_test_image() |
|
3614 | self.testapp.authorization = ( |
|
3615 | 'Basic', |
|
3616 | ( |
|
3617 | '[email protected]', |
|
3618 | '[email protected]' |
|
3619 | ) |
|
3620 | ) |
|
3621 | self.testapp.put( |
|
3622 | '/api/v2/workspaces/1/files/{}/raw/{}'.format(content_id, image.name), |
|
3623 | upload_files=[ |
|
3624 | ('files', image.name, image.getvalue()) |
|
3625 | ], |
|
3626 | status=204, |
|
3627 | ) |
|
3628 | res = self.testapp.get( |
|
3629 | '/api/v2/workspaces/1/files/{}/preview/jpg/'.format(content_id), |
|
3630 | status=200 |
|
3631 | ) |
|
3632 | assert res.body != image.getvalue() |
|
3633 | assert res.content_type == 'image/jpeg' |
|
3634 | ||
3635 | def test_api__get_jpeg_preview__ok__200__force_download_case(self) -> None: |
|
3636 | """ |
|
@@ 4060-4113 (lines=54) @@ | ||
4057 | new_image = Image.open(io.BytesIO(res.body)) |
|
4058 | assert 256, 256 == new_image.size |
|
4059 | ||
4060 | def test_api__get_sized_jpeg_preview__err__400__SizeNotAllowed(self) -> None: # nopep8 |
|
4061 | """ |
|
4062 | get 256x256 preview of a txt file |
|
4063 | """ |
|
4064 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
4065 | admin = dbsession.query(models.User) \ |
|
4066 | .filter(models.User.email == '[email protected]') \ |
|
4067 | .one() |
|
4068 | workspace_api = WorkspaceApi( |
|
4069 | current_user=admin, |
|
4070 | session=dbsession, |
|
4071 | config=self.app_config |
|
4072 | ) |
|
4073 | content_api = ContentApi( |
|
4074 | current_user=admin, |
|
4075 | session=dbsession, |
|
4076 | config=self.app_config |
|
4077 | ) |
|
4078 | business_workspace = workspace_api.get_one(1) |
|
4079 | tool_folder = content_api.get_one(1, content_type=content_type_list.Any_SLUG) |
|
4080 | test_file = content_api.create( |
|
4081 | content_type_slug=content_type_list.File.slug, |
|
4082 | workspace=business_workspace, |
|
4083 | parent=tool_folder, |
|
4084 | label='Test file', |
|
4085 | do_save=True, |
|
4086 | do_notify=False, |
|
4087 | ) |
|
4088 | dbsession.flush() |
|
4089 | transaction.commit() |
|
4090 | content_id = int(test_file.content_id) |
|
4091 | image = create_1000px_png_test_image() |
|
4092 | self.testapp.authorization = ( |
|
4093 | 'Basic', |
|
4094 | ( |
|
4095 | '[email protected]', |
|
4096 | '[email protected]' |
|
4097 | ) |
|
4098 | ) |
|
4099 | self.testapp.put( |
|
4100 | '/api/v2/workspaces/1/files/{}/raw/{}'.format(content_id, image.name), |
|
4101 | upload_files=[ |
|
4102 | ('files', image.name, image.getvalue()) |
|
4103 | ], |
|
4104 | status=204, |
|
4105 | ) |
|
4106 | filename = 'test_image_512x512.jpg' |
|
4107 | res = self.testapp.get( |
|
4108 | '/api/v2/workspaces/1/files/{}/preview/jpg/512x512/{}'.format(content_id, filename), # nopep8 |
|
4109 | status=400 |
|
4110 | ) |
|
4111 | assert res.json_body |
|
4112 | assert 'code' in res.json_body |
|
4113 | assert res.json_body['code'] == error.PREVIEW_DIM_NOT_ALLOWED |
|
4114 | ||
4115 | def test_api__get_sized_jpeg_revision_preview__ok__200__nominal_case(self) -> None: # nopep8 |
|
4116 | """ |
|
@@ 3761-3814 (lines=54) @@ | ||
3758 | assert 'code' in res.json.keys() |
|
3759 | assert res.json_body['code'] == error.UNAIVALABLE_PREVIEW |
|
3760 | ||
3761 | def test_api__get_sized_jpeg_preview__ok__200__nominal_case(self) -> None: |
|
3762 | """ |
|
3763 | get 256x256 preview of a txt file |
|
3764 | """ |
|
3765 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
3766 | admin = dbsession.query(models.User) \ |
|
3767 | .filter(models.User.email == '[email protected]') \ |
|
3768 | .one() |
|
3769 | workspace_api = WorkspaceApi( |
|
3770 | current_user=admin, |
|
3771 | session=dbsession, |
|
3772 | config=self.app_config |
|
3773 | ) |
|
3774 | content_api = ContentApi( |
|
3775 | current_user=admin, |
|
3776 | session=dbsession, |
|
3777 | config=self.app_config |
|
3778 | ) |
|
3779 | business_workspace = workspace_api.get_one(1) |
|
3780 | tool_folder = content_api.get_one(1, content_type=content_type_list.Any_SLUG) |
|
3781 | test_file = content_api.create( |
|
3782 | content_type_slug=content_type_list.File.slug, |
|
3783 | workspace=business_workspace, |
|
3784 | parent=tool_folder, |
|
3785 | label='Test file', |
|
3786 | do_save=True, |
|
3787 | do_notify=False, |
|
3788 | ) |
|
3789 | dbsession.flush() |
|
3790 | transaction.commit() |
|
3791 | content_id = int(test_file.content_id) |
|
3792 | image = create_1000px_png_test_image() |
|
3793 | self.testapp.authorization = ( |
|
3794 | 'Basic', |
|
3795 | ( |
|
3796 | '[email protected]', |
|
3797 | '[email protected]' |
|
3798 | ) |
|
3799 | ) |
|
3800 | self.testapp.put( |
|
3801 | '/api/v2/workspaces/1/files/{}/raw/{}'.format(content_id, image.name), |
|
3802 | upload_files=[ |
|
3803 | ('files', image.name, image.getvalue()) |
|
3804 | ], |
|
3805 | status=204, |
|
3806 | ) |
|
3807 | res = self.testapp.get( |
|
3808 | '/api/v2/workspaces/1/files/{}/preview/jpg/256x256/{}'.format(content_id, image.name), # nopep8 |
|
3809 | status=200 |
|
3810 | ) |
|
3811 | assert res.body != image.getvalue() |
|
3812 | assert res.content_type == 'image/jpeg' |
|
3813 | new_image = Image.open(io.BytesIO(res.body)) |
|
3814 | assert 256, 256 == new_image.size |
|
3815 | ||
3816 | def test_api__get_sized_jpeg_preview__err_400__UnavailablePreview(self) -> None: |
|
3817 | """ |
|
@@ 4415-4467 (lines=53) @@ | ||
4412 | assert res.headers['Content-Disposition'] == 'attachment; filename="{}"; filename*=UTF-8\'\'{};'.format(filename, filename) # nopep8 |
|
4413 | assert res.content_type == 'application/pdf' |
|
4414 | ||
4415 | def test_api__get_full_pdf_preview__err__400__png_UnavailablePreviewType(self) -> None: # nopep8 |
|
4416 | """ |
|
4417 | get full pdf preview of a png image -> error UnavailablePreviewType |
|
4418 | """ |
|
4419 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
4420 | admin = dbsession.query(models.User) \ |
|
4421 | .filter(models.User.email == '[email protected]') \ |
|
4422 | .one() |
|
4423 | workspace_api = WorkspaceApi( |
|
4424 | current_user=admin, |
|
4425 | session=dbsession, |
|
4426 | config=self.app_config |
|
4427 | ) |
|
4428 | content_api = ContentApi( |
|
4429 | current_user=admin, |
|
4430 | session=dbsession, |
|
4431 | config=self.app_config |
|
4432 | ) |
|
4433 | business_workspace = workspace_api.get_one(1) |
|
4434 | tool_folder = content_api.get_one(1, content_type=content_type_list.Any_SLUG) |
|
4435 | test_file = content_api.create( |
|
4436 | content_type_slug=content_type_list.File.slug, |
|
4437 | workspace=business_workspace, |
|
4438 | parent=tool_folder, |
|
4439 | label='Test file', |
|
4440 | do_save=True, |
|
4441 | do_notify=False, |
|
4442 | ) |
|
4443 | dbsession.flush() |
|
4444 | transaction.commit() |
|
4445 | content_id = int(test_file.content_id) |
|
4446 | image = create_1000px_png_test_image() |
|
4447 | self.testapp.authorization = ( |
|
4448 | 'Basic', |
|
4449 | ( |
|
4450 | '[email protected]', |
|
4451 | '[email protected]' |
|
4452 | ) |
|
4453 | ) |
|
4454 | self.testapp.put( |
|
4455 | '/api/v2/workspaces/1/files/{}/raw/{}'.format(content_id, image.name), |
|
4456 | upload_files=[ |
|
4457 | ('files', image.name, image.getvalue()) |
|
4458 | ], |
|
4459 | status=204, |
|
4460 | ) |
|
4461 | res = self.testapp.get( |
|
4462 | '/api/v2/workspaces/1/files/{}/preview/pdf/full/{}'.format(content_id, image.name), # nopep8 |
|
4463 | status=400 |
|
4464 | ) |
|
4465 | assert res.json_body |
|
4466 | assert 'code' in res.json_body |
|
4467 | assert res.json_body['code'] == error.UNAVAILABLE_PREVIEW_TYPE |
|
4468 | ||
4469 | def test_api__get_full_pdf_preview__err__400__png_UnavailablePreview(self) -> None: # nopep8 |
|
4470 | """ |
|
@@ 3281-3333 (lines=53) @@ | ||
3278 | assert 'code' in res.json.keys() |
|
3279 | assert res.json_body['code'] == error.PARENT_NOT_FOUND |
|
3280 | ||
3281 | def test_api__set_file_raw__ok_200__nominal_case(self) -> None: |
|
3282 | """ |
|
3283 | Set one file of a content |
|
3284 | """ |
|
3285 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
3286 | admin = dbsession.query(models.User) \ |
|
3287 | .filter(models.User.email == '[email protected]') \ |
|
3288 | .one() |
|
3289 | workspace_api = WorkspaceApi( |
|
3290 | current_user=admin, |
|
3291 | session=dbsession, |
|
3292 | config=self.app_config |
|
3293 | ) |
|
3294 | content_api = ContentApi( |
|
3295 | current_user=admin, |
|
3296 | session=dbsession, |
|
3297 | config=self.app_config |
|
3298 | ) |
|
3299 | business_workspace = workspace_api.get_one(1) |
|
3300 | tool_folder = content_api.get_one(1, content_type=content_type_list.Any_SLUG) |
|
3301 | test_file = content_api.create( |
|
3302 | content_type_slug=content_type_list.File.slug, |
|
3303 | workspace=business_workspace, |
|
3304 | parent=tool_folder, |
|
3305 | label='Test file', |
|
3306 | do_save=False, |
|
3307 | do_notify=False, |
|
3308 | ) |
|
3309 | dbsession.flush() |
|
3310 | transaction.commit() |
|
3311 | content_id = int(test_file.content_id) |
|
3312 | image = create_1000px_png_test_image() |
|
3313 | self.testapp.authorization = ( |
|
3314 | 'Basic', |
|
3315 | ( |
|
3316 | '[email protected]', |
|
3317 | '[email protected]' |
|
3318 | ) |
|
3319 | ) |
|
3320 | self.testapp.put( |
|
3321 | '/api/v2/workspaces/1/files/{}/raw/{}'.format(content_id, image.name), |
|
3322 | upload_files=[ |
|
3323 | ('files', image.name, image.getvalue()) |
|
3324 | ], |
|
3325 | status=204, |
|
3326 | ) |
|
3327 | res = self.testapp.get( |
|
3328 | '/api/v2/workspaces/1/files/{}/raw/{}'.format(content_id, image.name), |
|
3329 | status=200 |
|
3330 | ) |
|
3331 | assert res.body == image.getvalue() |
|
3332 | assert res.content_type == 'image/png' |
|
3333 | assert res.content_length == len(image.getvalue()) |
|
3334 | ||
3335 | def test_api__set_file_raw__ok_200__filename_already_used(self) -> None: |
|
3336 | """ |
|
@@ 3402-3452 (lines=51) @@ | ||
3399 | assert res.json_body['code'] == error.CONTENT_FILENAME_ALREADY_USED_IN_FOLDER # nopep8 |
|
3400 | ||
3401 | ||
3402 | def test_api__set_file_raw__err_400__closed_status_file(self) -> None: |
|
3403 | """ |
|
3404 | Set one file of a content |
|
3405 | """ |
|
3406 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
3407 | admin = dbsession.query(models.User) \ |
|
3408 | .filter(models.User.email == '[email protected]') \ |
|
3409 | .one() |
|
3410 | workspace_api = WorkspaceApi( |
|
3411 | current_user=admin, |
|
3412 | session=dbsession, |
|
3413 | config=self.app_config |
|
3414 | ) |
|
3415 | content_api = ContentApi( |
|
3416 | current_user=admin, |
|
3417 | session=dbsession, |
|
3418 | config=self.app_config |
|
3419 | ) |
|
3420 | business_workspace = workspace_api.get_one(1) |
|
3421 | tool_folder = content_api.get_one(1, content_type=content_type_list.Any_SLUG) |
|
3422 | test_file = content_api.create( |
|
3423 | content_type_slug=content_type_list.File.slug, |
|
3424 | workspace=business_workspace, |
|
3425 | parent=tool_folder, |
|
3426 | label='Test file', |
|
3427 | do_save=False, |
|
3428 | do_notify=False, |
|
3429 | ) |
|
3430 | test_file.status = 'closed-validated' |
|
3431 | content_api.save(test_file) |
|
3432 | dbsession.flush() |
|
3433 | transaction.commit() |
|
3434 | content_id = int(test_file.content_id) |
|
3435 | image = create_1000px_png_test_image() |
|
3436 | self.testapp.authorization = ( |
|
3437 | 'Basic', |
|
3438 | ( |
|
3439 | '[email protected]', |
|
3440 | '[email protected]' |
|
3441 | ) |
|
3442 | ) |
|
3443 | res = self.testapp.put( |
|
3444 | '/api/v2/workspaces/1/files/{}/raw/{}'.format(content_id, image.name), |
|
3445 | upload_files=[ |
|
3446 | ('files', image.name, image.getvalue()) |
|
3447 | ], |
|
3448 | status=400, |
|
3449 | ) |
|
3450 | assert isinstance(res.json, dict) |
|
3451 | assert 'code' in res.json.keys() |
|
3452 | assert res.json_body['code'] == error.CONTENT_IN_NOT_EDITABLE_STATE |
|
3453 | ||
3454 | @pytest.mark.xfail( |
|
3455 | raises=AssertionError, |