Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)