def test_remap_namespace_native_xblock_default_values(self): # Set the XBlock's location self.xblock.location = Location("org", "import", "run", "category", "stubxblock") # Do NOT set any values, so the fields should use the defaults self.xblock.save() # Remap the namespace target_location_namespace = Location("org", "course", "run", "category", "stubxblock") new_version = _import_module_and_update_references( self.xblock, modulestore(), 999, self.xblock.location.course_key, target_location_namespace.course_key, do_import_static=False, ) # Check the values of the fields. # The content and settings fields should be the default values self.assertEqual(new_version.test_content_field, "default value") self.assertEqual(new_version.test_settings_field, "default value") # The fields should NOT appear in the explicitly set fields self.assertNotIn("test_content_field", new_version.get_explicitly_set_fields_by_scope(scope=Scope.content)) self.assertNotIn("test_settings_field", new_version.get_explicitly_set_fields_by_scope(scope=Scope.settings))
def test_remap_namespace_native_xblock(self): # Set the XBlock's location self.xblock.location = Location("org", "import", "run", "category", "stubxblock") # Explicitly set the content and settings fields self.xblock.test_content_field = "Explicitly set" self.xblock.test_settings_field = "Explicitly set" self.xblock.save() # Move to different runtime w/ different course id target_location_namespace = SlashSeparatedCourseKey("org", "course", "run") new_version = _import_module_and_update_references( self.xblock, modulestore(), 999, self.xblock.location.course_key, target_location_namespace, do_import_static=False, ) # Check the XBlock's location self.assertEqual(new_version.location.course_key, target_location_namespace) # Check the values of the fields. # The content and settings fields should be preserved self.assertEqual(new_version.test_content_field, "Explicitly set") self.assertEqual(new_version.test_settings_field, "Explicitly set") # Expect that these fields are marked explicitly set self.assertIn("test_content_field", new_version.get_explicitly_set_fields_by_scope(scope=Scope.content)) self.assertIn("test_settings_field", new_version.get_explicitly_set_fields_by_scope(scope=Scope.settings))
def test_remap_namespace_native_xblock_inherited_values(self): # Set the XBlock's location self.xblock.location = Location("org", "import", "run", "category", "stubxblock") self.xblock.save() # Remap the namespace target_location_namespace = Location("org", "course", "run", "category", "stubxblock") new_version = _import_module_and_update_references( self.xblock, modulestore(), 999, self.xblock.location.course_key, target_location_namespace.course_key, do_import_static=False) # Inherited fields should NOT be explicitly set self.assertNotIn( 'start', new_version.get_explicitly_set_fields_by_scope( scope=Scope.settings)) self.assertNotIn( 'graded', new_version.get_explicitly_set_fields_by_scope( scope=Scope.settings))
def test_remap_namespace_native_xblock_default_values(self): # Set the XBlock's location self.xblock.location = Location("org", "import", "run", "category", "stubxblock") # Do NOT set any values, so the fields should use the defaults self.xblock.save() # Remap the namespace target_location_namespace = Location("org", "course", "run", "category", "stubxblock") new_version = _import_module_and_update_references( self.xblock, modulestore(), 999, self.xblock.location.course_key, target_location_namespace.course_key, do_import_static=False) # Check the values of the fields. # The content and settings fields should be the default values self.assertEqual(new_version.test_content_field, 'default value') self.assertEqual(new_version.test_settings_field, 'default value') # The fields should NOT appear in the explicitly set fields self.assertNotIn( 'test_content_field', new_version.get_explicitly_set_fields_by_scope( scope=Scope.content)) self.assertNotIn( 'test_settings_field', new_version.get_explicitly_set_fields_by_scope( scope=Scope.settings))
def test_remap_namespace_native_xblock_inherited_values(self): # Set the XBlock's location self.xblock.location = Location("org", "import", "run", "category", "stubxblock") self.xblock.save() # Remap the namespace target_location_namespace = Location("org", "course", "run", "category", "stubxblock") new_version = _import_module_and_update_references( self.xblock, modulestore(), 999, self.xblock.location.course_key, target_location_namespace.course_key, do_import_static=False, ) # Inherited fields should NOT be explicitly set self.assertNotIn("start", new_version.get_explicitly_set_fields_by_scope(scope=Scope.settings)) self.assertNotIn("graded", new_version.get_explicitly_set_fields_by_scope(scope=Scope.settings))
def test_remap_namespace_native_xblock(self): # Set the XBlock's location self.xblock.location = Location("org", "import", "run", "category", "stubxblock") # Explicitly set the content and settings fields self.xblock.test_content_field = "Explicitly set" self.xblock.test_settings_field = "Explicitly set" self.xblock.save() # Move to different runtime w/ different course id target_location_namespace = SlashSeparatedCourseKey( "org", "course", "run") new_version = _import_module_and_update_references( self.xblock, modulestore(), 999, self.xblock.location.course_key, target_location_namespace, do_import_static=False) # Check the XBlock's location self.assertEqual(new_version.location.course_key, target_location_namespace) # Check the values of the fields. # The content and settings fields should be preserved self.assertEqual(new_version.test_content_field, 'Explicitly set') self.assertEqual(new_version.test_settings_field, 'Explicitly set') # Expect that these fields are marked explicitly set self.assertIn( 'test_content_field', new_version.get_explicitly_set_fields_by_scope( scope=Scope.content)) self.assertIn( 'test_settings_field', new_version.get_explicitly_set_fields_by_scope( scope=Scope.settings))