Skip to content

Commit baf882b

Browse files
renamed "Campaign" to CampaignConfigId"
1 parent 230de1d commit baf882b

6 files changed

Lines changed: 51 additions & 38 deletions

File tree

src/eligibility_signposting_api/model/consumer_mapping.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99

1010
class ConsumerCampaign(BaseModel):
11-
campaign: CampaignID = Field(alias="Campaign")
11+
campaign_config_id: CampaignID = Field(alias="CampaignConfigId")
1212
description: str | None = Field(default=None, alias="Description")
1313

1414

src/eligibility_signposting_api/repos/consumer_mapping_repo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ def get_permitted_campaign_ids(self, consumer_id: ConsumerId) -> list[CampaignID
3838
if mapping_result is None:
3939
return None
4040

41-
return [item.campaign for item in mapping_result]
41+
return [item.campaign_config_id for item in mapping_result]

tests/integration/conftest.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1352,7 +1352,9 @@ def create_and_put_consumer_mapping_in_s3(
13521352
campaign_config: CampaignConfig, consumer_id: str, consumer_mapping_bucket, s3_client
13531353
) -> ConsumerMapping:
13541354
consumer_mapping = ConsumerMapping.model_validate({})
1355-
campaign_entry = ConsumerCampaign(Campaign=campaign_config.id, Description="Test description for campaign mapping")
1355+
campaign_entry = ConsumerCampaign(
1356+
CampaignConfigId=campaign_config.id, Description="Test description for campaign mapping"
1357+
)
13561358

13571359
consumer_mapping.root[ConsumerId(consumer_id)] = [campaign_entry]
13581360
consumer_mapping_data = consumer_mapping.model_dump(by_alias=True)
@@ -1528,7 +1530,8 @@ def consumer_to_campaign_having_inactive_iteration_mapping(
15281530
):
15291531
mapping = ConsumerMapping.model_validate({})
15301532
mapping.root[consumer_id] = [
1531-
ConsumerCampaign(Campaign=cc.id, Description=f"Description for {cc.id}") for cc in inactive_iteration_config
1533+
ConsumerCampaign(CampaignConfigId=cc.id, Description=f"Description for {cc.id}")
1534+
for cc in inactive_iteration_config
15321535
]
15331536

15341537
s3_client.put_object(
@@ -1550,7 +1553,8 @@ def consumer_to_multiple_campaign_configs_mapping(
15501553
) -> Generator[ConsumerMapping]:
15511554
mapping = ConsumerMapping.model_validate({})
15521555
mapping.root[consumer_id] = [
1553-
ConsumerCampaign(Campaign=cc.id, Description=f"Description for {cc.id}") for cc in multiple_campaign_configs
1556+
ConsumerCampaign(CampaignConfigId=cc.id, Description=f"Description for {cc.id}")
1557+
for cc in multiple_campaign_configs
15541558
]
15551559

15561560
s3_client.put_object(

tests/integration/in_process/test_eligibility_endpoint.py

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -944,8 +944,8 @@ def test_not_actionable_and_check_response_when_rule_mapper_is_given(
944944
],
945945
{
946946
"consumer-id": [
947-
{"Campaign": "RSV_campaign_id"},
948-
{"Campaign": "COVID_campaign_id"},
947+
{"CampaignConfigId": "RSV_campaign_id"},
948+
{"CampaignConfigId": "COVID_campaign_id"},
949949
]
950950
},
951951
"consumer-id",
@@ -962,8 +962,8 @@ def test_not_actionable_and_check_response_when_rule_mapper_is_given(
962962
],
963963
{
964964
"consumer-id": [
965-
{"Campaign": "RSV_campaign_id"},
966-
{"Campaign": "COVID_campaign_id"},
965+
{"CampaignConfigId": "RSV_campaign_id"},
966+
{"CampaignConfigId": "COVID_campaign_id"},
967967
]
968968
},
969969
"consumer-id",
@@ -980,8 +980,8 @@ def test_not_actionable_and_check_response_when_rule_mapper_is_given(
980980
],
981981
{
982982
"consumer-id": [
983-
{"Campaign": "RSV_campaign_id"},
984-
{"Campaign": "COVID_campaign_id"},
983+
{"CampaignConfigId": "RSV_campaign_id"},
984+
{"CampaignConfigId": "COVID_campaign_id"},
985985
]
986986
},
987987
"consumer-id",
@@ -1001,8 +1001,8 @@ def test_not_actionable_and_check_response_when_rule_mapper_is_given(
10011001
],
10021002
{
10031003
"consumer-id": [
1004-
{"Campaign": "RSV_campaign_id"},
1005-
{"Campaign": "COVID_campaign_id"},
1004+
{"CampaignConfigId": "RSV_campaign_id"},
1005+
{"CampaignConfigId": "COVID_campaign_id"},
10061006
]
10071007
},
10081008
"consumer-id",
@@ -1017,8 +1017,8 @@ def test_not_actionable_and_check_response_when_rule_mapper_is_given(
10171017
],
10181018
{
10191019
"consumer-id": [
1020-
{"Campaign": "RSV_campaign_id"},
1021-
{"Campaign": "COVID_campaign_id"},
1020+
{"CampaignConfigId": "RSV_campaign_id"},
1021+
{"CampaignConfigId": "COVID_campaign_id"},
10221022
]
10231023
},
10241024
"consumer-id",
@@ -1033,8 +1033,8 @@ def test_not_actionable_and_check_response_when_rule_mapper_is_given(
10331033
],
10341034
{
10351035
"consumer-id": [
1036-
{"Campaign": "RSV_campaign_id"},
1037-
{"Campaign": "COVID_campaign_id"},
1036+
{"CampaignConfigId": "RSV_campaign_id"},
1037+
{"CampaignConfigId": "COVID_campaign_id"},
10381038
]
10391039
},
10401040
"consumer-id",
@@ -1054,8 +1054,8 @@ def test_not_actionable_and_check_response_when_rule_mapper_is_given(
10541054
],
10551055
{
10561056
"consumer-id": [
1057-
{"Campaign": "RSV_campaign_id"},
1058-
{"Campaign": "COVID_campaign_id"},
1057+
{"CampaignConfigId": "RSV_campaign_id"},
1058+
{"CampaignConfigId": "COVID_campaign_id"},
10591059
]
10601060
},
10611061
"another-consumer-id",
@@ -1072,8 +1072,8 @@ def test_not_actionable_and_check_response_when_rule_mapper_is_given(
10721072
],
10731073
{
10741074
"consumer-id": [
1075-
{"Campaign": "RSV_campaign_id"},
1076-
{"Campaign": "COVID_campaign_id"},
1075+
{"CampaignConfigId": "RSV_campaign_id"},
1076+
{"CampaignConfigId": "COVID_campaign_id"},
10771077
]
10781078
},
10791079
"another-consumer-id",
@@ -1093,8 +1093,8 @@ def test_not_actionable_and_check_response_when_rule_mapper_is_given(
10931093
],
10941094
{
10951095
"consumer-id": [
1096-
{"Campaign": "RSV_campaign_id"},
1097-
{"Campaign": "COVID_campaign_id"},
1096+
{"CampaignConfigId": "RSV_campaign_id"},
1097+
{"CampaignConfigId": "COVID_campaign_id"},
10981098
]
10991099
},
11001100
"consumer-id",
@@ -1201,12 +1201,21 @@ def test_valid_response_when_consumer_has_a_valid_campaign_config_mapping( # no
12011201
],
12021202
{
12031203
# Consumer mappings in S3
1204-
"consumer-id-1": [{"Campaign": "RSV_campaign_id_1"}],
1205-
"consumer-id-2": [{"Campaign": "RSV_campaign_id_2"}],
1206-
"consumer-id-3a": [{"Campaign": "RSV_campaign_id_3"}, {"Campaign": "RSV_campaign_id_4"}],
1207-
"consumer-id-3b": [{"Campaign": "RSV_campaign_id_4"}, {"Campaign": "RSV_campaign_id_3"}],
1208-
"consumer-id-4": [{"Campaign": "inactive_RSV_campaign_id_5"}, {"Campaign": "RSV_campaign_id_6"}],
1209-
"consumer-id-5": [{"Campaign": "inactive_RSV_campaign_id_5"}],
1204+
"consumer-id-1": [{"CampaignConfigId": "RSV_campaign_id_1"}],
1205+
"consumer-id-2": [{"CampaignConfigId": "RSV_campaign_id_2"}],
1206+
"consumer-id-3a": [
1207+
{"CampaignConfigId": "RSV_campaign_id_3"},
1208+
{"CampaignConfigId": "RSV_campaign_id_4"},
1209+
],
1210+
"consumer-id-3b": [
1211+
{"CampaignConfigId": "RSV_campaign_id_4"},
1212+
{"CampaignConfigId": "RSV_campaign_id_3"},
1213+
],
1214+
"consumer-id-4": [
1215+
{"CampaignConfigId": "inactive_RSV_campaign_id_5"},
1216+
{"CampaignConfigId": "RSV_campaign_id_6"},
1217+
],
1218+
"consumer-id-5": [{"CampaignConfigId": "inactive_RSV_campaign_id_5"}],
12101219
},
12111220
"RSV",
12121221
"VACCINATIONS",
@@ -1269,8 +1278,8 @@ def test_if_campaign_having_best_status_is_chosen_if_there_exists_multiple_campa
12691278
Body=json.dumps(
12701279
{
12711280
consumer_id: [
1272-
{"Campaign": "RSV_campaign_id_not_actionable"},
1273-
{"Campaign": "RSV_campaign_id_actionable"},
1281+
{"CampaignConfigId": "RSV_campaign_id_not_actionable"},
1282+
{"CampaignConfigId": "RSV_campaign_id_actionable"},
12741283
],
12751284
}
12761285
),

tests/test_data/test_consumer_mapping/test_consumer_mapping_config.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22
{
33
"consumer-id-123": [
44
{
5-
"Campaign": "8fcb742b-45fa-4e0d-8f2f-9c2efb1f46d0",
5+
"CampaignConfigId": "8fcb742b-45fa-4e0d-8f2f-9c2efb1f46d0",
66
"Description": "RSV Ongoing for My Vaccines"
77
},
88
{
9-
"Campaign": "COVID_campaign_id",
9+
"CampaignConfigId": "COVID_campaign_id",
1010
"Description": "COVID Ongoing for My Vaccines"
1111
}
1212
],
1313
"consumer-id-456": [
1414
{
15-
"Campaign": "RSV_campaign_id_NBS",
15+
"CampaignConfigId": "RSV_campaign_id_NBS",
1616
"Description": "RSV Ongoing for NBS"
1717
},
1818
{
19-
"Campaign": "COVID_campaign_id_NBS",
19+
"CampaignConfigId": "COVID_campaign_id_NBS",
2020
"Description": "RSV Ongoing for NBS"
2121
}
2222
]

tests/unit/repos/test_consumer_mapping_repo.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ def test_get_permitted_campaign_ids_success(self, repo, mock_s3_client):
2626
# The mocked S3 data must match the new schema (objects with description)
2727
mapping_data = {
2828
consumer_id: [
29-
{"Campaign": "flu-2024", "Description": "Flu Shot Description"},
30-
{"Campaign": "covid-2024", "Description": "Covid Shot Description"},
29+
{"CampaignConfigId": "flu-2024", "Description": "Flu Shot Description"},
30+
{"CampaignConfigId": "covid-2024", "Description": "Covid Shot Description"},
3131
]
3232
}
3333

@@ -49,7 +49,7 @@ def test_get_permitted_campaign_ids_returns_none_when_missing(self, repo, mock_s
4949
Setup data where the consumer_id doesn't exist
5050
We must still use the valid schema (dicts inside the list) to pass Pydantic validation
5151
"""
52-
valid_schema_data = {"other-user": [{"Campaign": "camp-1", "Description": "Some description"}]}
52+
valid_schema_data = {"other-user": [{"CampaignConfigId": "camp-1", "Description": "Some description"}]}
5353

5454
mock_s3_client.list_objects.return_value = {"Contents": [{"Key": "mappings.json"}]}
5555
body_json = json.dumps(valid_schema_data).encode("utf-8")

0 commit comments

Comments
 (0)