diff --git a/common/lib/xmodule/xmodule/tests/test_library_content.py b/common/lib/xmodule/xmodule/tests/test_library_content.py
index 0ae8a60c28..5ab2eaa575 100644
--- a/common/lib/xmodule/xmodule/tests/test_library_content.py
+++ b/common/lib/xmodule/xmodule/tests/test_library_content.py
@@ -80,28 +80,33 @@ class TestLibraries(MixedSplitTestCase):
module_system.get_module = get_module
module.xmodule_runtime = module_system
- def _get_capa_problem_type_xml(self, problem_type):
+ def _get_capa_problem_type_xml(self, *args):
""" Helper function to create empty CAPA problem definition """
- return "<{problem_type}>{problem_type}>".format(problem_type=problem_type)
+ problem = ""
+ for problem_type in args:
+ problem += "<{problem_type}>{problem_type}>".format(problem_type=problem_type)
+ problem += ""
+ return problem
def _create_capa_problems(self):
- """ Helper function to create two capa problems: multiplechoiceresponse and optionresponse """
- ItemFactory.create(
- category="problem",
- parent_location=self.library.location,
- user_id=self.user_id,
- publish_item=False,
- data=self._get_capa_problem_type_xml("multiplechoiceresponse"),
- modulestore=self.store,
- )
- ItemFactory.create(
- category="problem",
- parent_location=self.library.location,
- user_id=self.user_id,
- publish_item=False,
- data=self._get_capa_problem_type_xml("optionresponse"),
- modulestore=self.store,
- )
+ """
+ Helper function to create a set of capa problems to test against.
+
+ Creates four blocks total.
+ """
+ problem_types = [
+ ["multiplechoiceresponse"], ["optionresponse"], ["optionresponse", "coderesponse"],
+ ["coderesponse", "optionresponse"]
+ ]
+ for problem_type in problem_types:
+ ItemFactory.create(
+ category="problem",
+ parent_location=self.library.location,
+ user_id=self.user_id,
+ publish_item=False,
+ data=self._get_capa_problem_type_xml(*problem_type),
+ modulestore=self.store,
+ )
def test_lib_content_block(self):
"""
@@ -184,7 +189,7 @@ class TestLibraries(MixedSplitTestCase):
self.assertTrue(self.lc_block.validate())
# ... unless requested more blocks than exists in library
- self.lc_block.max_count = 3
+ self.lc_block.max_count = 10
self.lc_block.capa_type = 'multiplechoiceresponse'
result = self.lc_block.validate()
self.assertFalse(result) # Validation fails due to at least one warning/message
@@ -213,7 +218,11 @@ class TestLibraries(MixedSplitTestCase):
self.lc_block.capa_type = "optionresponse"
self.lc_block.refresh_children(None, None)
- self.assertEqual(len(self.lc_block.children), 1)
+ self.assertEqual(len(self.lc_block.children), 3)
+
+ self.lc_block.capa_type = "coderesponse"
+ self.lc_block.refresh_children(None, None)
+ self.assertEqual(len(self.lc_block.children), 2)
self.lc_block.capa_type = "customresponse"
self.lc_block.refresh_children(None, None)
@@ -221,4 +230,4 @@ class TestLibraries(MixedSplitTestCase):
self.lc_block.capa_type = ANY_CAPA_TYPE_VALUE
self.lc_block.refresh_children(None, None)
- self.assertEqual(len(self.lc_block.children), len(self.lib_blocks) + 2)
+ self.assertEqual(len(self.lc_block.children), len(self.lib_blocks) + 4)