Skip to content

Commit bd8b5c2

Browse files
more tests
1 parent 34073c6 commit bd8b5c2

2 files changed

Lines changed: 37 additions & 6 deletions

File tree

tests/integration/conftest.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1120,8 +1120,14 @@ def campaign_configs(request, s3_client: BaseClient, rules_bucket: BucketName) -
11201120
request, "param", [("RSV", "RSV_campaign_id"), ("COVID", "COVID_campaign_id"), ("FLU", "FLU_campaign_id")]
11211121
)
11221122

1123-
targets = [t for t, _id in raw]
1124-
campaign_id = [_id for t, _id in raw]
1123+
targets = []
1124+
campaign_id = []
1125+
status = []
1126+
1127+
for t, _id, *rest in raw:
1128+
targets.append(t)
1129+
campaign_id.append(_id)
1130+
status.append(rest[0] if rest else None)
11251131

11261132
for i in range(len(targets)):
11271133
campaign: CampaignConfig = rule.CampaignConfigFactory.build(
@@ -1148,6 +1154,10 @@ def campaign_configs(request, s3_client: BaseClient, rules_bucket: BucketName) -
11481154
)
11491155
],
11501156
)
1157+
1158+
if status[i] == "inactive":
1159+
campaign.iterations[0].iteration_date = datetime.datetime.now(tz=datetime.UTC) + datetime.timedelta(days=7)
1160+
11511161
campaign_data = {"CampaignConfig": campaign.model_dump(by_alias=True)}
11521162
key = f"{campaign.name}.json"
11531163
s3_client.put_object(

tests/integration/in_process/test_eligibility_endpoint.py

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,26 +1090,44 @@ def test_valid_response_when_consumer_has_a_valid_campaign_config_mapping( # no
10901090
@pytest.mark.parametrize(
10911091
("consumer_id", "expected_campaign_id"),
10921092
[
1093+
# Consumer is mapped only to RSV_campaign_id_1
10931094
("consumer-id-1", "RSV_campaign_id_1"),
1095+
# Consumer is mapped only to RSV_campaign_id_2
10941096
("consumer-id-2", "RSV_campaign_id_2"),
1097+
# Edge-case : Consumer-id-3 is mapped to multiple active campaigns, so the first one is only considered.
1098+
("consumer-id-3", "RSV_campaign_id_3"),
1099+
# Edge-case : Consumer is mapped to inactive RSV_campaign_id_5 and active RSV_campaign_id_6
1100+
("consumer-id-4", "RSV_campaign_id_6"),
1101+
# Edge-case : Consumer is mapped only to inactive RSV_campaign_id_5
1102+
("consumer-id-5", None),
10951103
],
10961104
)
10971105
@pytest.mark.parametrize(
10981106
("campaign_configs", "consumer_mappings", "requested_conditions", "requested_category"),
10991107
[
11001108
(
1101-
[("RSV", "RSV_campaign_id_1"), ("RSV", "RSV_campaign_id_2")],
1109+
[
1110+
("RSV", "RSV_campaign_id_1"),
1111+
("RSV", "RSV_campaign_id_2"),
1112+
("RSV", "RSV_campaign_id_3"),
1113+
("RSV", "RSV_campaign_id_4"),
1114+
("RSV", "RSV_campaign_id_5", "inactive"), # inactive iteration
1115+
("RSV", "RSV_campaign_id_6"),
1116+
],
11021117
{
11031118
"consumer-id-1": [{"Campaign": "RSV_campaign_id_1"}],
11041119
"consumer-id-2": [{"Campaign": "RSV_campaign_id_2"}],
1120+
"consumer-id-3": [{"Campaign": "RSV_campaign_id_3"}, {"Campaign": "RSV_campaign_id_4"}],
1121+
"consumer-id-4": [{"Campaign": "RSV_campaign_id_5"}, {"Campaign": "RSV_campaign_id_6"}],
1122+
"consumer-id-5": [{"Campaign": "RSV_campaign_id_5"}],
11051123
},
11061124
"RSV",
11071125
"VACCINATIONS",
11081126
)
11091127
],
11101128
indirect=["campaign_configs", "consumer_mappings"],
11111129
)
1112-
def test_if_correct_campaign_is_chosen_for_the_consumer_if_there_exists_multiple_campaign_per_target( # noqa: PLR0913
1130+
def test_if_correct_campaign_is_chosen_for_the_consumer_if_there_exists_multiple_campaign_per_target( # noqa : PLR0913
11131131
self,
11141132
client: FlaskClient,
11151133
persisted_person: NHSNumber,
@@ -1138,5 +1156,8 @@ def test_if_correct_campaign_is_chosen_for_the_consumer_if_there_exists_multiple
11381156
audit_data = json.loads(s3_client.get_object(Bucket=audit_bucket, Key=latest_key)["Body"].read())
11391157

11401158
# Then
1141-
assert_that(len(audit_data["response"]["condition"]), equal_to(1))
1142-
assert_that(audit_data["response"]["condition"][0].get("campaignId"), equal_to(expected_campaign_id))
1159+
if expected_campaign_id is not None:
1160+
assert_that(len(audit_data["response"]["condition"]), equal_to(1))
1161+
assert_that(audit_data["response"]["condition"][0].get("campaignId"), equal_to(expected_campaign_id))
1162+
else:
1163+
assert_that(len(audit_data["response"]["condition"]), equal_to(0))

0 commit comments

Comments
 (0)