import json import os import pytest DATA_DIR = os.path.join( os.path.dirname(os.path.realpath(__file__)), "data", ) @pytest.fixture def mock_export_id() -> str: return "test_export_id" @pytest.fixture def mock_execution_name() -> str: return "test_execution" @pytest.fixture def mock_json() -> str: s3_data = [ { "source": "path/to/asset/source", "destination": "path/to/s3/output/object", "error_reason": "Test error message1", }, { "source": "path/to/asset/source2", "destination": "path/to/s3/output/object2", "error_reason": "Test error message2", }, { "source": "path/to/asset/source3", "destination": "path/to/s3/output/object3", "error_reason": "Test error message3", }, ] return json.dumps(s3_data) @pytest.fixture def mock_json_with_source_filtered_out() -> list[dict[str, str]]: return [ { "destination": "path/to/s3/output/object", "error_reason": "Test error message1", }, { "destination": "path/to/s3/output/object2", "error_reason": "Test error message2", }, { "destination": "path/to/s3/output/object3", "error_reason": "Test error message3", }, ] @pytest.fixture def mock_json_errors_call_args_list() -> list[list[dict[str, str]]]: return [ [ { "destination": "path/to/s3/output/object", "error_reason": "Test error message1", }, { "destination": "path/to/s3/output/object2", "error_reason": "Test error message2", }, { "destination": "path/to/s3/output/object3", "error_reason": "Test error message3", }, ], [ { "destination": "path/to/s3/output/object4", "error_reason": "Test error message4", }, { "destination": "path/to/s3/output/object5", "error_reason": "Test error message5", }, ], [ { "destination": "path/to/s3/output/object6", "error_reason": "Test error message6", }, { "destination": "path/to/s3/output/object7", "error_reason": "Test error message7", }, ], [ { "destination": "path/to/s3/output/object8", "error_reason": "Test error message8", }, { "destination": "path/to/s3/output/object9", "error_reason": "Test error message9", }, ], [ { "destination": "path/to/s3/output/object10", "error_reason": "Test error message10", }, { "destination": "path/to/s3/output/object10", "error_reason": "Test error message10", }, ], [ { "destination": "path/to/s3/output/object11", "error_reason": "Test error message11", }, { "destination": "path/to/s3/output/object12", "error_reason": "Test error message12", }, ], ] @pytest.fixture def mock_flattened_json_errors() -> list[dict[str, str]]: return [ { "destination": "path/to/s3/output/object", "error_reason": "Test error message1", }, { "destination": "path/to/s3/output/object2", "error_reason": "Test error message2", }, { "destination": "path/to/s3/output/object3", "error_reason": "Test error message3", }, { "destination": "path/to/s3/output/object4", "error_reason": "Test error message4", }, { "destination": "path/to/s3/output/object5", "error_reason": "Test error message5", }, { "destination": "path/to/s3/output/object6", "error_reason": "Test error message6", }, { "destination": "path/to/s3/output/object7", "error_reason": "Test error message7", }, { "destination": "path/to/s3/output/object8", "error_reason": "Test error message8", }, { "destination": "path/to/s3/output/object9", "error_reason": "Test error message9", }, { "destination": "path/to/s3/output/object10", "error_reason": "Test error message10", }, { "destination": "path/to/s3/output/object10", "error_reason": "Test error message10", }, { "destination": "path/to/s3/output/object11", "error_reason": "Test error message11", }, { "destination": "path/to/s3/output/object12", "error_reason": "Test error message12", }, ] @pytest.fixture def mock_flattened_json_errors_serialized() -> str: json_data = [ { "destination": "path/to/s3/output/object", "error_reason": "Test error message1", }, { "destination": "path/to/s3/output/object2", "error_reason": "Test error message2", }, { "destination": "path/to/s3/output/object3", "error_reason": "Test error message3", }, { "destination": "path/to/s3/output/object4", "error_reason": "Test error message4", }, { "destination": "path/to/s3/output/object5", "error_reason": "Test error message5", }, { "destination": "path/to/s3/output/object6", "error_reason": "Test error message6", }, { "destination": "path/to/s3/output/object7", "error_reason": "Test error message7", }, { "destination": "path/to/s3/output/object8", "error_reason": "Test error message8", }, { "destination": "path/to/s3/output/object9", "error_reason": "Test error message9", }, { "destination": "path/to/s3/output/object10", "error_reason": "Test error message10", }, { "destination": "path/to/s3/output/object10", "error_reason": "Test error message10", }, { "destination": "path/to/s3/output/object11", "error_reason": "Test error message11", }, { "destination": "path/to/s3/output/object12", "error_reason": "Test error message12", }, ] return json.dumps(json_data) @pytest.fixture def mock_csv() -> str: """Mock CSV data.""" with open(os.path.join(DATA_DIR, "test.csv")) as fd: return fd.read()