Skip to content

Commit 03de50a

Browse files
committed
Ingester: Fixing imports, calling store_latest after default store method, adding --latest-table to cli.
1 parent e0f34b0 commit 03de50a

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

ingester/datalake_ingester/storage.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ def store_latest(self, record):
7878
expression_attribute_values = {
7979
':new_start': {'N': str(record['metadata']['start'])}
8080
}
81+
82+
if record['metadata']['work_id'] is None:
83+
work_id_value = {'BOOL': False}
84+
else:
85+
work_id_value = {'S': str(record['metadata']['work_id'])}
86+
8187
record = {
8288
'what_where_key': {"S": record['metadata']['what']+':'+record['metadata']['where']},
8389
'time_index_key': {"S": record['time_index_key']},
@@ -108,9 +114,7 @@ def store_latest(self, record):
108114
'where': {
109115
'S': str(record['metadata']['where'])
110116
},
111-
'work_id': {
112-
'S': str(record['metadata']['work_id'])
113-
}
117+
'work_id': work_id_value
114118
}
115119
},
116120
'url': {"S": record['url']},

ingester/tests/test_ingester.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,17 @@ def test_ingest_random(storage, dynamodb_records_table, random_s3_file_maker):
3636
def test_ingest_random_latest(storage, dynamodb_latest_table, random_s3_file_maker):
3737
storage.latest_table_name = 'latest'
3838
url, metadata = random_s3_file_maker()
39-
if metadata['work_id'] == 'None':
40-
metadata['work_id'] = None
4139
ingester = Ingester(storage)
4240
ingester.ingest(url)
4341
records = [dict(r) for r in dynamodb_latest_table.scan()]
44-
def convert_metadata(metadata):
45-
return {k: (decimal.Decimal(str(v)) if isinstance(v, (int, float)) else v) for k, v in metadata.items()}
46-
47-
converted_metadata = convert_metadata(metadata)
4842

43+
def convert_records(records):
44+
return {k: (decimal.Decimal(str(v)) if isinstance(v, (int, float)) else v) for k, v in records[0].items()}
45+
46+
converted_records = convert_records(records)
4947
assert len(records) >= 1
5048
for r in records:
51-
assert r['metadata'] == converted_metadata
49+
assert r['metadata'] == converted_records['metadata']
5250

5351

5452
def test_ingest_no_end(storage, dynamodb_records_table, s3_file_from_metadata,

0 commit comments

Comments
 (0)