8
8
import pytest
9
9
from pyarrow import fs
10
10
11
+ from tests .utils import generate_sample_records
11
12
from timdex_dataset_api .dataset import (
12
13
DatasetNotLoadedError ,
13
14
TIMDEXDataset ,
@@ -466,13 +467,31 @@ def test_dataset_current_records_index_filtering_accurate_records_yielded(
466
467
467
468
468
469
@pytest .mark .freeze_time ("2025-05-22 01:23:45.567890" )
469
- def test_dataset_write_includes_minted_run_timestamp (
470
- dataset_with_same_day_runs ,
471
- ):
470
+ def test_dataset_write_includes_minted_run_timestamp (tmp_path ):
471
+ # create dataset
472
+ location = str (tmp_path / "one_run_at_frozen_time" )
473
+ os .mkdir (location )
474
+ timdex_dataset = TIMDEXDataset (location )
475
+
476
+ run_id = "abc123"
477
+
478
+ # perform a single ETL run that should pickup the frozen time for run_timestamp
479
+ records = generate_sample_records (
480
+ 10 ,
481
+ timdex_record_id_prefix = "alma" ,
482
+ source = "alma" ,
483
+ run_date = "2025-05-22" ,
484
+ run_type = "full" ,
485
+ action = "index" ,
486
+ run_id = run_id ,
487
+ )
488
+ timdex_dataset .write (records )
489
+ timdex_dataset .load ()
490
+
472
491
# assert TIMDEXDataset.write() applies current time as run_timestamp
473
- row_dict = next (dataset_with_same_day_runs .read_dicts_iter ())
474
- assert "run_timestamp" in row_dict
475
- assert row_dict ["run_timestamp" ] == datetime (
492
+ run_row_dict = next (timdex_dataset .read_dicts_iter ())
493
+ assert "run_timestamp" in run_row_dict
494
+ assert run_row_dict ["run_timestamp" ] == datetime (
476
495
2025 ,
477
496
5 ,
478
497
22 ,
@@ -483,8 +502,8 @@ def test_dataset_write_includes_minted_run_timestamp(
483
502
tzinfo = UTC ,
484
503
)
485
504
486
- # assert same time is used for entire batch
487
- df = dataset_with_same_day_runs .read_dataframe ()
505
+ # assert the same run_timestamp is applied to all rows in the run
506
+ df = timdex_dataset .read_dataframe (run_id = run_id )
488
507
assert len (list (df .run_timestamp .unique ())) == 1
489
508
490
509
0 commit comments