Skip to content

Commit 962cc57

Browse files
committed
Fix broken tests that needed current smoker
1 parent 24b947d commit 962cc57

11 files changed

Lines changed: 103 additions & 95 deletions

lung_cancer_screening/questions/forms/when_you_quit_smoking_form.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ def __init__(self, *args, **kwargs):
2525
"min_value":"The age you quit smoking must be between 1 and your current age",
2626
"age_when_quit_smoking_greater_than_age_started":"The age you quit smoking cannot be lower than the age you started smoking",
2727
"age_when_quit_smoking_greater_than_current_age" : "The age you quit smoking must be the same as, or less than, your current age",
28-
"no_date_of_birth" : format_html("<a href=\"{}\">Provide your date of birth</a> before answering this question", reverse_lazy("questions:date_of_birth"))
28+
"no_date_of_birth" : format_html("<a href=\"{}\">Provide your date of birth</a> before answering when you quit smoking", reverse_lazy("questions:date_of_birth"))
2929
}
3030
)

lung_cancer_screening/questions/models/when_you_quit_smoking_response.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from django.db import models
2-
from django.core.validators import MinValueValidator, MaxValueValidator
2+
from django.core.validators import MinValueValidator
33
from django.core.exceptions import ValidationError
44

55
from .base import BaseModel

lung_cancer_screening/questions/tests/unit/forms/test_age_when_started_smoking_form.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from django.utils import timezone
44
from dateutil.relativedelta import relativedelta
55

6+
from lung_cancer_screening.questions.tests.factories.have_you_ever_smoked_response_factory import HaveYouEverSmokedResponseFactory
7+
68
from ....models.age_when_started_smoking_response import AgeWhenStartedSmokingResponse
79

810
from ...factories.response_set_factory import ResponseSetFactory
@@ -20,6 +22,9 @@ def setUp(self):
2022
response_set=self.response_set,
2123
value=timezone.now() - relativedelta(years=int(60))
2224
)
25+
26+
HaveYouEverSmokedResponseFactory(response_set=self.response_set, current_smoker=True)
27+
2328
self.response = AgeWhenStartedSmokingResponse(
2429
response_set=self.response_set
2530
)
@@ -91,7 +96,7 @@ def test_is_invalid_if_no_date_of_birth(self):
9196
self.assertFalse(form.is_valid())
9297
self.assertEqual(
9398
form.errors["value"],
94-
["<a href=\"/date-of-birth\">Provide your date of birth</a> before answering this question"]
99+
["<a href=\"/date-of-birth\">Provide your date of birth</a> before answering age when you started smoking"]
95100
)
96101

97102
def test_is_invalid_when_age_entered_greater_than_current_age(self):

lung_cancer_screening/questions/tests/unit/forms/test_periods_when_you_stopped_smoking_form.py

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ def setUp(self):
1515
self.age_when_started_smoking_response = AgeWhenStartedSmokingResponseFactory.create(
1616
response_set=self.response_set
1717
)
18+
HaveYouEverSmokedResponseFactory(response_set=self.response_set, current_smoker=True)
1819
self.response = PeriodsWhenYouStoppedSmokingResponseFactory.create(
1920
response_set=self.response_set,
2021
value=True,
@@ -43,11 +44,6 @@ def test_clears_the_duration_years_if_value_is_no(self):
4344

4445

4546
def test_has_a_label_for_current_smoker(self):
46-
HaveYouEverSmokedResponseFactory.create(
47-
response_set=self.response_set,
48-
current_smoker=True,
49-
)
50-
5147
form = PeriodsWhenYouStoppedSmokingForm(
5248
instance=self.response,
5349
data=self.valid_params
@@ -60,6 +56,7 @@ def test_has_a_label_for_current_smoker(self):
6056

6157

6258
def test_has_a_label_for_former_smoker(self):
59+
self.response_set.have_you_ever_smoked_response.delete()
6360
HaveYouEverSmokedResponseFactory.create(
6461
response_set=self.response_set,
6562
former_smoker=True,
@@ -77,11 +74,6 @@ def test_has_a_label_for_former_smoker(self):
7774

7875

7976
def test_has_a_duration_years_label_for_current_smoker(self):
80-
HaveYouEverSmokedResponseFactory.create(
81-
response_set=self.response_set,
82-
current_smoker=True,
83-
)
84-
8577
form = PeriodsWhenYouStoppedSmokingForm(
8678
instance=self.response,
8779
data=self.valid_params,
@@ -94,11 +86,6 @@ def test_has_a_duration_years_label_for_current_smoker(self):
9486

9587

9688
def test_has_a_duration_years_label_for_former_smoker(self):
97-
HaveYouEverSmokedResponseFactory.create(
98-
response_set=self.response_set,
99-
former_smoker=True,
100-
)
101-
10289
form = PeriodsWhenYouStoppedSmokingForm(
10390
instance=self.response,
10491
data=self.valid_params,
@@ -111,11 +98,6 @@ def test_has_a_duration_years_label_for_former_smoker(self):
11198

11299

113100
def test_has_a_required_error_for_current_smoker(self):
114-
HaveYouEverSmokedResponseFactory.create(
115-
response_set=self.response_set,
116-
current_smoker=True,
117-
)
118-
119101
form = PeriodsWhenYouStoppedSmokingForm(
120102
instance=self.response,
121103
data={
@@ -130,6 +112,7 @@ def test_has_a_required_error_for_current_smoker(self):
130112

131113

132114
def test_has_a_required_error_for_former_smoker(self):
115+
self.response_set.have_you_ever_smoked_response.delete()
133116
HaveYouEverSmokedResponseFactory.create(
134117
response_set=self.response_set,
135118
former_smoker=True,
@@ -148,11 +131,6 @@ def test_has_a_required_error_for_former_smoker(self):
148131

149132

150133
def test_has_a_duration_years_required_error_for_current_smoker(self):
151-
HaveYouEverSmokedResponseFactory.create(
152-
response_set=self.response_set,
153-
current_smoker=True,
154-
)
155-
156134
form = PeriodsWhenYouStoppedSmokingForm(
157135
instance=self.response,
158136
data={
@@ -168,6 +146,7 @@ def test_has_a_duration_years_required_error_for_current_smoker(self):
168146

169147

170148
def test_has_a_duration_years_required_error_for_former_smoker(self):
149+
self.response_set.have_you_ever_smoked_response.delete()
171150
HaveYouEverSmokedResponseFactory.create(
172151
response_set=self.response_set,
173152
former_smoker=True,
Lines changed: 76 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
11
from django.test import TestCase, tag
22

3-
3+
from lung_cancer_screening.questions.tests.factories.have_you_ever_smoked_response_factory import HaveYouEverSmokedResponseFactory
44

55
from ...factories.response_set_factory import ResponseSetFactory
66
from ...factories.date_of_birth_response_factory import DateOfBirthResponseFactory
77
from ...factories.age_when_started_smoking_response_factory import AgeWhenStartedSmokingResponseFactory
88
from ...factories.when_you_quit_smoking_response_factory import WhenYouQuitSmokingResponseFactory
9+
from ...factories.periods_when_you_stopped_smoking_response_factory import PeriodsWhenYouStoppedSmokingResponseFactory
910

1011
from ....forms.when_you_quit_smoking_form import WhenYouQuitSmokingForm
12+
from ....forms.age_when_started_smoking_form import AgeWhenStartedSmokingForm
13+
14+
from ....models.periods_when_you_stopped_smoking_response import PeriodsWhenYouStoppedSmokingResponse
15+
from ....models.when_you_quit_smoking_response import WhenYouQuitSmokingResponse
1116

1217

1318
@tag("WhenYouQuitSmoking")
1419
class TestWhenYouQuitSmokingForm(TestCase):
1520
def setUp(self):
1621
self.response_set = ResponseSetFactory()
22+
23+
HaveYouEverSmokedResponseFactory(response_set=self.response_set, current_smoker=True)
24+
1725
self.date_of_birth_response = DateOfBirthResponseFactory(
1826
response_set=self.response_set,
1927
eligible=True,
@@ -24,7 +32,7 @@ def setUp(self):
2432
)
2533
self.response = WhenYouQuitSmokingResponseFactory(
2634
response_set=self.response_set,
27-
value=self.age_when_started_smoking_response.value + 1
35+
value=self.age_when_started_smoking_response.value + 2
2836
)
2937

3038
def test_is_valid_with_valid_input(self):
@@ -61,67 +69,69 @@ def test_is_invalid_when_zero_is_entered(self):
6169
["The age you quit smoking must be between 1 and your current age"],
6270
)
6371

64-
# def test_is_invalid_if_no_date_of_birth(self):
65-
# response_set = ResponseSetFactory()
66-
# response = AgeWhenStartedSmokingResponse(response_set=response_set)
67-
# form = AgeWhenStartedSmokingForm(instance=response, data={"value": 70})
68-
69-
# self.assertFalse(form.is_valid())
70-
# self.assertEqual(
71-
# form.errors["value"],
72-
# [
73-
# '<a href="/date-of-birth">Provide your date of birth</a> before answering this question'
74-
# ],
75-
# )
76-
77-
# def test_is_invalid_when_age_entered_greater_than_current_age(self):
78-
# form = AgeWhenStartedSmokingForm(instance=self.response, data={"value": 70})
79-
80-
# self.assertFalse(form.is_valid())
81-
82-
# self.assertEqual(
83-
# form.errors["value"],
84-
# [
85-
# "The age you started smoking must be the same as, or less than your current age"
86-
# ],
87-
# )
88-
89-
# def test_deletes_periods_when_stopped_smoking_response_if_age_started_smoking_is_changed(
90-
# self,
91-
# ):
92-
# self.response.value = 17
93-
# self.response.save()
94-
95-
# PeriodsWhenYouStoppedSmokingResponseFactory.create(
96-
# response_set=self.response_set,
97-
# value=True,
98-
# duration_years=self.response.years_smoked_including_stopped() - 1,
99-
# )
100-
# form = AgeWhenStartedSmokingForm(instance=self.response, data={"value": 18})
101-
# form.save()
102-
103-
# self.assertFalse(
104-
# PeriodsWhenYouStoppedSmokingResponse.objects.filter(
105-
# response_set=self.response_set
106-
# ).exists()
107-
# )
108-
109-
# def test_does_not_delete_periods_when_stopped_smoking_response_if_age_started_smoking_is_not_changed(
110-
# self,
111-
# ):
112-
# self.response.value = 18
113-
# self.response.save()
114-
115-
# PeriodsWhenYouStoppedSmokingResponseFactory.create(
116-
# response_set=self.response_set,
117-
# value=True,
118-
# duration_years=self.response.years_smoked_including_stopped() - 1,
119-
# )
120-
# form = AgeWhenStartedSmokingForm(instance=self.response, data={"value": 18})
121-
# form.save()
122-
123-
# self.assertTrue(
124-
# PeriodsWhenYouStoppedSmokingResponse.objects.filter(
125-
# response_set=self.response_set
126-
# ).exists()
127-
# )
72+
def test_is_invalid_if_no_date_of_birth(self):
73+
response_set = ResponseSetFactory()
74+
response = WhenYouQuitSmokingResponse(response_set=response_set)
75+
form = WhenYouQuitSmokingForm(instance=response, data={"value": 70})
76+
77+
self.assertFalse(form.is_valid())
78+
self.assertEqual(
79+
form.errors["value"],
80+
[
81+
'<a href="/date-of-birth">Provide your date of birth</a> before answering when you quit smoking'
82+
],
83+
)
84+
85+
def test_is_invalid_when_age_entered_greater_than_current_age(self):
86+
form = WhenYouQuitSmokingForm(instance=self.response, data={"value": 80})
87+
88+
self.assertFalse(form.is_valid())
89+
90+
self.assertEqual(
91+
form.errors["value"],
92+
[
93+
"The age you quit smoking must be the same as, or less than, your current age"
94+
],
95+
)
96+
97+
def test_deletes_periods_when_stopped_smoking_response_if_age_started_smoking_is_changed(
98+
self,
99+
):
100+
self.response.value = self.age_when_started_smoking_response.value + 2
101+
self.response.save()
102+
103+
PeriodsWhenYouStoppedSmokingResponseFactory.create(
104+
response_set=self.response_set,
105+
value=True,
106+
duration_years=self.age_when_started_smoking_response.years_smoked_including_stopped() - 1,
107+
)
108+
form = AgeWhenStartedSmokingForm(instance=self.response, data={"value": self.date_of_birth_response.age_in_years() - 20})
109+
form.save()
110+
111+
self.assertFalse(
112+
PeriodsWhenYouStoppedSmokingResponse.objects.filter(
113+
response_set=self.response_set
114+
).exists()
115+
)
116+
117+
118+
def test_does_not_delete_periods_when_stopped_smoking_response_if_age_started_smoking_is_not_changed(
119+
self,
120+
):
121+
self.response.value = self.age_when_started_smoking_response.value + 1
122+
self.response.save()
123+
124+
PeriodsWhenYouStoppedSmokingResponseFactory.create(
125+
response_set=self.response_set,
126+
value=True,
127+
duration_years=self.age_when_started_smoking_response.years_smoked_including_stopped() - 1,
128+
)
129+
130+
form = AgeWhenStartedSmokingForm(instance=self.response, data={"value": self.age_when_started_smoking_response.value + 1})
131+
form.save()
132+
133+
self.assertTrue(
134+
PeriodsWhenYouStoppedSmokingResponse.objects.filter(
135+
response_set=self.response_set
136+
).exists()
137+
)

lung_cancer_screening/questions/tests/unit/models/test_age_when_started_smoking_response.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from datetime import datetime
55
from dateutil.relativedelta import relativedelta
66

7+
from ...factories.have_you_ever_smoked_response_factory import HaveYouEverSmokedResponseFactory
8+
79
from ...factories.response_set_factory import ResponseSetFactory
810
from ...factories.age_when_started_smoking_response_factory import AgeWhenStartedSmokingResponseFactory
911
from ...factories.date_of_birth_response_factory import DateOfBirthResponseFactory
@@ -18,6 +20,7 @@ def setUp(self):
1820
response_set=self.response_set,
1921
value=datetime.now() - relativedelta(years=60)
2022
)
23+
HaveYouEverSmokedResponseFactory(response_set=self.response_set, current_smoker=True)
2124

2225
def test_has_a_valid_factory(self):
2326
model = AgeWhenStartedSmokingResponseFactory.build(response_set=self.response_set)

lung_cancer_screening/questions/tests/unit/models/test_periods_when_you_stopped_smoking_response.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from datetime import datetime
44
from dateutil.relativedelta import relativedelta
55

6+
from ...factories.have_you_ever_smoked_response_factory import HaveYouEverSmokedResponseFactory
7+
68
from ...factories.response_set_factory import ResponseSetFactory
79
from ...factories.periods_when_you_stopped_smoking_response_factory import PeriodsWhenYouStoppedSmokingResponseFactory
810
from ...factories.date_of_birth_response_factory import DateOfBirthResponseFactory
@@ -16,6 +18,7 @@ class TestPeriodsWhenYouStoppedSmokingResponse(TestCase):
1618
def setUp(self):
1719
self.response_set = ResponseSetFactory()
1820

21+
HaveYouEverSmokedResponseFactory(response_set=self.response_set, current_smoker=True)
1922
# Following responses required by validator
2023
self.date_of_birth_response = DateOfBirthResponseFactory.create(response_set=self.response_set)
2124
self.age_when_started_smoking_response = AgeWhenStartedSmokingResponseFactory.create(response_set=self.response_set)

lung_cancer_screening/questions/tests/unit/models/test_smoked_total_years_response.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from django.test import TestCase, tag
22
from django.core.exceptions import ValidationError
33

4+
from ...factories.have_you_ever_smoked_response_factory import HaveYouEverSmokedResponseFactory
5+
46
from ...factories.tobacco_smoking_history_factory import TobaccoSmokingHistoryFactory
57
from ...factories.smoked_total_years_response_factory import SmokedTotalYearsResponseFactory
68
from ...factories.age_when_started_smoking_response_factory import AgeWhenStartedSmokingResponseFactory
@@ -10,6 +12,7 @@
1012
class TestSmokedTotalYearsResponse(TestCase):
1113
def setUp(self):
1214
self.tobacco_smoking_history = TobaccoSmokingHistoryFactory()
15+
HaveYouEverSmokedResponseFactory(response_set=self.tobacco_smoking_history.response_set, current_smoker=True)
1316
self.age_started_smoking_response = AgeWhenStartedSmokingResponseFactory.create(
1417
response_set=self.tobacco_smoking_history.response_set
1518
)

lung_cancer_screening/questions/tests/unit/models/test_tobacco_smoking_history.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from django.test import TestCase, tag
22
from django.core.exceptions import ValidationError
33

4+
from ...factories.have_you_ever_smoked_response_factory import HaveYouEverSmokedResponseFactory
5+
46
from ...factories.response_set_factory import ResponseSetFactory
57
from ...factories.age_when_started_smoking_response_factory import AgeWhenStartedSmokingResponseFactory
68
from ...factories.tobacco_smoking_history_factory import TobaccoSmokingHistoryFactory
@@ -15,6 +17,7 @@
1517
class TestTobaccoSmokingHistory(TestCase):
1618
def setUp(self):
1719
self.response_set = ResponseSetFactory()
20+
HaveYouEverSmokedResponseFactory(response_set=self.response_set, current_smoker=True)
1821

1922

2023
def test_has_a_valid_factory(self):

lung_cancer_screening/questions/tests/unit/presenters/test_response_set_presenter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def test_periods_when_you_stopped_smoking_with_no_value(self):
7373
def test_periods_when_you_stopped_smoking_with_value(self):
7474
DateOfBirthResponseFactory(response_set=self.response_set)
7575
age_when_started_smoking_response = AgeWhenStartedSmokingResponseFactory(response_set=self.response_set)
76-
76+
HaveYouEverSmokedResponseFactory(response_set=self.response_set, current_smoker=True)
7777
periods_when_you_stopped_smoking_response = PeriodsWhenYouStoppedSmokingResponseFactory(
7878
response_set=self.response_set,
7979
value=True,

0 commit comments

Comments
 (0)