From e29c28c2e9bd24096fb90af25e3e696a3ca27e30 Mon Sep 17 00:00:00 2001 From: karthikeyannhs <174426205+Karthikeyannhs@users.noreply.github.com> Date: Mon, 23 Jun 2025 17:04:31 +0100 Subject: [PATCH] negative test for iteration type --- .../calculators/test_eligibility_calculator.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/unit/services/calculators/test_eligibility_calculator.py b/tests/unit/services/calculators/test_eligibility_calculator.py index f1e40ea79..277906b25 100644 --- a/tests/unit/services/calculators/test_eligibility_calculator.py +++ b/tests/unit/services/calculators/test_eligibility_calculator.py @@ -5,6 +5,7 @@ from faker import Faker from freezegun import freeze_time from hamcrest import assert_that, contains_exactly, contains_inanyorder, equal_to, has_item, has_items, is_in +from pydantic import ValidationError from eligibility_signposting_api.model import rules from eligibility_signposting_api.model import rules as rules_model @@ -182,6 +183,15 @@ def test_campaigns_with_applicable_iteration_types_considered(iteration_type: st ) +@pytest.mark.parametrize( + "iteration_type", + ["NA", "N", "FAKE", "F"], +) +def test_invalid_iteration_type_raises_validation_error(iteration_type: str): + with pytest.raises(ValidationError): + rule_builder.CampaignConfigFactory.build(target="RSV", iteration_type=iteration_type) + + def test_base_eligible_and_simple_rule_includes(faker: Faker): # Given nhs_number = NHSNumber(faker.nhs_number())