Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
ChoiceField,
MultipleChoiceField,
)
from manage_breast_screening.nhsuk_forms.fields.integer_field import IntegerField
from manage_breast_screening.nhsuk_forms.fields.integer_field import (
YearField,
)
from manage_breast_screening.nhsuk_forms.forms import FormWithConditionalFields
from manage_breast_screening.participants.models.breast_cancer_history_item import (
BreastCancerHistoryItem,
Expand All @@ -26,13 +28,12 @@ class DiagnosisLocationChoices(TextChoices):
error_messages={"required": "Select which breasts cancer was diagnosed in"},
exclusive_choices={DiagnosisLocationChoices.DONT_KNOW},
)
# todo: constrain min/max
diagnosis_year = IntegerField(
diagnosis_year = YearField(
hint="Leave blank if unknown",
required=False,
label="Year of diagnosis (optional)",
label_classes="nhsuk-label--m",
classes="nhsuk-input--width-4",
hint="Leave blank if unknown",
required=False,
)

right_breast_procedure = ChoiceField(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from datetime import date
from urllib.parse import urlencode

import pytest
Expand Down Expand Up @@ -51,12 +52,15 @@ def test_no_data_not_valid(self):
"systemic_treatments": ["Select what systemic treatments they have had"],
}

def test_valid_form(self):
def test_valid_form(self, time_machine):
time_machine.move_to(date(2025, 1, 1))

form = BreastCancerHistoryForm(
data=QueryDict(
urlencode(
{
"diagnosis_location": "RIGHT_BREAST",
"diagnosis_year": "2013",
"intervention_location": "NHS_HOSPITAL",
"intervention_location_details_nhs_hospital": "abc",
"left_breast_other_surgery": "NO_SURGERY",
Expand All @@ -73,6 +77,32 @@ def test_valid_form(self):

assert form.is_valid(), form.errors

def test_invalid_date(self, time_machine):
time_machine.move_to(date(2025, 1, 1))

form = BreastCancerHistoryForm(
data=QueryDict(
urlencode(
{
"diagnosis_location": "RIGHT_BREAST",
"diagnosis_year": "1900",
"intervention_location": "NHS_HOSPITAL",
"intervention_location_details_nhs_hospital": "abc",
"left_breast_other_surgery": "NO_SURGERY",
"left_breast_procedure": "NO_PROCEDURE",
"left_breast_treatment": "NO_RADIOTHERAPY",
"right_breast_other_surgery": "LYMPH_NODE_SURGERY",
"right_breast_procedure": "LUMPECTOMY",
"right_breast_treatment": "BREAST_RADIOTHERAPY",
"systemic_treatments": "NO_SYSTEMIC_TREATMENTS",
}
)
)
)

assert not form.is_valid()
assert form.errors == {"diagnosis_year": ["Year must be 1945 or later"]}

def test_missing_intervention_location_details(self):
form = BreastCancerHistoryForm(
data=QueryDict(
Expand Down