Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/eligibility_signposting_api/config/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@
CONSUMER_MAPPING_FILE_NAME = "consumer_mapping_config.json"

CACHE_TTL_SECONDS = int(os.getenv("CONFIG_CACHE_TTL_SECONDS", "1800"))
STATUS_TEXT_OVERRIDE_ACTION_TYPE = "norender_StatusTextOverride"
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ class MatchedActionDetail:
rule_name: campaign_config.RuleName | None = None
rule_priority: campaign_config.RulePriority | None = None
actions: list[SuggestedAction] | None = None
status_text_override: StatusText | None = None


@dataclass
Expand Down
5 changes: 5 additions & 0 deletions tests/unit/config/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from yarl import URL

from eligibility_signposting_api.config.config import LOG_LEVEL, AwsAccessKey, AwsRegion, AwsSecretAccessKey, config
from eligibility_signposting_api.config.constants import STATUS_TEXT_OVERRIDE_ACTION_TYPE
from eligibility_signposting_api.repos.campaign_repo import BucketName
from eligibility_signposting_api.repos.person_repo import TableName

Expand Down Expand Up @@ -48,3 +49,7 @@ def test_config_without_env_variable():
assert config_data_without_env["s3_endpoint"] == URL("http://localhost:4566")
assert config_data_without_env["rules_bucket_name"] == BucketName("test-rules-bucket")
assert config_data_without_env["log_level"] == LOG_LEVEL


def test_status_text_override_action_type_constant_value():
assert STATUS_TEXT_OVERRIDE_ACTION_TYPE == "norender_StatusTextOverride"
Comment thread
oneeb-nhs marked this conversation as resolved.
46 changes: 45 additions & 1 deletion tests/unit/model/test_status.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
from eligibility_signposting_api.model.eligibility_status import ConditionName, RuleType, Status, StatusText
from eligibility_signposting_api.model.campaign_config import RuleName, RulePriority
from eligibility_signposting_api.model.eligibility_status import (
ConditionName,
MatchedActionDetail,
RuleType,
Status,
StatusText,
SuggestedAction,
)


class TestStatus:
Expand Down Expand Up @@ -45,3 +53,39 @@ def test_get_action_rule_type(self):
assert Status.not_actionable.get_action_rule_type() == RuleType(RuleType.not_actionable_actions)

assert Status.actionable.get_action_rule_type() == RuleType(RuleType.redirect)


def test_matched_action_detail_default_status_text_override_is_none():
action_detail = MatchedActionDetail()

assert action_detail.status_text_override is None


def test_matched_action_detail_stores_status_text_override_value():
action_detail = MatchedActionDetail(status_text_override=StatusText("X"))

assert action_detail.status_text_override == StatusText("X")


def test_matched_action_detail_existing_constructor_still_works_with_three_args():
actions: list[SuggestedAction] = []

action_detail = MatchedActionDetail(RuleName("RuleA"), RulePriority(1), actions)

assert action_detail.rule_name == RuleName("RuleA")
assert action_detail.rule_priority == RulePriority(1)
assert action_detail.actions == actions
assert action_detail.status_text_override is None


def test_matched_action_detail_existing_constructor_works_with_four_args():
Comment thread
oneeb-nhs marked this conversation as resolved.
actions: list[SuggestedAction] = []

action_detail = MatchedActionDetail(
RuleName("RuleA"), RulePriority(1), actions, status_text_override=StatusText("Override")
)

assert action_detail.rule_name == RuleName("RuleA")
assert action_detail.rule_priority == RulePriority(1)
assert action_detail.actions == actions
assert action_detail.status_text_override == StatusText("Override")
Loading