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
4 changes: 2 additions & 2 deletions problem_builder/mentoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -510,9 +510,9 @@ def review_tips(self):
if result and result.get('status') != 'correct':
# The student got this wrong. Check if there is a review tip to show.
tip_html = child.get_review_tip()
if hasattr(self.runtime, 'replace_jump_to_id_urls'):
tip_html = self.runtime.replace_jump_to_id_urls(tip_html)
if tip_html:
if hasattr(self.runtime, 'replace_jump_to_id_urls'):
tip_html = self.runtime.replace_jump_to_id_urls(tip_html)
review_tips.append(tip_html)
return review_tips

Expand Down
16 changes: 16 additions & 0 deletions problem_builder/tests/unit/test_mentoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,3 +168,19 @@ def test_get_tip_content(self):
self.block.steps = [self.mcq_block]
self.block.student_results = {'test_mcq': {'status': 'incorrect'}}
self.assertEqual(self.block.review_tips, ['replaced-url'])

def test_get_tip_content_no_tips(self):
self.mcq_block = MCQBlock(self.runtime_mock, DictFieldData({'name': 'test_mcq'}), Mock())
self.mcq_block.get_review_tip = Mock()
# If there are no review tips, get_review_tip will return None;
# simulate this situation here:
self.mcq_block.get_review_tip.return_value = None
self.block.step_ids = []
self.block.steps = [self.mcq_block]
self.block.student_results = {'test_mcq': {'status': 'incorrect'}}
try:
review_tips = self.block.review_tips
except TypeError:
self.fail('Trying to replace jump_to_id URLs in non-existent review tips.')
else:
self.assertEqual(review_tips, [])