Skip to content

Commit

Permalink
Merge pull request #307 from cfpb/fix-cost-error-method
Browse files Browse the repository at this point in the history
Catch missing URL values in cost-error model method
  • Loading branch information
higs4281 committed Jun 2, 2017
2 parents 37e2c2b + d545a22 commit c0d7041
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 4 deletions.
6 changes: 4 additions & 2 deletions paying_for_college/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -400,8 +400,10 @@ def total_fields(field_list):
def cost_error(self):
"""Return 1 or 0: Is total-cost less than tuition?"""
url_data = self.parsed_url
if url_data and url_data['totl'] != '' and url_data['tuit'] != '':
if int(url_data['totl']) < int(url_data['tuit']):
if url_data:
totl = url_data.get('totl') or 0
tuit = url_data.get('tuit') or 0
if int(totl) < int(tuit):
return 1
else:
return 0
Expand Down
36 changes: 34 additions & 2 deletions paying_for_college/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -289,12 +289,44 @@ def test_feedback_unmet_cost(self):
feedback.url = feedback.url.replace('offer', 'feedback')
self.assertIs(feedback.unmet_cost, None)

def test_feedback_cost_error(self):
def test_feedback_cost_error_valid_values(self):
feedback = self.create_feedback()
self.assertEqual(feedback.cost_error, 0)

def test_feedback_cost_error_true(self):
feedback = self.create_feedback()
feedback.url = feedback.url.replace('totl=81467', 'totl=1000')
self.assertEqual(feedback.cost_error, 1)
feedback.url = feedback.url.replace('totl=1000', 'totl=')

def test_feedback_cost_error_blank_totl(self):
feedback = self.create_feedback()
feedback.url = feedback.url.replace('totl=81467', 'totl=')
self.assertEqual(feedback.cost_error, 1)

def test_feedback_cost_error_blank_tuition(self):
feedback = self.create_feedback()
feedback.url = feedback.url.replace('tuit=16107', 'tuit=')
self.assertEqual(feedback.cost_error, 0)

def test_feedback_cost_error_missing_tuit_field(self):
feedback = self.create_feedback()
feedback.url = feedback.url.replace('&tuit=16107', '')
self.assertEqual(feedback.cost_error, 0)

def test_feedback_cost_error_missing_totl_field(self):
feedback = self.create_feedback()
feedback.url = feedback.url.replace('&totl=81467', '')
self.assertEqual(feedback.cost_error, 1)

def test_feedback_cost_error_missing_totl_and_tuit_fields(self):
feedback = self.create_feedback()
feedback.url = feedback.url.replace('&tuit=16107', '')
feedback.url = feedback.url.replace('&totl=81467', '')
self.assertEqual(feedback.cost_error, 0)

def test_feedback_cost_error_missing_url(self):
feedback = self.create_feedback()
feedback.url = ''
self.assertEqual(feedback.cost_error, 0)

def test_feedback_tuition_plan(self):
Expand Down

0 comments on commit c0d7041

Please sign in to comment.