def test_get_application_list(self): global_id = self.tutor.person.global_id application_list = tutor_application.get_application_list(global_id, self.academic_year) self.assertIsInstance(application_list, list) self.assertEqual(len(application_list), 2) application_list_in_2016 = tutor_application.get_application_list(global_id, self.academic_year_2016) self.assertIsInstance(application_list_in_2016, list) self.assertEqual(len(application_list_in_2016), 1)
def overview(request, global_id=None): tutor = mdl_base.tutor.find_by_user(request.user) if not global_id else \ mdl_base.tutor.find_by_person_global_id(global_id) # Applications for next year application_year = tutor_application.get_application_year() applications = tutor_application.get_application_list( global_id=tutor.person.global_id) # Attributions for next year attributions = attribution.get_attribution_list( global_id=tutor.person.global_id, academic_year=application_year) volume_total_attributions = attribution.get_volumes_total(attributions) # Attribution which will be expire this academic year current_academic_year = mdl_base.academic_year.current_academic_year() attributions_about_to_expired = attribution.get_attribution_list_about_to_expire( global_id=tutor.person.global_id, academic_year=current_academic_year) for attrib in attributions: attrib['teachers'] = attribution.get_teachers(attrib['acronym'], application_year.year) for an_attribution in attributions: attribution.update_learning_unit_volume(an_attribution, application_year) if attributions_about_to_expired: for an_attribution in attributions_about_to_expired: attribution.update_learning_unit_volume(an_attribution, application_year) return layout.render( request, "attribution_overview.html", { 'a_tutor': tutor, 'attributions': attributions, 'current_academic_year': current_academic_year, 'attributions_about_to_expire': attributions_about_to_expired, 'application_year': application_year, 'applications': applications, 'tot_lecturing': volume_total_attributions.get( learning_component_year_type.LECTURING), 'tot_practical': volume_total_attributions.get( learning_component_year_type.PRACTICAL_EXERCISES), 'application_academic_calendar': mdl_base.academic_calendar.get_by_reference_and_academic_year( academic_calendar_type.TEACHING_CHARGE_APPLICATION, current_academic_year), 'catalog_url': settings.ATTRIBUTION_CONFIG.get('CATALOG_URL') })
def test_create_or_update_application_creation_on_new_user(self): # Create new tutor new_tutor = TutorFactory(person=PersonFactory(global_id="59898988")) # Submit tutor application application_to_create = _get_application_example(self.lbir1250_2017, '30', '20') global_id = new_tutor.person.global_id tutor_application.create_or_update_application(global_id, application_to_create) application_list = tutor_application.get_application_list(global_id, self.academic_year) self.assertEqual(len(application_list), 1) # We should have 1 application
def test_create_or_update_application_creation_on_existing_user(self): application_to_create = _get_application_example(self.lbir1250_2017, '30', '20') global_id = self.tutor.person.global_id tutor_application.create_or_update_application(global_id, application_to_create) application_list = tutor_application.get_application_list(global_id, self.academic_year) self.assertEqual(len(application_list), 3) # We should have 3 applications now # We should found the newest created self.assertTrue(next(app for app in application_list if app.get('acronym') == self.lbir1250_2017.acronym))
def test_get_application_list_with_none_practical_charge(self): new_tutor = TutorFactory(person=PersonFactory(global_id="59898988")) application_to_create = _get_application_example(self.lbir1200_2017, "15", None) global_id = new_tutor.person.global_id tutor_application.create_or_update_application(global_id, application_to_create) application_list = tutor_application.get_application_list(global_id, self.academic_year) application_created = application_list[0] self.assertTrue(application_created) self.assertEqual(application_created.get('acronym'), self.lbir1200_2017.acronym) self.assertEqual(application_created.get('charge_lecturing_asked'), Decimal(15)) self.assertEqual(application_created.get('charge_practical_asked'), Decimal(0))
def test_create_or_update_application_update(self): application_to_update = _get_application_example(self.lbir1200_2017, '0', '10') global_id = self.tutor.person.global_id tutor_application.create_or_update_application(global_id, application_to_update) application_list = tutor_application.get_application_list(global_id, self.academic_year) self.assertEqual(len(application_list), 2) # We should have 2 applications application_updated = next(app for app in application_list if app.get('acronym') == self.lbir1200_2017.acronym) self.assertTrue(application_updated) self.assertEqual(application_updated.get('acronym'), self.lbir1200_2017.acronym) self.assertEqual(application_updated.get('charge_lecturing_asked'), Decimal(0)) self.assertEqual(application_updated.get('charge_practical_asked'), Decimal(10))
def test_get_application_list_order_by(self): self.attribution.applications = [ _get_application_example(self.lbir1200_2017, '3.5', '35.6'), # Application 2017 _get_application_example(self.lbir1250_2017, '5', '7', tutor_application_epc.UPDATE_OPERATION), _get_application_example(self.lbir1300_2017, '7.5', '25') # Application 2017 ] self.attribution.save() global_id = self.tutor.person.global_id application_list = tutor_application.get_application_list(global_id, self.academic_year) self.assertIsInstance(application_list, list) self.assertEqual(len(application_list), 3) # Check order self.assertEqual(application_list[0]['acronym'], self.lbir1200_2017.acronym) self.assertEqual(application_list[1]['acronym'], self.lbir1300_2017.acronym) self.assertEqual(application_list[2]['acronym'], self.lbir1250_2017.acronym)