def test_learning_unit_volumes_management_post_wrong_data(
            self, mock_render, mock_program_manager):
        mock_program_manager.return_value = True

        request_factory = RequestFactory()
        data = get_valid_formset_data(self.learning_unit_year.acronym)
        data.update(
            get_valid_formset_data(self.learning_unit_year_partim.acronym))
        data.update({'LDROI1200A-0-volume_total': 3})
        data.update({'LDROI1200A-0-volume_q2': 3})
        data.update({'LDROI1200A-0-volume_requirement_entity': 2})
        data.update({'LDROI1200A-0-volume_total_requirement_entities': 3})

        request = request_factory.post(reverse(
            learning_unit_volumes_management,
            kwargs={
                'learning_unit_year_id': self.learning_unit_year.id,
                'form_type': 'full'
            }),
                                       data=data)

        request.user = self.user
        setattr(request, 'session', 'session')
        setattr(request, '_messages', FallbackStorage(request))

        learning_unit_volumes_management(
            request,
            learning_unit_year_id=self.learning_unit_year.id,
            form_type="full")
        # Volumes of partims can be greater than parent's
        msg_level = [m.level for m in get_messages(request)]
        msg = [m.message for m in get_messages(request)]
        self.assertEqual(len(msg), 1)
        self.assertIn(messages.SUCCESS, msg_level)
    def test_learning_unit_volumes_management_post_wrong_data(
            self, mock_render, mock_program_manager):
        mock_program_manager.return_value = True

        request_factory = RequestFactory()
        data = get_valid_formset_data(self.learning_unit_year.acronym)
        data.update(
            get_valid_formset_data(self.learning_unit_year_partim.acronym))

        request = request_factory.post(reverse(
            learning_unit_volumes_management,
            args=[self.learning_unit_year.id]),
                                       data=data)

        request.user = self.user
        setattr(request, 'session', 'session')
        setattr(request, '_messages', FallbackStorage(request))

        learning_unit_volumes_management(request, self.learning_unit_year.id)

        self.assertTrue(mock_render.called)
        request, template, context = mock_render.call_args[0]
        self.assertEqual(template, 'learning_unit/volumes_management.html')
        self.assertEqual(
            context['formsets'][self.learning_unit_year_partim].errors[0],
            {'volume_total': [_('vol_tot_full_must_be_greater_than_partim')]})
    def test_learning_unit_volumes_management_post(self, mock_program_manager):
        mock_program_manager.return_value = True

        request_factory = RequestFactory()
        data = get_valid_formset_data(self.learning_unit_year.acronym)
        data.update(
            get_valid_formset_data(self.learning_unit_year_partim.acronym,
                                   is_partim=True))

        request = request_factory.post(reverse(
            learning_unit_volumes_management,
            args=[self.learning_unit_year.id]),
                                       data=data)

        request.user = self.user
        setattr(request, 'session', 'session')
        setattr(request, '_messages', FallbackStorage(request))

        learning_unit_volumes_management(request, self.learning_unit_year.id)

        msg_level = [m.level for m in get_messages(request)]
        msg = [m.message for m in get_messages(request)]
        self.assertEqual(len(msg), 1)
        self.assertIn(messages.SUCCESS, msg_level)

        for generated_container_year in self.generate_container:
            learning_component_year = generated_container_year.learning_component_cm_full
            self.check_postponement(learning_component_year)
Exemple #4
0
    def test_learning_unit_volumes_management_get_full_form(
            self, mock_render, mock_program_manager):
        mock_program_manager.return_value = True

        request_factory = RequestFactory()
        request = request_factory.get(self.url)

        request.user = self.user
        request.session = 'session'
        request._messages = FallbackStorage(request)

        learning_unit_volumes_management(
            request,
            learning_unit_year_id=self.learning_unit_year.id,
            form_type="full")
        self.assertTrue(mock_render.called)
        request, template, context = mock_render.call_args[0]

        self.assertEqual(template, 'learning_unit/volumes_management.html')
        self.assertEqual(context['learning_unit_year'],
                         self.learning_unit_year)
        for formset in context['formsets'].keys():
            self.assertIn(
                formset,
                [self.learning_unit_year, self.learning_unit_year_partim])

        # Check that we display only the current learning_unit_year in the volumes management page (not all the family)
        self.assertListEqual(
            context['learning_units'],
            [self.learning_unit_year, self.learning_unit_year_partim])
    def test_learning_unit_volumes_management_post_wrong_data_ajax(
            self, mock_program_manager):
        mock_program_manager.return_value = True

        request_factory = RequestFactory()
        data = get_valid_formset_data(self.learning_unit_year.acronym)
        data.update(
            get_valid_formset_data(self.learning_unit_year_partim.acronym))
        data.update({'LDROI1200A-0-volume_total': 3})
        data.update({'LDROI1200A-0-volume_q2': 3})
        data.update({'LDROI1200A-0-volume_requirement_entity': 2})
        data.update({'LDROI1200A-0-volume_total_requirement_entities': 3})

        request = request_factory.post(reverse(
            learning_unit_volumes_management,
            kwargs={
                'learning_unit_year_id': self.learning_unit_year.id,
                'form_type': 'full'
            }),
                                       data=data,
                                       HTTP_X_REQUESTED_WITH='XMLHttpRequest')

        request.user = self.user

        response = learning_unit_volumes_management(
            request,
            learning_unit_year_id=self.learning_unit_year.id,
            form_type="full")
        # Volumes of partims can be greater than parent's
        self.assertEqual(response.status_code, HttpResponse.status_code)
    def test_learning_unit_volumes_management_post_wrong_data_ajax(
            self, mock_program_manager):
        mock_program_manager.return_value = True

        request_factory = RequestFactory()
        data = get_valid_formset_data(self.learning_unit_year.acronym)
        data.update(
            get_valid_formset_data(self.learning_unit_year_partim.acronym))

        request = request_factory.post(reverse(
            learning_unit_volumes_management,
            args=[self.learning_unit_year.id]),
                                       data=data,
                                       HTTP_X_REQUESTED_WITH='XMLHttpRequest')

        request.user = self.user

        response = learning_unit_volumes_management(request,
                                                    self.learning_unit_year.id)
        prefix = self.learning_unit_year_partim.acronym
        self.assertJSONEqual(
            response.content.decode("utf-8"), {
                "errors": {
                    prefix + "-0-volume_total":
                    [_("vol_tot_full_must_be_greater_than_partim")],
                    prefix + "-1-volume_total":
                    [_("vol_tot_full_must_be_greater_than_partim")]
                }
            })
    def test_learning_unit_volumes_management_get(self, mock_render,
                                                  mock_program_manager):
        mock_program_manager.return_value = True

        request_factory = RequestFactory()
        request = request_factory.get(
            reverse(learning_unit_volumes_management,
                    args=[self.learning_unit_year.id]))

        request.user = self.user
        setattr(request, 'session', 'session')
        setattr(request, '_messages', FallbackStorage(request))

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

        self.assertEqual(template, 'learning_unit/volumes_management.html')
        self.assertEqual(context['learning_unit_year'],
                         self.learning_unit_year)
        for formset in context['formsets'].keys():
            self.assertIn(
                formset,
                [self.learning_unit_year, self.learning_unit_year_partim])