From f8e45e0a8ea4549cf8873d6d23e01d746048f96e Mon Sep 17 00:00:00 2001 From: Victor Shnayder Date: Wed, 28 Nov 2012 13:21:48 -0500 Subject: [PATCH] Add tests for old logic --- common/lib/xmodule/xmodule/tests/__init__.py | 5 ++- .../xmodule/tests/test_self_assessment.py | 38 ++++++++++++++----- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/common/lib/xmodule/xmodule/tests/__init__.py b/common/lib/xmodule/xmodule/tests/__init__.py index 80b933e06d..a07f1ddfaf 100644 --- a/common/lib/xmodule/xmodule/tests/__init__.py +++ b/common/lib/xmodule/xmodule/tests/__init__.py @@ -4,7 +4,7 @@ unittests for xmodule Run like this: rake test_common/lib/xmodule - + """ import unittest @@ -23,7 +23,8 @@ test_system = ModuleSystem( ajax_url='courses/course_id/modx/a_location', track_function=Mock(), get_module=Mock(), - render_template=Mock(), + # "render" to just the context... + render_template=lambda template, context: str(context), replace_urls=Mock(), user=Mock(), filestore=Mock(), diff --git a/common/lib/xmodule/xmodule/tests/test_self_assessment.py b/common/lib/xmodule/xmodule/tests/test_self_assessment.py index 701a7f15fe..0ddcda8764 100644 --- a/common/lib/xmodule/xmodule/tests/test_self_assessment.py +++ b/common/lib/xmodule/xmodule/tests/test_self_assessment.py @@ -12,24 +12,44 @@ class SelfAssessmentTest(unittest.TestCase): definition = {'rubric': 'A rubric', 'prompt': 'Who?', 'submitmessage': 'Shall we submit now?', - 'hintprompt': 'Consider this...'} + 'hintprompt': 'Consider this...', + } location = Location(["i4x", "edX", "sa_test", "selfassessment", "SampleQuestion"]) - metadata = {} + metadata = {'attempts': '10'} descriptor = Mock() def test_import(self): - state = json.dumps({'student_answers': [], - 'scores': [], - 'hints': [], - 'state': 'initial', - 'attempts': 0}) + state = json.dumps({'student_answers': ["Answer 1", "answer 2", "answer 3"], + 'scores': [0, 1], + 'hints': ['o hai'], + 'state': SelfAssessmentModule.ASSESSING, + 'attempts': 2}) module = SelfAssessmentModule(test_system, self.location, self.definition, self.descriptor, - state, {}) + state, {}, metadata=self.metadata) - self.assertEqual(module.get_score(), 0) + self.assertEqual(module.get_score(), 1) + + + self.assertTrue('answer 3' in module.get_html()) + self.assertFalse('answer 2' in module.get_html()) + + module.save_assessment({'assessment': '0'}) + self.assertEqual(module.state, module.REQUEST_HINT) + + module.save_hint({'hint': 'hint for ans 3'}) + self.assertEqual(module.state, module.DONE) + + d = module.reset({}) + self.assertTrue(d['success']) + self.assertEqual(module.state, module.INITIAL) + + # if we now assess as right, skip the REQUEST_HINT state + module.save_answer({'student_answer': 'answer 4'}) + module.save_assessment({'assessment': '1'}) + self.assertEqual(module.state, module.DONE)