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( ...@@ -175,11 +175,11 @@ class BaseMentoringBlock(
return xblock_settings[self.options_key] return xblock_settings[self.options_key]
return _default_options_config return _default_options_config
def get_option(self, option, default=False): def get_option(self, option):
""" """
Get value of a specific instance-wide `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 @XBlock.json_handler
def view(self, data, suffix=''): def view(self, data, suffix=''):
......
...@@ -290,38 +290,35 @@ class ProblemBuilderQuestionnaireBlockTest(ProblemBuilderBaseTest): ...@@ -290,38 +290,35 @@ class ProblemBuilderQuestionnaireBlockTest(ProblemBuilderBaseTest):
self.assertFalse(messages.is_displayed()) self.assertFalse(messages.is_displayed())
self.assertFalse(submit.is_enabled()) self.assertFalse(submit.is_enabled())
@ddt.data( def test_persists_feedback_on_page_reload(self):
( options = {
{ 'pb_mcq_hide_previous_answer': False,
'pb_mcq_hide_previous_answer': False, 'pb_hide_feedback_if_attempts_remain': False
'pb_hide_feedback_if_attempts_remain': False }
}, self._test_persistence(options, "_standard_checks")
"_standard_checks"
), def test_does_not_persist_feedback_on_page_reload_if_disabled(self):
( options = {
{ 'pb_mcq_hide_previous_answer': False,
'pb_mcq_hide_previous_answer': False, 'pb_hide_feedback_if_attempts_remain': True
'pb_hide_feedback_if_attempts_remain': True }
}, self._test_persistence(options, "_hide_feedback_checks")
"_hide_feedback_checks"
), def test_does_not_persist_mcq_on_page_reload_if_disabled(self):
( options = {
{ 'pb_mcq_hide_previous_answer': True,
'pb_mcq_hide_previous_answer': True, 'pb_hide_feedback_if_attempts_remain': False
'pb_hide_feedback_if_attempts_remain': False }
}, self._test_persistence(options, "_mcq_hide_previous_answer_checks")
"_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_mcq_hide_previous_answer': True, 'pb_hide_feedback_if_attempts_remain': True
'pb_hide_feedback_if_attempts_remain': True }
}, self._test_persistence(options, "_mcq_hide_previous_answer_hide_feedback_checks")
"_mcq_hide_previous_answer_hide_feedback_checks"
), def _test_persistence(self, options, after_reload_checks):
)
@ddt.unpack
def test_persistence(self, options, after_reload_checks):
with mock.patch("problem_builder.mentoring.MentoringBlock.get_options") as patched_options: with mock.patch("problem_builder.mentoring.MentoringBlock.get_options") as patched_options:
patched_options.return_value = options patched_options.return_value = options
mentoring = self.load_scenario("feedback_persistence.xml") mentoring = self.load_scenario("feedback_persistence.xml")
......
...@@ -221,7 +221,7 @@ class TestMentoringBlockOptions(unittest.TestCase): ...@@ -221,7 +221,7 @@ class TestMentoringBlockOptions(unittest.TestCase):
patched_get_options.return_value = {} patched_get_options.return_value = {}
option = self.block.get_option(random_key) option = self.block.get_option(random_key)
patched_get_options.assert_called_once_with() patched_get_options.assert_called_once_with()
self.assertEqual(option, False) self.assertEqual(option, None)
def test_student_view_calls_get_option(self): def test_student_view_calls_get_option(self):
self.block.get_xblock_settings = Mock(return_value={}) 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