Commit 6c1be448 by Usman Khalid

Added tests for prompts field.

TNL-708
parent 2b396453
"""An XBlock where students can read a question and compose their response"""
import datetime as dt
import json
import logging
import pkg_resources
import copy
......@@ -470,7 +471,7 @@ class OpenAssessmentBlock(
"""
if value is None:
self.prompt = ''
self.prompt = None
elif len(value) == 1:
# For backwards compatibility. To be removed after all code
# is migrated to use prompts property instead of prompt field.
......
# -*- coding: utf-8 -*-
"""
Test OpenAssessment XBlock data_conversion.
"""
import ddt
import mock
from django.test import TestCase
from openassessment.xblock.data_conversion import (
create_prompts_list,
)
@ddt.ddt
class DataConversionTest(TestCase):
@ddt.data(
(None, [{'description': ''}]),
('Test prompt.', [{'description': 'Test prompt.'}]),
('[{"description": "Test prompt."}]', [{'description': 'Test prompt.'}]),
)
@ddt.unpack
def test_create_prompts_list(self, input, output):
self.assertEqual(create_prompts_list(input), output)
......@@ -170,6 +170,30 @@ class TestOpenAssessment(XBlockHandlerTestCase):
# Check that we can render the student view without error
self.runtime.render(xblock, 'student_view')
@scenario('data/basic_scenario.xml', user_id='Bob')
def test_prompts_fields(self, xblock):
self.assertEqual(xblock.prompts, [{'description':'Read for conciseness, clarity of thought, and form.'}])
xblock.prompt = None
self.assertEqual(xblock.prompts, [{'description': ''}])
xblock.prompt = 'Prompt.'
self.assertEqual(xblock.prompts, [{'description': 'Prompt.'}])
xblock.prompt = '[{"description": "Prompt 1."}, {"description": "Prompt 2."}, {"description": "Prompt 3."}]'
self.assertEqual(xblock.prompts, [
{'description': 'Prompt 1.'}, {'description': 'Prompt 2.'}, {'description': 'Prompt 3.'}
])
xblock.prompts = None
self.assertEqual(xblock.prompt, None)
xblock.prompts = [{'description': 'Prompt.'}]
self.assertEqual(xblock.prompt, 'Prompt.')
xblock.prompts = [{'description': 'Prompt 4.'}, {'description': 'Prompt 5.'}]
self.assertEqual(xblock.prompt, '[{"description": "Prompt 4."}, {"description": "Prompt 5."}]')
class TestDates(XBlockHandlerTestCase):
......
......@@ -11,7 +11,7 @@ import dateutil.parser
from django.test import TestCase
import ddt
from openassessment.xblock.data_conversion import create_prompts_dict
from openassessment.xblock.data_conversion import create_prompts_list
from openassessment.xblock.openassessmentblock import OpenAssessmentBlock
from openassessment.xblock.xml import (
serialize_content, parse_from_xml_str, parse_rubric_xml,
......@@ -101,7 +101,7 @@ class TestSerializeContent(TestCase):
def _configure_xblock(self, data):
self.oa_block.title = data.get('title', '')
self.oa_block.prompt = data.get('prompt')
self.oa_block.prompts = create_prompts_dict(data.get('prompt'))
self.oa_block.prompts = create_prompts_list(data.get('prompt'))
self.oa_block.rubric_feedback_prompt = data.get('rubric_feedback_prompt')
self.oa_block.rubric_feedback_default_text = data.get('rubric_feedback_default_text')
self.oa_block.start = _parse_date(data.get('start'))
......
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