@@ 2369-2431 (lines=63) @@ | ||
2366 | assert res.body != image.getvalue() |
|
2367 | assert res.content_type == 'image/jpeg' |
|
2368 | ||
2369 | def test_api__get_jpeg_preview__ok__200__force_download_case(self) -> None: |
|
2370 | """ |
|
2371 | Set one file of a content |
|
2372 | """ |
|
2373 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2374 | admin = dbsession.query(models.User) \ |
|
2375 | .filter(models.User.email == '[email protected]') \ |
|
2376 | .one() |
|
2377 | workspace_api = WorkspaceApi( |
|
2378 | current_user=admin, |
|
2379 | session=dbsession, |
|
2380 | config=self.app_config |
|
2381 | ) |
|
2382 | content_api = ContentApi( |
|
2383 | current_user=admin, |
|
2384 | session=dbsession, |
|
2385 | config=self.app_config |
|
2386 | ) |
|
2387 | business_workspace = workspace_api.get_one(1) |
|
2388 | tool_folder = content_api.get_one(1, content_type=CONTENT_TYPES.Any_SLUG) |
|
2389 | test_file = content_api.create( |
|
2390 | content_type_slug=CONTENT_TYPES.File.slug, |
|
2391 | workspace=business_workspace, |
|
2392 | parent=tool_folder, |
|
2393 | label='Test file', |
|
2394 | do_save=False, |
|
2395 | do_notify=False, |
|
2396 | ) |
|
2397 | test_file.file_extension = '.txt' |
|
2398 | test_file.depot_file = FileIntent( |
|
2399 | b'Test file', |
|
2400 | 'Test_file.txt', |
|
2401 | 'text/plain', |
|
2402 | ) |
|
2403 | dbsession.flush() |
|
2404 | transaction.commit() |
|
2405 | content_id = int(test_file.content_id) |
|
2406 | image = create_1000px_png_test_image() |
|
2407 | self.testapp.authorization = ( |
|
2408 | 'Basic', |
|
2409 | ( |
|
2410 | '[email protected]', |
|
2411 | '[email protected]' |
|
2412 | ) |
|
2413 | ) |
|
2414 | self.testapp.put( |
|
2415 | '/api/v2/workspaces/1/files/{}/raw'.format(content_id), |
|
2416 | upload_files=[ |
|
2417 | ('files', image.name, image.getvalue()) |
|
2418 | ], |
|
2419 | status=204, |
|
2420 | ) |
|
2421 | params = { |
|
2422 | 'force_download': 1, |
|
2423 | } |
|
2424 | res = self.testapp.get( |
|
2425 | '/api/v2/workspaces/1/files/{}/preview/jpg'.format(content_id), |
|
2426 | status=200, |
|
2427 | params=params |
|
2428 | ) |
|
2429 | assert res.headers['Content-Disposition'] == 'attachment; filename="test_image_page_1.jpg"' # nopep8 |
|
2430 | assert res.body != image.getvalue() |
|
2431 | assert res.content_type == 'image/jpeg' |
|
2432 | ||
2433 | def test_api__get_jpeg_preview__err_400__UnavailablePreview(self) -> None: |
|
2434 | """ |
|
@@ 2594-2652 (lines=59) @@ | ||
2591 | params=params, |
|
2592 | ) |
|
2593 | ||
2594 | def test_api__get_sized_jpeg_preview__ok__200__force_download_case(self) -> None: |
|
2595 | """ |
|
2596 | get 256x256 preview of a txt file |
|
2597 | """ |
|
2598 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2599 | admin = dbsession.query(models.User) \ |
|
2600 | .filter(models.User.email == '[email protected]') \ |
|
2601 | .one() |
|
2602 | workspace_api = WorkspaceApi( |
|
2603 | current_user=admin, |
|
2604 | session=dbsession, |
|
2605 | config=self.app_config |
|
2606 | ) |
|
2607 | content_api = ContentApi( |
|
2608 | current_user=admin, |
|
2609 | session=dbsession, |
|
2610 | config=self.app_config |
|
2611 | ) |
|
2612 | business_workspace = workspace_api.get_one(1) |
|
2613 | tool_folder = content_api.get_one(1, content_type=CONTENT_TYPES.Any_SLUG) |
|
2614 | test_file = content_api.create( |
|
2615 | content_type_slug=CONTENT_TYPES.File.slug, |
|
2616 | workspace=business_workspace, |
|
2617 | parent=tool_folder, |
|
2618 | label='Test file', |
|
2619 | do_save=True, |
|
2620 | do_notify=False, |
|
2621 | ) |
|
2622 | dbsession.flush() |
|
2623 | transaction.commit() |
|
2624 | content_id = int(test_file.content_id) |
|
2625 | image = create_1000px_png_test_image() |
|
2626 | self.testapp.authorization = ( |
|
2627 | 'Basic', |
|
2628 | ( |
|
2629 | '[email protected]', |
|
2630 | '[email protected]' |
|
2631 | ) |
|
2632 | ) |
|
2633 | self.testapp.put( |
|
2634 | '/api/v2/workspaces/1/files/{}/raw'.format(content_id), |
|
2635 | upload_files=[ |
|
2636 | ('files', image.name, image.getvalue()) |
|
2637 | ], |
|
2638 | status=204, |
|
2639 | ) |
|
2640 | params = { |
|
2641 | 'force_download': 1, |
|
2642 | } |
|
2643 | res = self.testapp.get( |
|
2644 | '/api/v2/workspaces/1/files/{}/preview/jpg/256x256'.format(content_id), # nopep8 |
|
2645 | status=200, |
|
2646 | params=params, |
|
2647 | ) |
|
2648 | assert res.body != image.getvalue() |
|
2649 | assert res.headers['Content-Disposition'] == 'attachment; filename="test_image_page_1_256x256.jpg"' # nopep8 |
|
2650 | assert res.content_type == 'image/jpeg' |
|
2651 | new_image = Image.open(io.BytesIO(res.body)) |
|
2652 | assert 256, 256 == new_image.size |
|
2653 | ||
2654 | def test_api__get_sized_jpeg_preview__err__400__SizeNotAllowed(self) -> None: # nopep8 |
|
2655 | """ |
|
@@ 2486-2539 (lines=54) @@ | ||
2483 | params=params |
|
2484 | ) |
|
2485 | ||
2486 | def test_api__get_sized_jpeg_preview__ok__200__nominal_case(self) -> None: |
|
2487 | """ |
|
2488 | get 256x256 preview of a txt file |
|
2489 | """ |
|
2490 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
2491 | admin = dbsession.query(models.User) \ |
|
2492 | .filter(models.User.email == '[email protected]') \ |
|
2493 | .one() |
|
2494 | workspace_api = WorkspaceApi( |
|
2495 | current_user=admin, |
|
2496 | session=dbsession, |
|
2497 | config=self.app_config |
|
2498 | ) |
|
2499 | content_api = ContentApi( |
|
2500 | current_user=admin, |
|
2501 | session=dbsession, |
|
2502 | config=self.app_config |
|
2503 | ) |
|
2504 | business_workspace = workspace_api.get_one(1) |
|
2505 | tool_folder = content_api.get_one(1, content_type=CONTENT_TYPES.Any_SLUG) |
|
2506 | test_file = content_api.create( |
|
2507 | content_type_slug=CONTENT_TYPES.File.slug, |
|
2508 | workspace=business_workspace, |
|
2509 | parent=tool_folder, |
|
2510 | label='Test file', |
|
2511 | do_save=True, |
|
2512 | do_notify=False, |
|
2513 | ) |
|
2514 | dbsession.flush() |
|
2515 | transaction.commit() |
|
2516 | content_id = int(test_file.content_id) |
|
2517 | image = create_1000px_png_test_image() |
|
2518 | self.testapp.authorization = ( |
|
2519 | 'Basic', |
|
2520 | ( |
|
2521 | '[email protected]', |
|
2522 | '[email protected]' |
|
2523 | ) |
|
2524 | ) |
|
2525 | self.testapp.put( |
|
2526 | '/api/v2/workspaces/1/files/{}/raw'.format(content_id), |
|
2527 | upload_files=[ |
|
2528 | ('files', image.name, image.getvalue()) |
|
2529 | ], |
|
2530 | status=204, |
|
2531 | ) |
|
2532 | res = self.testapp.get( |
|
2533 | '/api/v2/workspaces/1/files/{}/preview/jpg/256x256'.format(content_id), # nopep8 |
|
2534 | status=200 |
|
2535 | ) |
|
2536 | assert res.body != image.getvalue() |
|
2537 | assert res.content_type == 'image/jpeg' |
|
2538 | new_image = Image.open(io.BytesIO(res.body)) |
|
2539 | assert 256, 256 == new_image.size |
|
2540 | ||
2541 | def test_api__get_sized_jpeg_preview__err_400__UnavailablePreview(self) -> None: |
|
2542 | """ |