def test_migrate_skill_contents_to_latest_schema(self): skill_services.create_new_skill_rights('skill_id', 'user_id_admin') commit_cmd = skill_domain.SkillChange( {'cmd': skill_domain.CMD_CREATE_NEW}) explanation_content_id = feconf.DEFAULT_SKILL_EXPLANATION_CONTENT_ID skill_contents = skill_domain.SkillContents( state_domain.SubtitledHtml(explanation_content_id, feconf.DEFAULT_SKILL_EXPLANATION), [], {explanation_content_id: {}}, state_domain.WrittenTranslations.from_dict( {'translations_mapping': { explanation_content_id: {} }})) model = skill_models.SkillModel( id='skill_id', description='description', language_code='en', misconceptions=[], skill_contents=skill_contents.to_dict(), next_misconception_id=1, misconceptions_schema_version=1, skill_contents_schema_version=1, all_questions_merged=False) commit_cmd_dicts = [commit_cmd.to_dict()] model.commit('user_id_admin', 'skill model created', commit_cmd_dicts) swap_skill_object = self.swap(skill_domain, 'Skill', MockSkillObject) current_schema_version_swap = self.swap( feconf, 'CURRENT_SKILL_CONTENTS_SCHEMA_VERSION', 2) with swap_skill_object, current_schema_version_swap: skill = skill_services.get_skill_from_model(model) self.assertEqual(skill.skill_contents_schema_version, 2)
def test_get_skill_from_model_with_invalid_rubric_schema_version(self): skill_services.create_new_skill_rights('skill_id', self.user_id_admin) commit_cmd = skill_domain.SkillChange({ 'cmd': skill_domain.CMD_CREATE_NEW }) model = skill_models.SkillModel( id='skill_id', description='description', language_code='en', misconceptions=[], rubrics=[], next_misconception_id=0, misconceptions_schema_version=1, rubric_schema_version=0, skill_contents_schema_version=1, all_questions_merged=False ) commit_cmd_dicts = [commit_cmd.to_dict()] model.commit( self.user_id_admin, 'skill model created', commit_cmd_dicts) with self.assertRaisesRegexp( Exception, 'Sorry, we can only process v1-v%d rubric schemas at ' 'present.' % feconf.CURRENT_RUBRIC_SCHEMA_VERSION): skill_services.get_skill_from_model(model)