Skip to content

Commit 76c2125

Browse files
committed
Formatted test file
1 parent 59b8a96 commit 76c2125

1 file changed

Lines changed: 39 additions & 26 deletions

File tree

tests/utils/manual_s3_dynamo_upload_tests.py

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,31 @@
1-
import os
21
import json
3-
import tempfile
4-
import subprocess
5-
from pathlib import Path
6-
import pytest
72

83
import boto3
4+
import pytest
95
from moto import mock_aws
106

11-
from scripts.manual_uploads.manual_s3_dynamo_upload import run_upload, map_dynamo_type
7+
from scripts.manual_uploads.manual_s3_dynamo_upload import map_dynamo_type, run_upload
128

139

1410
@pytest.fixture
1511
def test_data_dir(tmp_path):
1612
# {"NHS_NUMBER": "C456", "ATTRIBUTE_TYPE": "COHORTS", "COHORT_MEMBERSHIPS": [{"COHORT_LABEL": "under_75", "DATE_JOINED": "2025-01-01"},{"COHORT_LABEL": "over_75", "DATE_JOINED": "2025-01-01"}], "ACTION_FLAG": "ADD", "HASH": "fake_hash_delete_sim", "sync_time": "2025-05-01 12:00:00"}
1713
data = [
18-
{"NHS_NUMBER": "1234567890", "ATTRIBUTE_TYPE": "COHORTS", "COHORT_MEMBERSHIPS": [{"COHORT_LABEL": "under_75", "DATE_JOINED": "2025-01-01"}]},
19-
{"NHS_NUMBER": "2345678901", "ATTRIBUTE_TYPE": "COHORTS", "COHORT_MEMBERSHIPS": [{"COHORT_LABEL": "over_75", "DATE_JOINED": "2025-01-01"}]},
20-
{"NHS_NUMBER": "3456789012", "ATTRIBUTE_TYPE": "COHORTS", "COHORT_MEMBERSHIPS": [{"COHORT_LABEL": "16+_covid", "DATE_JOINED": "2025-01-01"}]}
14+
{
15+
"NHS_NUMBER": "1234567890",
16+
"ATTRIBUTE_TYPE": "COHORTS",
17+
"COHORT_MEMBERSHIPS": [{"COHORT_LABEL": "under_75", "DATE_JOINED": "2025-01-01"}],
18+
},
19+
{
20+
"NHS_NUMBER": "2345678901",
21+
"ATTRIBUTE_TYPE": "COHORTS",
22+
"COHORT_MEMBERSHIPS": [{"COHORT_LABEL": "over_75", "DATE_JOINED": "2025-01-01"}],
23+
},
24+
{
25+
"NHS_NUMBER": "3456789012",
26+
"ATTRIBUTE_TYPE": "COHORTS",
27+
"COHORT_MEMBERSHIPS": [{"COHORT_LABEL": "16+_covid", "DATE_JOINED": "2025-01-01"}],
28+
},
2129
]
2230
file_path = tmp_path / "test.json"
2331
with open(file_path, "w") as f:
@@ -36,36 +44,41 @@ def test_script_cli_end_to_end(test_data_dir):
3644
dynamo_table = f"api-{env}-datastore"
3745

3846
s3 = boto3.client("s3", region_name=region)
39-
s3.create_bucket(
40-
Bucket=s3_bucket,
41-
CreateBucketConfiguration={"LocationConstraint": region}
42-
)
47+
s3.create_bucket(Bucket=s3_bucket, CreateBucketConfiguration={"LocationConstraint": region})
4348

4449
dynamodb = boto3.client("dynamodb", region_name=region)
4550
dynamodb.create_table(
4651
TableName=dynamo_table,
4752
KeySchema=[
4853
{"AttributeName": "NHS_NUMBER", "KeyType": "HASH"},
49-
{"AttributeName": "ATTRIBUTE_TYPE", "KeyType": "RANGE"}
54+
{"AttributeName": "ATTRIBUTE_TYPE", "KeyType": "RANGE"},
5055
],
5156
AttributeDefinitions=[
5257
{"AttributeName": "NHS_NUMBER", "AttributeType": "S"},
53-
{"AttributeName": "ATTRIBUTE_TYPE", "AttributeType": "S"}
58+
{"AttributeName": "ATTRIBUTE_TYPE", "AttributeType": "S"},
5459
],
55-
BillingMode="PAY_PER_REQUEST"
60+
BillingMode="PAY_PER_REQUEST",
5661
)
5762

5863
# Act
59-
run_upload([
60-
"--env", env,
61-
"--upload-s3", str(data_dir),
62-
"--upload-dynamo", str(data_dir),
63-
"--region", region,
64-
"--s3-bucket", s3_bucket,
65-
"--dynamo-table", dynamo_table
66-
])
64+
run_upload(
65+
[
66+
"--env",
67+
env,
68+
"--upload-s3",
69+
str(data_dir),
70+
"--upload-dynamo",
71+
str(data_dir),
72+
"--region",
73+
region,
74+
"--s3-bucket",
75+
s3_bucket,
76+
"--dynamo-table",
77+
dynamo_table,
78+
]
79+
)
6780

68-
key = f"manual-uploads/test.json"
81+
key = "manual-uploads/test.json"
6982
obj = s3.get_object(Bucket=s3_bucket, Key=key)
7083
body = obj["Body"].read().decode("utf-8")
7184
uploaded_s3_data = [json.loads(line) for line in body.splitlines() if line.strip()]
@@ -74,7 +87,7 @@ def test_script_cli_end_to_end(test_data_dir):
7487
for expected_item in expected_data:
7588
key = {
7689
"NHS_NUMBER": {"S": expected_item["NHS_NUMBER"]},
77-
"ATTRIBUTE_TYPE": {"S": expected_item["ATTRIBUTE_TYPE"]}
90+
"ATTRIBUTE_TYPE": {"S": expected_item["ATTRIBUTE_TYPE"]},
7891
}
7992
response = dynamodb.get_item(TableName=dynamo_table, Key=key)
8093
item = response.get("Item")

0 commit comments

Comments
 (0)