"""Functional tests for the get_presigned_urls_for_asset_upload endpoint.""" import freezegun import pytest from flask.testing import FlaskClient from moto import mock_aws from assets.models import asset_upload as asset_upload_model @pytest.fixture def asset_upload_fixture(db_fixture: None) -> None: """Set up the ows_assets db.""" asset_upload_model.create_asset_upload_with_context( user_id="alw:12345", asset_upload_type_id=1, token="some_s3_multipart_upload_id", filename="some_filename", product_id=123, upc=123456789012, track_unique_id=456, is_correction=False, original_filename="some_original_filename", ) @freezegun.freeze_time("2024-02-27 21:58:08.183726") @mock_aws def test_get_presigned_urls_for_asset_upload( asset_upload_fixture: None, fixture_client: FlaskClient ) -> None: """Test get_presigned_urls_for_asset_upload success.""" result = fixture_client.get( "/v2/assets/upload/some_filename", query_string={"part_numbers": "1,2,3"}, headers={ "Grass-Account-Type": "vendor", "Grass-Account-ID": "234234", "Orchard-User-ID": "alw:12345", }, ) assert result.status_code == 200 assert result.json == { "part_number_to_presigned_url": { "1": "https://test-orcd-raw-assets.s3-accelerate.amazonaws.com/some_filename?uploadId=some_s3_multipart_upload_id&partNumber=1&AWSAccessKeyId=FOOBARKEY&Signature=d%2BXW3GShQXFSfwsScSDuZGbk888%3D&x-amz-security-token=fake_session_token&Expires=1709071988", # noqa: E501 "2": "https://test-orcd-raw-assets.s3-accelerate.amazonaws.com/some_filename?uploadId=some_s3_multipart_upload_id&partNumber=2&AWSAccessKeyId=FOOBARKEY&Signature=B%2FCSIxjrSRK2gCHBnvHHcyQrdbk%3D&x-amz-security-token=fake_session_token&Expires=1709071988", # noqa: E501 "3": "https://test-orcd-raw-assets.s3-accelerate.amazonaws.com/some_filename?uploadId=some_s3_multipart_upload_id&partNumber=3&AWSAccessKeyId=FOOBARKEY&Signature=L701FFY1BtZNPgg8ITPjJNcOj3o%3D&x-amz-security-token=fake_session_token&Expires=1709071988", # noqa: E501 } }