|
5 | 5 | from datetime import datetime |
6 | 6 | from pathlib import Path |
7 | 7 | import shutil |
| 8 | +import tempfile |
8 | 9 | from uuid import uuid4 |
9 | 10 |
|
10 | 11 | import pytest |
@@ -116,3 +117,42 @@ def test_foundry_runner_error(planet_test_files, temp_ddb_conn): |
116 | 117 | assert not fh.get_resource_exists(report_uri) |
117 | 118 | assert not output_loc |
118 | 119 | assert len(list(fh.iter_prefix(audit_files))) == 2 |
| 120 | + |
| 121 | + |
| 122 | +def test_foundry_runner_with_submitted_files_path(movies_test_files, temp_ddb_conn): |
| 123 | + db_file, conn = temp_ddb_conn |
| 124 | + ref_db_file = Path(db_file.parent, "movies_refdata.duckdb").as_posix() |
| 125 | + conn.sql(f"ATTACH '{ref_db_file}' AS movies_refdata") |
| 126 | + conn.read_parquet( |
| 127 | + get_test_file_path("movies/refdata/movies_sequels.parquet").as_posix() |
| 128 | + ).to_table("movies_refdata.sequels") |
| 129 | + processing_folder = Path(tempfile.mkdtemp()).as_posix() |
| 130 | + submitted_files_path = Path(movies_test_files).as_posix() |
| 131 | + sub_id = uuid4().hex |
| 132 | + sub_info = SubmissionInfo( |
| 133 | + submission_id=sub_id, |
| 134 | + dataset_id="movies", |
| 135 | + file_name="good_movies", |
| 136 | + file_extension="json", |
| 137 | + submitting_org="TEST", |
| 138 | + datetime_received=datetime(2025,11,5) |
| 139 | + ) |
| 140 | + |
| 141 | + DuckDBRefDataLoader.connection = conn |
| 142 | + DuckDBRefDataLoader.dataset_config_uri = None |
| 143 | + |
| 144 | + with DDBAuditingManager(db_file.as_uri(), None, conn) as audit_manager: |
| 145 | + dve_pipeline = FoundryDDBPipeline( |
| 146 | + processed_files_path=processing_folder, |
| 147 | + audit_tables=audit_manager, |
| 148 | + connection=conn, |
| 149 | + rules_path=get_test_file_path("movies/movies_ddb.dischema.json").as_posix(), |
| 150 | + submitted_files_path=submitted_files_path, |
| 151 | + reference_data_loader=DuckDBRefDataLoader, |
| 152 | + ) |
| 153 | + output_loc, report_uri, audit_files = dve_pipeline.run_pipeline(sub_info) |
| 154 | + |
| 155 | + assert Path(processing_folder, sub_id, sub_info.file_name_with_ext).exists() |
| 156 | + assert fh.get_resource_exists(report_uri) |
| 157 | + assert len(list(fh.iter_prefix(output_loc))) == 2 |
| 158 | + assert len(list(fh.iter_prefix(audit_files))) == 3 |
0 commit comments