Commit 1a3f72ab by Tim Krones

Address review comments.

- More neutral default for "get_option"
- Separate integration tests for checking persistence behavior
parent ac902d7f
......@@ -175,11 +175,11 @@ class BaseMentoringBlock(
return xblock_settings[self.options_key]
return _default_options_config
def get_option(self, option, default=False):
def get_option(self, option):
"""
Get value of a specific instance-wide `option`.
"""
return self.get_options().get(option, default)
return self.get_options().get(option)
@XBlock.json_handler
def view(self, data, suffix=''):
......
......@@ -290,38 +290,35 @@ class ProblemBuilderQuestionnaireBlockTest(ProblemBuilderBaseTest):
self.assertFalse(messages.is_displayed())
self.assertFalse(submit.is_enabled())
@ddt.data(
(
{
'pb_mcq_hide_previous_answer': False,
'pb_hide_feedback_if_attempts_remain': False
},
"_standard_checks"
),
(
{
'pb_mcq_hide_previous_answer': False,
'pb_hide_feedback_if_attempts_remain': True
},
"_hide_feedback_checks"
),
(
{
'pb_mcq_hide_previous_answer': True,
'pb_hide_feedback_if_attempts_remain': False
},
"_mcq_hide_previous_answer_checks"
),
(
{
'pb_mcq_hide_previous_answer': True,
'pb_hide_feedback_if_attempts_remain': True
},
"_mcq_hide_previous_answer_hide_feedback_checks"
),
)
@ddt.unpack
def test_persistence(self, options, after_reload_checks):
def test_persists_feedback_on_page_reload(self):
options = {
'pb_mcq_hide_previous_answer': False,
'pb_hide_feedback_if_attempts_remain': False
}
self._test_persistence(options, "_standard_checks")
def test_does_not_persist_feedback_on_page_reload_if_disabled(self):
options = {
'pb_mcq_hide_previous_answer': False,
'pb_hide_feedback_if_attempts_remain': True
}
self._test_persistence(options, "_hide_feedback_checks")
def test_does_not_persist_mcq_on_page_reload_if_disabled(self):
options = {
'pb_mcq_hide_previous_answer': True,
'pb_hide_feedback_if_attempts_remain': False
}
self._test_persistence(options, "_mcq_hide_previous_answer_checks")
def test_does_not_persist_mcq_and_feedback_on_page_reload_if_disabled(self):
options = {
'pb_mcq_hide_previous_answer': True,
'pb_hide_feedback_if_attempts_remain': True
}
self._test_persistence(options, "_mcq_hide_previous_answer_hide_feedback_checks")
def _test_persistence(self, options, after_reload_checks):
with mock.patch("problem_builder.mentoring.MentoringBlock.get_options") as patched_options:
patched_options.return_value = options
mentoring = self.load_scenario("feedback_persistence.xml")
......
......@@ -221,7 +221,7 @@ class TestMentoringBlockOptions(unittest.TestCase):
patched_get_options.return_value = {}
option = self.block.get_option(random_key)
patched_get_options.assert_called_once_with()
self.assertEqual(option, False)
self.assertEqual(option, None)
def test_student_view_calls_get_option(self):
self.block.get_xblock_settings = Mock(return_value={})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment