def test_learning_achievement_save(self):
        learning_achievement = LearningAchievementFactory(
            learning_unit_year=self.learning_unit_year,
            language=self.language_fr)
        learning_achievement_en = LearningAchievementFactory(
            learning_unit_year=self.learning_unit_year,
            language=self.language_en)
        response = self.client.post(reverse('achievement_edit',
                                            kwargs={
                                                'learning_unit_year_id':
                                                self.learning_unit_year.id,
                                                'learning_achievement_id':
                                                learning_achievement.id
                                            }),
                                    data={
                                        'code_name': 'AA1',
                                        'text_fr': 'Text',
                                        'lua_fr_id': learning_achievement.id,
                                        'lua_en_id': learning_achievement_en.id
                                    })

        expected_redirection = reverse(
            "learning_unit_specifications",
            kwargs={'learning_unit_year_id': self.learning_unit_year.id
                    }) + "{}{}".format(HTML_ANCHOR, learning_achievement.id)
        self.assertRedirects(response,
                             expected_redirection,
                             fetch_redirect_response=False)
    def test_down(self):
        achievement_fr_0 = LearningAchievementFactory(
            language=self.language_fr,
            learning_unit_year=self.learning_unit_year)
        id_fr_0 = achievement_fr_0.id
        achievement_en_0 = LearningAchievementFactory(
            language=self.language_en,
            learning_unit_year=self.learning_unit_year)
        id_en_0 = achievement_en_0.id
        achievement_fr_1 = LearningAchievementFactory(
            language=self.language_fr,
            learning_unit_year=self.learning_unit_year)
        id_fr_1 = achievement_fr_1.id
        achievement_en_1 = LearningAchievementFactory(
            language=self.language_en,
            learning_unit_year=self.learning_unit_year)
        id_en_1 = achievement_en_1.id

        request_factory = RequestFactory()
        request = request_factory.post(
            reverse('achievement_management',
                    args=[achievement_fr_0.learning_unit_year.id]))
        request.user = self.user
        operation(achievement_fr_0.id, DOWN)

        self.assertEqual(LearningAchievement.objects.get(pk=id_fr_0).order, 1)
        self.assertEqual(LearningAchievement.objects.get(pk=id_fr_1).order, 0)
        self.assertEqual(LearningAchievement.objects.get(pk=id_en_0).order, 1)
        self.assertEqual(LearningAchievement.objects.get(pk=id_en_1).order, 0)
    def test_learning_achievement_save_triggers_cms_save(self, mock_translated_text_update_or_create):
        learning_achievement = LearningAchievementFactory(
            code_name=1,
            learning_unit_year=self.luy,
            language=self.language_fr,
            consistency_id=1
        )
        learning_achievement_en = LearningAchievementFactory(
            code_name=1,
            learning_unit_year=self.luy,
            language=self.language_en,
            consistency_id=1
        )
        TextLabelFactory(label='themes_discussed')

        self.client.post(reverse(
            'achievement_edit',
            kwargs={
                'learning_unit_year_id': self.luy.id,
                'learning_achievement_id': learning_achievement.id
            }
        ),
            data={
                'code_name': 'AA1',
                'text_fr': 'Text',
                'postpone': 0,
                'consistency_id': 1,
            }
        )
        self.assertTrue(mock_translated_text_update_or_create.called)
 def _test_learning_achievement_save(self):
     learning_achievement = LearningAchievementFactory(
         learning_unit_year=self.luy,
         language=self.language_fr
     )
     learning_achievement_en = LearningAchievementFactory(
         learning_unit_year=self.luy,
         language=self.language_en
     )
     response = self.client.post(reverse(
         'achievement_edit',
         kwargs={
             'learning_unit_year_id': self.luy.id,
             'learning_achievement_id': learning_achievement.id
         }
     ),
         data={
             'code_name': 'AA1',
             'text_fr': 'Text',
             'lua_fr_id': learning_achievement.id,
             'lua_en_id': learning_achievement_en.id,
             'postpone': 0
         }
     )
     self.assertEqual(response.status_code, 200)
     msg = get_messages_from_response(response)
     return msg
    def test_up(self):
        achievement_fr_0 = LearningAchievementFactory(
            language=self.language_fr,
            learning_unit_year=self.learning_unit_year)
        id_fr_0 = achievement_fr_0.id
        achievement_en_0 = LearningAchievementFactory(
            language=self.language_en,
            learning_unit_year=self.learning_unit_year)
        id_en_0 = achievement_en_0.id
        achievement_fr_1 = LearningAchievementFactory(
            language=self.language_fr,
            learning_unit_year=self.learning_unit_year)
        id_fr_1 = achievement_fr_1.id
        achievement_en_1 = LearningAchievementFactory(
            language=self.language_en,
            learning_unit_year=self.learning_unit_year)
        id_en_1 = achievement_en_1.id

        request_factory = RequestFactory()
        request = request_factory.post(management)
        request.user = self.user
        operation(achievement_fr_1.id, UP)

        self.assertEqual(LearningAchievement.objects.get(pk=id_fr_0).order, 1)
        self.assertEqual(LearningAchievement.objects.get(pk=id_fr_1).order, 0)
        self.assertEqual(LearningAchievement.objects.get(pk=id_en_0).order, 1)
        self.assertEqual(LearningAchievement.objects.get(pk=id_en_1).order, 0)
    def setUp(self):
        self.language_fr = LanguageFactory(code="FR")
        self.language_en = LanguageFactory(code="EN")
        self.user = UserFactory()
        self.person = PersonFactory(user=self.user)
        self.person_entity = PersonEntityFactory(person=self.person)

        self.academic_year = create_current_academic_year()
        self.learning_unit_year = LearningUnitYearFactory(
            academic_year=self.academic_year,
            subtype=learning_unit_year_subtypes.FULL,
            learning_container_year__requirement_entity=self.person_entity.entity,
        )
        self.client.force_login(self.user)
        self.achievement_fr = LearningAchievementFactory(
            language=self.language_fr,
            learning_unit_year=self.learning_unit_year,
            order=0
        )
        self.achievement_en = LearningAchievementFactory(
            language=self.language_en,
            learning_unit_year=self.learning_unit_year,
            order=0,
            code_name=self.achievement_fr.code_name
        )
        self.reverse_learning_unit_yr = reverse('learning_unit', args=[self.learning_unit_year.id])
        flag, created = Flag.objects.get_or_create(name='learning_achievement_update')
        flag.users.add(self.user)
        self.request_factory = RequestFactory()
Beispiel #7
0
 def test_get_code_name_for_first_en_achievement_two_fr_exists(self):
     achievement_fr_0 = LearningAchievementFactory(
         language=self.language_fr,
         learning_unit_year=self.learning_unit_year)
     LearningAchievementFactory(language=self.language_fr,
                                learning_unit_year=self.learning_unit_year)
     self.assertEqual(get_code_name(achievement_fr_0, EN_CODE_LANGUAGE),
                      achievement_fr_0.code_name)
 def test_unique(self):
     LearningAchievementFactory(consistency_id=1,
                                learning_unit_year=self.luy,
                                language=self.language_fr)
     with self.assertRaises(IntegrityError):
         LearningAchievementFactory(consistency_id=1,
                                    learning_unit_year=self.luy,
                                    language=self.language_fr)
Beispiel #9
0
 def test_find_by_learning_unit_year(self):
     luy_achievement_fr = LearningAchievementFactory(code_name=A_CODE_NAME, learning_unit_year=self.luy,
                                                     language=self.language_fr)
     luy_achievement_en = LearningAchievementFactory(code_name=A_CODE_NAME, learning_unit_year=self.luy,
                                                     language=self.language_en)
     result = learning_achievement.find_by_learning_unit_year(self.luy)
     self.assertIn(luy_achievement_fr, result)
     self.assertIn(luy_achievement_en, result)
Beispiel #10
0
 def test_unique(self):
     LearningAchievementFactory(code_name=A_CODE_NAME,
                                learning_unit_year=self.luy,
                                language=self.language_fr)
     with self.assertRaises(IntegrityError):
         LearningAchievementFactory(code_name=A_CODE_NAME,
                                    learning_unit_year=self.luy,
                                    language=self.language_fr)
Beispiel #11
0
 def test_get_previous_achievement(self):
     achievement_fr_0 = LearningAchievementFactory(
         language=self.language_fr,
         learning_unit_year=self.learning_unit_year)
     achievement_fr_1 = LearningAchievementFactory(
         language=self.language_fr,
         learning_unit_year=self.learning_unit_year)
     self.assertEqual(get_previous_achievement(achievement_fr_1),
                      achievement_fr_0)
Beispiel #12
0
 def test_find_previous_achievements(self):
     luy_achievement_fr_0 = LearningAchievementFactory(code_name=A_CODE_NAME,
                                                       learning_unit_year=self.luy,
                                                       language=self.language_fr)
     luy_achievement_fr_1 = LearningAchievementFactory(code_name=A2_CODE_NAME,
                                                       learning_unit_year=self.luy,
                                                       language=self.language_fr)
     self.assertCountEqual(learning_achievement.find_previous_achievements(luy_achievement_fr_1.learning_unit_year,
                                                                           luy_achievement_fr_1.language,
                                                                           luy_achievement_fr_1.order), [luy_achievement_fr_0])
Beispiel #13
0
 def test_find_by_learning_unit_year_order(self):
     luy_achievement_fr_1 = LearningAchievementFactory(code_name=A_CODE_NAME, learning_unit_year=self.luy,
                                                       language=self.language_fr)
     luy_achievement_en_1 = LearningAchievementFactory(code_name=A_CODE_NAME, learning_unit_year=self.luy,
                                                       language=self.language_en)
     luy_achievement_fr_2 = LearningAchievementFactory(code_name=A2_CODE_NAME, learning_unit_year=self.luy,
                                                       language=self.language_fr)
     # By default, OrderModel insert with the highest model + 1
     expected_result = [luy_achievement_en_1, luy_achievement_fr_1, luy_achievement_fr_2]
     result = list(learning_achievement.find_by_learning_unit_year(self.luy))
     self.assertListEqual(result, expected_result)
 def test_learning_achievement_create_existing_learning_achievement_in_future(self):
     achievement_fr = LearningAchievementFactory(language=self.language_fr, learning_unit_year=self.luy)
     future_achievement_fr = LearningAchievementFactory(
         language=self.language_fr,
         learning_unit_year=self.future_luy,
         consistency_id=achievement_fr.consistency_id+1
     )
     response = self.client.get(
         reverse('achievement_create', args=[self.luy.id, achievement_fr.id]),
         data={'language_code': self.language_fr.code}
     )
     self.assertTemplateUsed(response, 'learning_unit/achievement_edit.html')
     self.assertIsInstance(response.context['form'], LearningAchievementEditForm)
     self.assertEqual(response.context['form'].consistency_id, future_achievement_fr.consistency_id+1)
Beispiel #15
0
 def setUpTestData(cls):
     cls._create_luy()
     cls._set_entities()
     cls._create_cms_data()
     cls.teaching_material = TeachingMaterialFactory(
         learning_unit_year=cls.l_unit_yr_1,
         title='Teaching material title')
     cls.learning_unit_achievement_fr = LearningAchievementFactory(
         learning_unit_year=cls.l_unit_yr_1,
         language=LanguageFactory(code='FR'))
     cls.learning_unit_achievement_en = LearningAchievementFactory(
         learning_unit_year=cls.l_unit_yr_1,
         language=LanguageFactory(code='EN'))
     cls.entity_requirement = EntityVersion.objects.filter(entity=OuterRef(
         'learning_container_year__requirement_entity'), ).current(
             OuterRef('academic_year__start_date')).values('acronym')[:1]
Beispiel #16
0
 def test_get_anchor_reference_for_no_delete_operation(self):
     achievement_fr_0 = LearningAchievementFactory(
         language=self.language_fr,
         learning_unit_year=self.learning_unit_year)
     self.assertEqual(get_anchor_reference('NO_DELETE', None), "")
     self.assertEqual(get_anchor_reference('NO_DELETE', achievement_fr_0),
                      "")
 def test_learning_achievement_edit(self):
     learning_achievement = LearningAchievementFactory(learning_unit_year=self.luy)
     response = self.client.get(
         reverse('achievement_edit', args=[self.luy.id, learning_achievement.id]),
         data={'achievement_id': learning_achievement.id}
     )
     self.assertTemplateUsed(response, 'learning_unit/achievement_edit.html')
     self.assertIsInstance(response.context['form'], LearningAchievementEditForm)
Beispiel #18
0
    def test_get_anchor_reference_for_delete(self):
        achievement_fr_0 = LearningAchievementFactory(
            language=self.language_fr,
            learning_unit_year=self.learning_unit_year)
        self.assertEqual(get_anchor_reference(DELETE, achievement_fr_0), "")
        achievement_fr_1 = LearningAchievementFactory(
            language=self.language_fr,
            learning_unit_year=self.learning_unit_year)

        self.assertEqual(get_anchor_reference(DELETE, achievement_fr_1),
                         "{}{}".format(HTML_ANCHOR, achievement_fr_0.id))

        achievement_fr_3 = LearningAchievementFactory(
            language=self.language_fr,
            learning_unit_year=self.learning_unit_year)

        self.assertEqual(get_anchor_reference(DELETE, achievement_fr_3),
                         "{}{}".format(HTML_ANCHOR, achievement_fr_1.id))
Beispiel #19
0
 def setUpTestData(cls):
     cls.language_fr = LanguageFactory(code="FR")
     cls.language_en = LanguageFactory(code="EN")
     cls.learning_unit_year = LearningUnitYearFactory(
         academic_year=create_current_academic_year())
     cls.learning_achievement = LearningAchievementFactory(
         learning_unit_year=cls.learning_unit_year,
         language=cls.language_fr,
         code_name='TEST',
     )
Beispiel #20
0
 def test_find_previous_achievements_no_result(self):
     luy_achievement_fr = LearningAchievementFactory(code_name=A_CODE_NAME,
                                                       learning_unit_year=self.luy,
                                                       language=self.language_fr)
     self.assertCountEqual(learning_achievement.find_previous_achievements(luy_achievement_fr.learning_unit_year,
                                                         luy_achievement_fr.language,
                                                     luy_achievement_fr.order), [])
     self.assertCountEqual(learning_achievement.find_previous_achievements(None,
                                                                           luy_achievement_fr.language,
                                                                           luy_achievement_fr.order), [])
Beispiel #21
0
 def test_find_learning_unit_achievement(self):
     luy_achievement_fr_1 = LearningAchievementFactory(code_name=A_CODE_NAME,
                                                       learning_unit_year=self.luy,
                                                       language=self.language_fr)
     self.assertEqual(learning_achievement.find_learning_unit_achievement(luy_achievement_fr_1.learning_unit_year,
                                                                          luy_achievement_fr_1.language.code,
                                                                          0), luy_achievement_fr_1)
     self.assertIsNone(learning_achievement.find_learning_unit_achievement(luy_achievement_fr_1.learning_unit_year,
                                                                           luy_achievement_fr_1.language.code,
                                                                           100))
 def test_delete(self):
     achievements = [
         LearningAchievementFactory(language=lang, learning_unit_year=self.luy, consistency_id=consistency_id)
         for lang in [self.language_fr, self.language_en] for consistency_id in [1, 2]
     ]
     self.client.post(
         reverse('achievement_management', args=[self.luy.id]),
         data={'action': DELETE, 'achievement_id': achievements[0].id}
     )
     self.assertEqual(set(LearningAchievement.objects.all()), {achievements[1], achievements[3]})
Beispiel #23
0
 def test_delete(self):
     achievement_fr_0 = LearningAchievementFactory(language=self.language_fr,
                                                   learning_unit_year=self.learning_unit_year,
                                                   order=0)
     achievement_en_0 = LearningAchievementFactory(language=self.language_en,
                                                   learning_unit_year=self.learning_unit_year,
                                                   order=0)
     achievement_fr_1 = LearningAchievementFactory(language=self.language_fr,
                                                   learning_unit_year=self.learning_unit_year,
                                                   order=1)
     LearningAchievementFactory(language=self.language_en,
                                learning_unit_year=self.learning_unit_year,
                                order=1)
     request_factory = RequestFactory()
     request = request_factory.post(management)
     request.user = self.user
     operation(achievement_fr_1.id, 'delete')
     self.assertCountEqual(LearningAchievement.objects.all(), [achievement_fr_0,
                                                               achievement_en_0])
 def test_learning_achievement_create(self):
     achievement_fr = LearningAchievementFactory(language=self.language_fr, learning_unit_year=self.luy)
     response = self.client.get(
         reverse('achievement_create', args=[self.luy.id, achievement_fr.id]),
         data={'language_code': self.language_fr.code}
     )
     self.assertTemplateUsed(response, 'learning_unit/achievement_edit.html')
     context = response.context
     self.assertIsInstance(context['form'], LearningAchievementEditForm)
     self.assertEqual(context['learning_unit_year'], self.luy)
     self.assertEqual(context['language_code'], self.language_fr.code)
     self.assertTrue(context['create'], self.language_fr.code)
Beispiel #25
0
    def test_build_specifications_cols(self):

        lang_fr = LanguageFactory(code='FR')
        lang_en = LanguageFactory(code='EN')

        achievement_1_fr = LearningAchievementFactory(
            learning_unit_year=self.luy, language=lang_fr)
        achievement_2_fr = LearningAchievementFactory(
            learning_unit_year=self.luy, language=lang_fr)
        achievement_1_en = LearningAchievementFactory(
            learning_unit_year=self.luy, language=lang_en)
        LearningAchievementFactory(learning_unit_year=self.luy,
                                   language=lang_en,
                                   text="    ")
        LearningAchievementFactory(learning_unit_year=self.luy,
                                   language=lang_en,
                                   text="    ",
                                   code_name=None)

        initialize_cms_specifications_data_description_fiche(self.gey)
        specifications_data = _build_specifications_cols(self.luy, self.gey)

        self.assertEqual(specifications_data.prerequisite,
                         CMS_TXT_WITH_LIST_AFTER_FORMATTING)
        self.assertEqual(specifications_data.prerequisite_en,
                         CMS_TXT_WITH_LIST_AFTER_FORMATTING)
        self.assertEqual(specifications_data.themes_discussed,
                         CMS_TXT_WITH_LIST_AFTER_FORMATTING)
        self.assertEqual(specifications_data.themes_discussed_en,
                         CMS_TXT_WITH_LIST_AFTER_FORMATTING)
        self.assertEqual(
            specifications_data.achievements_fr,
            "{} -{}\n{} -{}".format(achievement_1_fr.code_name,
                                    achievement_1_fr.text,
                                    achievement_2_fr.code_name,
                                    achievement_2_fr.text))
        self.assertEqual(
            specifications_data.achievements_en,
            "{} -{}".format(achievement_1_en.code_name, achievement_1_en.text))
 def test_down(self):
     achievements = [
         LearningAchievementFactory(code_name=code, language=lang, learning_unit_year=self.luy, consistency_id=code)
         for code in [1,2] for lang in [self.language_fr, self.language_en]
     ]
     self.client.post(
         reverse('achievement_management', args=[self.luy.id]),
         data={'action': DOWN, 'achievement_id': achievements[0].id}
     )
     for achievement in LearningAchievement.objects.filter(consistency_id=1):
         self.assertEqual(achievement.order, 1)
     for achievement in LearningAchievement.objects.filter(consistency_id=2):
         self.assertEqual(achievement.order, 0)
Beispiel #27
0
    def test_should_raise_validation_error_case_existing_code(self):
        LearningAchievementFactory(learning_unit_year=self.learning_unit_year,
                                   language=self.language_fr,
                                   code_name='TEST')

        data = {'code_name': 'TEST', 'lua_fr_id': 1, 'lua_en_id': 2}
        form = LearningAchievementEditForm(luy=self.learning_unit_year,
                                           data=data)
        form.load_initial()
        self.assertFalse(form.is_valid(), form.errors)
        self.assertDictEqual(form.errors, {
            'code_name':
            [_("This code already exists for this learning unit")],
        })
    def test_learning_achievement_save_triggers_cms_save(
            self, mock_translated_text_update_or_create):
        learning_achievement = LearningAchievementFactory(
            learning_unit_year=self.learning_unit_year,
            language=self.language_fr)
        learning_achievement_en = LearningAchievementFactory(
            learning_unit_year=self.learning_unit_year,
            language=self.language_en)
        TextLabelFactory(label='themes_discussed')

        self.client.post(reverse('achievement_edit',
                                 kwargs={
                                     'learning_unit_year_id':
                                     self.learning_unit_year.id,
                                     'learning_achievement_id':
                                     learning_achievement.id
                                 }),
                         data={
                             'code_name': 'AA1',
                             'text_fr': 'Text',
                             'lua_fr_id': learning_achievement.id,
                             'lua_en_id': learning_achievement_en.id
                         })
        self.assertTrue(mock_translated_text_update_or_create.called)
Beispiel #29
0
    def test_learning_achievement_edit(self, mock_render):
        learning_achievement = LearningAchievementFactory(
            learning_unit_year=self.learning_unit_year)

        request_factory = RequestFactory()
        request = request_factory.get(
            reverse('learning_unit', args=[self.learning_unit_year.id]),
            data={'achievement_id': learning_achievement.id})
        request.user = self.a_superuser

        update(request, self.learning_unit_year.id, learning_achievement.id)

        self.assertTrue(mock_render.called)
        request, template, context = mock_render.call_args[0]

        self.assertEqual(template, 'learning_unit/achievement_edit.html')
        self.assertIsInstance(context['form'], LearningAchievementEditForm)
Beispiel #30
0
    def test_learning_achievement_create(self, mock_render):
        achievement_fr = LearningAchievementFactory(
            language=self.language_fr,
            learning_unit_year=self.learning_unit_year)
        request_factory = RequestFactory()
        request = request_factory.get(
            reverse('learning_unit', args=[self.learning_unit_year.id]),
            data={'language_code': self.language_fr.code})
        request.user = self.a_superuser

        create(request, self.learning_unit_year.id, achievement_fr.id)

        self.assertTrue(mock_render.called)
        request, template, context = mock_render.call_args[0]

        self.assertEqual(template, 'learning_unit/achievement_edit.html')
        self.assertIsInstance(context['form'], LearningAchievementEditForm)
        self.assertEqual(context['learning_unit_year'],
                         self.learning_unit_year)
        self.assertEqual(context['language_code'], self.language_fr.code)
        self.assertTrue(context['create'], self.language_fr.code)