@@ -2903,6 +2903,16 @@ def setUp(self):
29032903
29042904 self .templates = get_component_templates (self .course )
29052905
2906+ self .default_advanced_modules_titles = [
2907+ "Google Calendar" ,
2908+ "Google Document" ,
2909+ "LTI Consumer" ,
2910+ "Poll" ,
2911+ "Content Experiment" ,
2912+ "Survey" ,
2913+ "Word cloud" ,
2914+ ]
2915+
29062916 def get_templates_of_type (self , template_type ):
29072917 """
29082918 Returns the templates for the specified type, or None if none is found.
@@ -2956,7 +2966,12 @@ def test_basic_components(self):
29562966 self .assertGreater (len (self .get_templates_of_type ("library" )), 0 )
29572967 self .assertGreater (len (self .get_templates_of_type ("html" )), 0 )
29582968 self .assertGreater (len (self .get_templates_of_type ("problem" )), 0 )
2959- self .assertIsNone (self .get_templates_of_type ("advanced" ))
2969+
2970+ # Check for default advanced modules
2971+ advanced_templates = self .get_templates_of_type ("advanced" )
2972+ self .assertEqual (len (advanced_templates ), len (settings .DEFAULT_ADVANCED_MODULES ))
2973+ advanced_module_titles = [t ['display_name' ] for t in advanced_templates ]
2974+ self .assertEqual (advanced_module_titles , self .default_advanced_modules_titles )
29602975
29612976 # Now fully disable video through XBlockConfiguration
29622977 XBlockConfiguration .objects .create (name = "video" , enabled = False )
@@ -3004,29 +3019,38 @@ def test_advanced_components(self):
30043019 """
30053020 Test the handling of advanced component templates.
30063021 """
3007- self .course .advanced_modules .append ("word_cloud" )
3022+ self .course .advanced_modules .append ("done" )
3023+ EXPECTED_ADVANCED_MODULES_LENGTH = len (settings .DEFAULT_ADVANCED_MODULES ) + 1
30083024 self .templates = get_component_templates (self .course )
30093025 advanced_templates = self .get_templates_of_type ("advanced" )
3010- self .assertEqual (len (advanced_templates ), 1 )
3011- world_cloud_template = advanced_templates [0 ]
3012- self .assertEqual (world_cloud_template .get ("category" ), "word_cloud " )
3013- self .assertEqual (world_cloud_template .get ("display_name" ), "Word cloud " )
3014- self .assertIsNone (world_cloud_template .get ("boilerplate_name" , None ))
3026+ self .assertEqual (len (advanced_templates ), EXPECTED_ADVANCED_MODULES_LENGTH )
3027+ done_template = advanced_templates [0 ]
3028+ self .assertEqual (done_template .get ("category" ), "done " )
3029+ self .assertEqual (done_template .get ("display_name" ), "Completion " )
3030+ self .assertIsNone (done_template .get ("boilerplate_name" , None ))
30153031
3016- # Verify that non-advanced components are not added twice
3032+ # Verify that components are not added twice
30173033 self .course .advanced_modules .append ("video" )
30183034 self .course .advanced_modules .append ("drag-and-drop-v2" )
3035+ # Already defined advanced modules
3036+ self .course .advanced_modules .append ("poll" )
3037+ self .course .advanced_modules .append ("google-document" )
3038+ self .course .advanced_modules .append ("survey" )
3039+
30193040 self .templates = get_component_templates (self .course )
30203041 advanced_templates = self .get_templates_of_type ("advanced" )
3021- self .assertEqual (len (advanced_templates ), 1 )
3042+ self .assertEqual (len (advanced_templates ), EXPECTED_ADVANCED_MODULES_LENGTH )
30223043 only_template = advanced_templates [0 ]
30233044 self .assertNotEqual (only_template .get ("category" ), "video" )
30243045 self .assertNotEqual (only_template .get ("category" ), "drag-and-drop-v2" )
3046+ self .assertNotEqual (only_template .get ("category" ), "poll" )
3047+ self .assertNotEqual (only_template .get ("category" ), "google-document" )
3048+ self .assertNotEqual (only_template .get ("category" ), "survey" )
30253049
3026- # Now fully disable word_cloud through XBlockConfiguration
3027- XBlockConfiguration .objects .create (name = "word_cloud " , enabled = False )
3050+ # Now fully disable done through XBlockConfiguration
3051+ XBlockConfiguration .objects .create (name = "done " , enabled = False )
30283052 self .templates = get_component_templates (self .course )
3029- self .assertIsNone ( self .get_templates_of_type ("advanced" ))
3053+ self .assertTrue (( not any ( item . get ( "category" ) == "done" for item in self .get_templates_of_type ("advanced" )) ))
30303054
30313055 def test_advanced_problems (self ):
30323056 """
@@ -3087,8 +3111,9 @@ def test_create_support_level_flag_off(self):
30873111 XBlockConfiguration) if XBlockStudioConfigurationFlag is False.
30883112 """
30893113 XBlockStudioConfigurationFlag .objects .create (enabled = False )
3090- self .course .advanced_modules .extend (["annotatable" , "survey" ])
3091- self ._verify_advanced_xblocks (["Annotation" , "Survey" ], [True , True ])
3114+ self .course .advanced_modules .extend (["annotatable" , "done" ])
3115+ expected_xblocks = ["Annotation" , "Completion" ] + self .default_advanced_modules_titles
3116+ self ._verify_advanced_xblocks (expected_xblocks , [True ] * len (expected_xblocks ))
30923117
30933118 def test_xblock_masquerading_as_problem (self ):
30943119 """
0 commit comments