Skip to content

Commit da29f81

Browse files
committed
BE: Add unit tests
1 parent 59a9471 commit da29f81

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

tests/integration/ingestion/test_file_ingestion.py

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import copy
12
import zoneinfo
23

34
import pytest
@@ -175,3 +176,81 @@ def test_creates_api_time_series_from_data(
175176
core_time_series.embargo.strftime("%Y-%m-%d %H:%M:%S")
176177
== data["time_series"][0]["embargo"]
177178
)
179+
180+
@pytest.mark.django_db
181+
def test_reingests_with_updated_embargo_and_later_refresh_date(
182+
self,
183+
example_headline_data: type_hints.INCOMING_DATA_TYPE,
184+
example_time_series_data: type_hints.INCOMING_DATA_TYPE,
185+
):
186+
"""
187+
Given headline and time series data ingested once
188+
When the same data is ingested again with a later refresh date
189+
and an updated embargo timestamp
190+
Then the latest records for CoreHeadline, CoreTimeSeries, and APITimeSeries
191+
reflect the updated embargo timestamps
192+
"""
193+
194+
# Before ingestion
195+
assert CoreHeadline.objects.all().count() == 0
196+
assert CoreTimeSeries.objects.all().count() == 0
197+
assert APITimeSeries.objects.all().count() == 0
198+
199+
# Given
200+
initial_headline_data = copy.deepcopy(example_headline_data)
201+
initial_timeseries_data = copy.deepcopy(example_time_series_data)
202+
updated_headline_data = copy.deepcopy(initial_headline_data)
203+
updated_timeseries_data = copy.deepcopy(initial_timeseries_data)
204+
205+
# When
206+
data_ingester(data=initial_headline_data)
207+
data_ingester(data=initial_timeseries_data)
208+
209+
# Reingest with updated embargo and later refresh date
210+
updated_headline_refresh_date = "2023-11-10"
211+
updated_timeseries_refresh_date = "2023-11-21"
212+
updated_headline_embargo = "2023-11-18 08:00:00"
213+
updated_timeseries_embargo = "2023-11-19 09:15:00"
214+
215+
updated_headline_data["refresh_date"] = updated_headline_refresh_date
216+
for record in updated_headline_data["data"]:
217+
record["embargo"] = updated_headline_embargo
218+
219+
updated_timeseries_data["refresh_date"] = updated_timeseries_refresh_date
220+
for record in updated_timeseries_data["time_series"]:
221+
record["embargo"] = updated_timeseries_embargo
222+
223+
data_ingester(data=updated_headline_data)
224+
data_ingester(data=updated_timeseries_data)
225+
226+
# Then
227+
updated_headlines = CoreHeadline.objects.filter(
228+
refresh_date__date=updated_headline_refresh_date
229+
)
230+
assert len(updated_headline_data["data"]) == 2
231+
for record in updated_headlines:
232+
assert (
233+
record.embargo.strftime("%Y-%m-%d %H:%M:%S") == updated_headline_embargo
234+
)
235+
236+
updated_core_timeseries = CoreTimeSeries.objects.filter(
237+
refresh_date__date=updated_timeseries_refresh_date
238+
)
239+
assert len(updated_timeseries_data["time_series"]) == 2
240+
for record in updated_core_timeseries:
241+
assert (
242+
record.embargo.strftime("%Y-%m-%d %H:%M:%S")
243+
== updated_timeseries_embargo
244+
)
245+
246+
updated_api_timeseries = APITimeSeries.objects.filter(
247+
refresh_date__date=updated_timeseries_refresh_date
248+
)
249+
assert updated_api_timeseries.count() == len(
250+
updated_timeseries_data["time_series"]
251+
)
252+
for record in updated_api_timeseries:
253+
assert (
254+
record.embargo.strftime("%Y-%m-%d %H:%M:%S")
255+
== updated_timeseries_embargo
256+
)

0 commit comments

Comments
 (0)