def setUpTestData(cls): cls.settings = SettingsFactory() cls.previous_academic_year, cls.current_academic_year, _ = AcademicYearFactory.produce( ) cls.phd_supervisor = PersonFactory() cls.assistant = AcademicAssistantFactory(supervisor=cls.phd_supervisor) cls.assistant_mandate = AssistantMandateFactory( academic_year=cls.current_academic_year, assistant=cls.assistant, state=assistant_mandate_state.PHD_SUPERVISOR) cls.assistant2 = AcademicAssistantFactory(supervisor=None) cls.assistant_mandate2 = AssistantMandateFactory( academic_year=cls.current_academic_year, assistant=cls.assistant2, state=assistant_mandate_state.RESEARCH, ) cls.review = ReviewFactory(reviewer=None, mandate=cls.assistant_mandate, status=review_status.IN_PROGRESS) cls.entity_version = EntityVersionFactory( entity_type=entity_type.INSTITUTE, end_date=None) cls.mandate_entity = MandateEntityFactory( assistant_mandate=cls.assistant_mandate, entity=cls.entity_version.entity) cls.mandate_entity2 = MandateEntityFactory( assistant_mandate=cls.assistant_mandate2, entity=cls.entity_version.entity) cls.reviewer = ReviewerFactory(role=reviewer_role.RESEARCH, entity=cls.entity_version.entity, person=cls.phd_supervisor)
def setUp(self): self.factory = RequestFactory() self.client = Client() self.manager = ManagerFactory() self.settings = SettingsFactory() self.client.force_login(self.manager.person.user) self.assistant = AcademicAssistantFactory() self.assistant_mandate = AssistantMandateFactory( state=assistant_mandate_state.TRTS, assistant=self.assistant, assistant_type=assistant_type.ASSISTANT) self.assistant2 = AcademicAssistantFactory() self.assistant_mandate2 = AssistantMandateFactory( state=assistant_mandate_state.SUPERVISION, assistant=self.assistant2, assistant_type=assistant_type.TEACHING_ASSISTANT) self.entity1 = EntityFactory() self.entity_version1 = EntityVersionFactory( entity=self.entity1, entity_type=entity_type.SECTOR) self.entity2 = EntityFactory() self.entity_version2 = EntityVersionFactory( entity=self.entity2, entity_type=entity_type.FACULTY) self.entity3 = EntityFactory() self.entity_version3 = EntityVersionFactory( entity=self.entity3, entity_type=entity_type.INSTITUTE) self.entity4 = EntityFactory() self.entity_version4 = EntityVersionFactory( entity=self.entity4, parent=self.entity2, entity_type=entity_type.SCHOOL) self.mandate_entity1 = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity1) self.mandate_entity2 = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity2) self.mandate_entity3 = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity3) self.mandate_entity4 = MandateEntityFactory( assistant_mandate=self.assistant_mandate2, entity=self.entity1) self.mandate_entity5 = MandateEntityFactory( assistant_mandate=self.assistant_mandate2, entity=self.entity2) self.reviewer1 = ReviewerFactory(entity=self.entity3, role=reviewer_role.RESEARCH) self.reviewer2 = ReviewerFactory(entity=self.entity2, role=reviewer_role.SUPERVISION) self.reviewer3 = ReviewerFactory(entity=self.entity1, role=reviewer_role.VICE_RECTOR) self.reviewer4 = ReviewerFactory(entity=None, role=reviewer_role.PHD_SUPERVISOR)
def setUp(self): self.client = Client() self.request = self.client.post('/assistants/manager/mandates/upload/') self.request._messages = FakeMessages() self.manager = ManagerFactory() self.client.force_login(self.manager.person.user) self.request.user = self.manager.person.user now = timezone.now() AcademicYearFactory.produce_in_past() self.previous_academic_year = academic_year.find_academic_year_by_year(now.year - 2) self.person1 = PersonFactory(global_id='00201968') self.assistant1 = AcademicAssistantFactory(person=self.person1) self.record1 = { 'SECTOR': 'SST', 'LOGISTICS_ENTITY': 'None', 'FACULTY': 'SC', 'SCHOOL': 'CHIM', 'INSTITUTE': 'IMCN', 'POLE': 'MOST', 'SAP_ID': '1122199', 'GLOBAL_ID': '1122199', 'LAST_NAME': self.assistant1.person.last_name, 'FIRST_NAME': self.assistant1.person.first_name, 'FULLTIME_EQUIVALENT': '1', 'ENTRY_DATE': '01/02/2015', 'END_DATE': '03-10-2017', 'ASSISTANT_TYPE_CODE': 'ST', 'SCALE': '021', 'CONTRACT_DURATION': '4', 'CONTRACT_DURATION_FTE': '4', 'RENEWAL_TYPE': 'NORMAL', 'ABSENCES': None, 'COMMENT': None, 'OTHER_STATUS': None, 'EMAIL': None, 'FGS': '00201968' } self.person2 = PersonFactory(global_id='00201979') self.assistant2 = AcademicAssistantFactory() self.record2 = { 'SECTOR': 'SST', 'LOGISTICS_ENTITY': 'None', 'FACULTY': 'SC', 'SCHOOL': 'CHIM', 'INSTITUTE': 'IMCN', 'POLE': 'MOST', 'SAP_ID': '1122199', 'GLOBAL_ID': '1122199', 'LAST_NAME': self.person2.last_name, 'FIRST_NAME': self.person2.first_name, 'FULLTIME_EQUIVALENT': '1', 'ENTRY_DATE': '01/02/2015', 'END_DATE': '03-10-2017', 'ASSISTANT_TYPE_CODE': 'AS', 'SCALE': '021', 'CONTRACT_DURATION': '4', 'CONTRACT_DURATION_FTE': '4', 'RENEWAL_TYPE': 'exceptional', 'ABSENCES': None, 'COMMENT': None, 'OTHER_STATUS': None, 'EMAIL': None, 'FGS': '00201979' } self.assistant3 = AcademicAssistantFactory() self.record3 = { 'SECTOR': 'SST', 'LOGISTICS_ENTITY': 'None', 'FACULTY': 'SC', 'SCHOOL': 'CHIM', 'INSTITUTE': 'IMCN', 'POLE': 'MOST', 'SAP_ID': '1122599', 'GLOBAL_ID': '1322199', 'LAST_NAME': 'last_name', 'FIRST_NAME': 'first_name', 'FULLTIME_EQUIVALENT': '1', 'ENTRY_DATE': '01/02/2015', 'END_DATE': '03-10-2017', 'ASSISTANT_TYPE_CODE': 'AS', 'SCALE': '021', 'CONTRACT_DURATION': '4', 'CONTRACT_DURATION_FTE': '4', 'RENEWAL_TYPE': 'SPECIAL', 'ABSENCES': None, 'COMMENT': None, 'OTHER_STATUS': None, 'EMAIL': None, 'FGS': None } self.entity_version1 = EntityVersionFactory(entity_type=entity_type.SECTOR, acronym='SST', title='Secteur des Sciences et Technologies', end_date=datetime.datetime(datetime.date.today().year + 1, 9, 14)) self.entity_version2 = EntityVersionFactory(entity_type=entity_type.SECTOR, acronym='SSH', end_date=datetime.datetime(datetime.date.today().year + 1, 9, 14)) self.assistant_mandate1 = AssistantMandateFactory( assistant=self.assistant1 )
def setUpTestData(cls): cls.manager = ManagerFactory() cls.settings = SettingsFactory() cls.assistant = AcademicAssistantFactory() cls.assistant_mandate = AssistantMandateFactory( state=assistant_mandate_state.TRTS, assistant=cls.assistant, assistant_type=assistant_type.ASSISTANT) cls.assistant2 = AcademicAssistantFactory() cls.assistant_mandate2 = AssistantMandateFactory( state=assistant_mandate_state.SUPERVISION, assistant=cls.assistant2, assistant_type=assistant_type.TEACHING_ASSISTANT) cls.entity1 = EntityFactory() cls.entity_version1 = EntityVersionFactory( entity=cls.entity1, entity_type=entity_type.SECTOR) cls.entity2 = EntityFactory() cls.entity_version2 = EntityVersionFactory( entity=cls.entity2, entity_type=entity_type.FACULTY) cls.entity3 = EntityFactory() cls.entity_version3 = EntityVersionFactory( entity=cls.entity3, entity_type=entity_type.INSTITUTE) cls.entity4 = EntityFactory() cls.entity_version4 = EntityVersionFactory( entity=cls.entity4, parent=cls.entity2, entity_type=entity_type.SCHOOL) cls.mandate_entity1 = MandateEntityFactory( assistant_mandate=cls.assistant_mandate, entity=cls.entity1) cls.mandate_entity2 = MandateEntityFactory( assistant_mandate=cls.assistant_mandate, entity=cls.entity2) cls.mandate_entity3 = MandateEntityFactory( assistant_mandate=cls.assistant_mandate, entity=cls.entity3) cls.mandate_entity4 = MandateEntityFactory( assistant_mandate=cls.assistant_mandate2, entity=cls.entity1) cls.mandate_entity5 = MandateEntityFactory( assistant_mandate=cls.assistant_mandate2, entity=cls.entity2) cls.reviewer1 = ReviewerFactory(entity=cls.entity3, role=reviewer_role.RESEARCH) cls.reviewer2 = ReviewerFactory(entity=cls.entity2, role=reviewer_role.SUPERVISION) cls.reviewer3 = ReviewerFactory(entity=cls.entity1, role=reviewer_role.VICE_RECTOR) cls.reviewer4 = ReviewerFactory(entity=None, role=reviewer_role.PHD_SUPERVISOR)
def setUpTestData(cls): cls.person2 = PersonFactory() cls.manager = ManagerFactory() cls.person = cls.manager.person cls.entity_factory = EntityFactory() cls.entity_factory2 = EntityFactory() cls.entity_version = EntityVersionFactory(entity_type=entity_type.INSTITUTE, end_date=None, entity=cls.entity_factory) cls.entity_version2 = EntityVersionFactory(entity_type=entity_type.INSTITUTE, end_date=None, entity=cls.entity_factory2) cls.phd_supervisor = PersonFactory() cls.assistant = AcademicAssistantFactory(supervisor=cls.phd_supervisor) today = datetime.date.today() cls.current_academic_year = AcademicYearFactory(start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) cls.assistant_mandate = AssistantMandateFactory(academic_year=cls.current_academic_year, assistant=cls.assistant) cls.reviewer = ReviewerFactory(role=reviewer_role.RESEARCH_ASSISTANT, entity=cls.entity_version.entity) cls.reviewer2 = ReviewerFactory(role=reviewer_role.RESEARCH, entity=cls.entity_version.entity) cls.reviewer3 = ReviewerFactory(role=reviewer_role.RESEARCH, entity=cls.entity_version.entity) cls.review = ReviewFactory(reviewer=cls.reviewer2) cls.formset = formset_factory(ReviewersFormset) cls.current_academic_year = AcademicYearFactory(start_date=today, end_date=today.replace(year=today.year + 1), year=today.year)
def setUpTestData(cls): cls.settings = SettingsFactory() today = datetime.date.today() cls.current_academic_year = AcademicYearFactory(start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) cls.current_academic_year.save() cls.phd_supervisor = PersonFactory() cls.assistant = AcademicAssistantFactory(supervisor=cls.phd_supervisor) cls.assistant_mandate2 = AssistantMandateFactory( academic_year=cls.current_academic_year, assistant=cls.assistant, state=assistant_mandate_state.RESEARCH ) cls.entity_version = EntityVersionFactory(entity_type=entity_type.INSTITUTE) cls.entity_version2 = EntityVersionFactory(entity_type=entity_type.FACULTY) cls.entity_version3 = EntityVersionFactory(entity_type=entity_type.SECTOR) cls.reviewer = ReviewerFactory( role=reviewer_role.RESEARCH, entity=cls.entity_version.entity ) cls.reviewer2 = ReviewerFactory( role=reviewer_role.SUPERVISION, entity=cls.entity_version2.entity ) cls.reviewer3 = ReviewerFactory( role=reviewer_role.VICE_RECTOR, entity=cls.entity_version3.entity ) MandateEntityFactory( assistant_mandate=cls.assistant_mandate2, entity=cls.entity_version.entity )
def setUp(self): self.maxDiff = None self.factory = RequestFactory() self.assistant = AcademicAssistantFactory( phd_inscription_date=datetime.date(2015, 10, 2), thesis_title='Data fitting on manifolds', confirmation_test_date=datetime.date(2017, 9, 25), remark= "Deux co-promoteurs (l'application ne m'autorise à n'en renseigner qu'un)" ) self.mandate = AssistantMandateFactory( assistant=self.assistant, assistant_type=assistant_type.ASSISTANT, sap_id='1120019', entry_date=datetime.date(2012, 9, 15), end_date=datetime.date(2018, 9, 14), contract_duration='6 ans', contract_duration_fte='6 ans', fulltime_equivalent=1, other_status=None, renewal_type=assistant_mandate_renewal.NORMAL, justification=None, external_contract='', external_functions='', ) self.entity_version = EntityVersionFactory() self.mandate_entity = MandateEntityFactory( assistant_mandate=self.mandate, entity=self.entity_version.entity) self.reviewer = ReviewerFactory(entity=self.mandate_entity.entity) self.styles = getSampleStyleSheet() self.review1 = ReviewFactory(mandate=self.mandate, reviewer=self.reviewer)
def setUp(self): self.factory = RequestFactory() self.client = Client() self.settings = SettingsFactory() today = datetime.date.today() self.current_academic_year = AcademicYearFactory( start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) self.phd_supervisor = PersonFactory() self.assistant = AcademicAssistantFactory( supervisor=self.phd_supervisor) self.assistant_mandate = AssistantMandateFactory( academic_year=self.current_academic_year, assistant=self.assistant) self.assistant_mandate.state = assistant_mandate_state.PHD_SUPERVISOR self.assistant_mandate.save() self.review = ReviewFactory(reviewer=None, mandate=self.assistant_mandate, status=review_status.IN_PROGRESS) self.entity_version = EntityVersionFactory( entity_type=entity_type.INSTITUTE) self.mandate_entity = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity_version.entity)
def setUpTestData(cls): cls.settings = SettingsFactory() cls.manager = ManagerFactory() cls.current_academic_year = AcademicYearFactory(current=True) cls.supervisor = PersonFactory() cls.assistant = AcademicAssistantFactory( phd_inscription_date=datetime.date( cls.current_academic_year.year - 3, 10, 2), thesis_title='Data fitting on manifolds', confirmation_test_date=datetime.date( cls.current_academic_year.year - 1, 9, 14), remark= "Deux co-promoteurs (l'application ne m'autorise à n'en renseigner qu'un)", supervisor=cls.supervisor) cls.styles = getSampleStyleSheet() cls.styles.add( ParagraphStyle( name='Tiny', fontSize=6, font='Helvetica', leading=8, leftIndent=0, rightIndent=0, firstLineIndent=0, alignment=TA_LEFT, spaceBefore=0, spaceAfter=0, splitLongWords=1, )) cls.reviewer3 = ReviewerFactory()
class SendEmailTestCase(TestCase): def setUp(self): self.factory = RequestFactory() self.academic_assistant = AcademicAssistantFactory() self.manager = ManagerFactory() self.client.login(username=self.manager.person.user.username, password=self.manager.person.user.password) self.current_academic_year = AcademicYearFactory() self.assistant_mandate = AssistantMandateFactory(assistant=self.academic_assistant) self.user = User.objects.create_user( username='******', email='*****@*****.**', password='******' ) self.user.save() self.phd_supervisor = Person.objects.create(user=self.user, first_name='phd', last_name='supervisor') self.phd_supervisor.save() self.academic_assistant.supervisor = self.phd_supervisor self.academic_assistant.save() self.settings = SettingsFactory() self.reviewer = ReviewerFactory(role=reviewer_role.SUPERVISION) @patch("base.models.academic_year.current_academic_year") @patch("osis_common.messaging.send_message.send_messages") def test_with_one_assistant(self, mock_send_messages, mock_current_ac_year): mock_current_ac_year.return_value = self.current_academic_year if self.assistant_mandate.renewal_type == assistant_mandate_renewal.NORMAL \ or self.assistant_mandate.renewal_type == assistant_mandate_renewal.SPECIAL: html_template_ref = 'assistant_assistants_startup_normal_renewal_html' txt_template_ref = 'assistant_assistants_startup_normal_renewal_txt' else: html_template_ref = 'assistant_assistants_startup_except_renewal_html' txt_template_ref = 'assistant_assistants_startup_except_renewal_txt' send_email.send_message(self.academic_assistant.person, html_template_ref, txt_template_ref) args = mock_send_messages.call_args[0][0] self.assertEqual(len(args.get('receivers')), 1) @patch("base.models.academic_year.current_academic_year") @patch("osis_common.messaging.send_message.send_messages") def test_with_one_phd_supervisor(self, mock_send_messages, mock_current_ac_year): mock_current_ac_year.return_value = self.current_academic_year html_template_ref = 'assistant_phd_supervisor_html' txt_template_ref = 'assistant_phd_supervisor_txt' send_email.send_message(self.phd_supervisor, html_template_ref, txt_template_ref) args = mock_send_messages.call_args[0][0] self.assertEqual(len(args.get('receivers')), 1)
def setUpTestData(cls): cls.open_settings = SettingsFactory() cls.previous_acy, cls.current_acy, cls.next_acy = AcademicYearFactory.produce( ) cls.academic_assistant = AcademicAssistantFactory() cls.assistant_mandate = AssistantMandateFactory( assistant=cls.academic_assistant, academic_year=cls.current_acy) cls.url = urls.reverse('assistant_mandates')
def setUp(self): self.factory = RequestFactory() self.client = Client() self.settings = SettingsFactory() today = datetime.date.today() self.current_academic_year = AcademicYearFactory( start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) self.current_academic_year.save() self.phd_supervisor = PersonFactory() self.assistant = AcademicAssistantFactory( supervisor=self.phd_supervisor) self.assistant_mandate = AssistantMandateFactory( academic_year=self.current_academic_year, assistant=self.assistant, state=assistant_mandate_state.RESEARCH) self.assistant_mandate2 = AssistantMandateFactory( academic_year=self.current_academic_year, assistant=self.assistant, state=assistant_mandate_state.RESEARCH) self.phd_supervisor_review = ReviewFactory( reviewer=None, mandate=self.assistant_mandate, status=review_status.DONE) self.entity_version = EntityVersionFactory( entity_type=entity_type.INSTITUTE) self.entity_mandate = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity_version.entity) self.entity_mandate2 = MandateEntityFactory( assistant_mandate=self.assistant_mandate2, entity=self.entity_version.entity) self.reviewer = ReviewerFactory(role=reviewer_role.RESEARCH, entity=self.entity_version.entity) self.review = ReviewFactory(reviewer=self.reviewer, mandate=self.assistant_mandate, status=review_status.IN_PROGRESS) self.entity_version2 = EntityVersionFactory( entity_type=entity_type.FACULTY) self.entity_mandate2 = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity_version2.entity) self.reviewer2 = ReviewerFactory(role=reviewer_role.SUPERVISION, entity=self.entity_version2.entity) self.entity_version3 = EntityVersionFactory( entity_type=entity_type.SECTOR) self.entity_mandate3 = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity_version3.entity) self.reviewer3 = ReviewerFactory(role=reviewer_role.VICE_RECTOR, entity=self.entity_version3.entity)
def setUpTestData(cls): today = datetime.date.today() cls.current_academic_year = AcademicYearFactory(start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) cls.settings = SettingsFactory() cls.manager = ManagerFactory() cls.entity_version = EntityVersionFactory(entity_type=entity_type.INSTITUTE) cls.reviewer = ReviewerFactory(entity=cls.entity_version.entity) cls.assistant = AcademicAssistantFactory() cls.unauthorized_person = PersonFactory()
def setUp(self): self.factory = RequestFactory() self.client = Client() self.settings = SettingsFactory() today = datetime.date.today() self.manager = ManagerFactory() self.assistant = AcademicAssistantFactory() self.current_academic_year = AcademicYearFactory(start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) self.assistant_mandate = AssistantMandateFactory(academic_year=self.current_academic_year, state=assistant_mandate_state.RESEARCH)
def setUpTestData(cls): cls.settings = SettingsFactory() today = datetime.date.today() cls.manager = ManagerFactory() cls.assistant = AcademicAssistantFactory() cls.current_academic_year = AcademicYearFactory( start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) cls.assistant_mandate = AssistantMandateFactory( academic_year=cls.current_academic_year, state=assistant_mandate_state.RESEARCH)
def setUp(self): self.factory = RequestFactory() self.client = Client() today = datetime.date.today() self.current_academic_year = AcademicYearFactory(start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) self.settings = SettingsFactory() self.manager = ManagerFactory() self.entity_version = EntityVersionFactory(entity_type=entity_type.INSTITUTE) self.reviewer = ReviewerFactory(entity=self.entity_version.entity) self.assistant = AcademicAssistantFactory() self.unauthorized_person = PersonFactory()
def setUpTestData(cls): cls.academic_assistant = AcademicAssistantFactory() cls.manager = ManagerFactory() cls.current_academic_year = AcademicYearFactory() cls.assistant_mandate = AssistantMandateFactory(assistant=cls.academic_assistant) cls.user = User.objects.create_user( username='******', email='*****@*****.**', password='******' ) cls.user.save() cls.phd_supervisor = Person.objects.create(user=cls.user, first_name='phd', last_name='supervisor') cls.phd_supervisor.save() cls.academic_assistant.supervisor = cls.phd_supervisor cls.academic_assistant.save() cls.settings = SettingsFactory() cls.reviewer = ReviewerFactory(role=reviewer_role.SUPERVISION)
def setUp(self): self.factory = RequestFactory() self.academic_assistant = AcademicAssistantFactory() self.manager = ManagerFactory() self.client.login(username=self.manager.person.user.username, password=self.manager.person.user.password) self.current_academic_year = AcademicYearFactory() self.assistant_mandate = AssistantMandateFactory(assistant=self.academic_assistant) self.user = User.objects.create_user( username='******', email='*****@*****.**', password='******' ) self.user.save() self.phd_supervisor = Person.objects.create(user=self.user, first_name='phd', last_name='supervisor') self.phd_supervisor.save() self.academic_assistant.supervisor = self.phd_supervisor self.academic_assistant.save() self.settings = SettingsFactory() self.reviewer = ReviewerFactory(role=reviewer_role.SUPERVISION)
def setUp(self): self.factory = RequestFactory() today = datetime.date.today() self.current_academic_year = AcademicYearFactory( start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) self.phd_supervisor = PersonFactory() self.assistant = AcademicAssistantFactory( supervisor=self.phd_supervisor) self.assistant_mandate = AssistantMandateFactory( academic_year=self.current_academic_year, assistant=self.assistant) self.assistant_mandate.state = assistant_mandate_state.PHD_SUPERVISOR self.assistant_mandate.save() self.review = ReviewFactory(reviewer=None, mandate=self.assistant_mandate, status=review_status.IN_PROGRESS)
def setUpTestData(cls): cls.settings = SettingsFactory() today = datetime.date.today() cls.current_academic_year = AcademicYearFactory(start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) cls.phd_supervisor = PersonFactory() cls.assistant = AcademicAssistantFactory(supervisor=cls.phd_supervisor) cls.assistant_mandate = AssistantMandateFactory(academic_year=cls.current_academic_year, assistant=cls.assistant) cls.assistant_mandate.state = assistant_mandate_state.PHD_SUPERVISOR cls.assistant_mandate.save() cls.review = ReviewFactory(reviewer=None, mandate=cls.assistant_mandate, status=review_status.IN_PROGRESS) cls.entity = EntityFactory() cls.entity_version = EntityVersionFactory(entity=cls.entity, entity_type=entity_type.INSTITUTE) cls.mandate_entity = MandateEntityFactory(assistant_mandate=cls.assistant_mandate, entity=cls.entity) cls.reviewer = ReviewerFactory(role=reviewer_role.RESEARCH, entity=cls.entity_version.entity)
def setUp(self): self.factory = RequestFactory() self.client = Client() self.person2 = PersonFactory() self.manager = ManagerFactory() self.person = self.manager.person self.client.force_login(self.person.user) self.entity_factory = EntityFactory() self.entity_factory2 = EntityFactory() self.entity_version = EntityVersionFactory( entity_type=entity_type.INSTITUTE, end_date=None, entity=self.entity_factory) self.entity_version2 = EntityVersionFactory( entity_type=entity_type.INSTITUTE, end_date=None, entity=self.entity_factory2) self.phd_supervisor = PersonFactory() self.assistant = AcademicAssistantFactory( supervisor=self.phd_supervisor) today = datetime.date.today() self.current_academic_year = AcademicYearFactory( start_date=today, end_date=today.replace(year=today.year + 1), year=today.year) self.assistant_mandate = AssistantMandateFactory( academic_year=self.current_academic_year, assistant=self.assistant) self.reviewer = ReviewerFactory(role=reviewer_role.RESEARCH_ASSISTANT, entity=self.entity_version.entity) self.reviewer2 = ReviewerFactory(role=reviewer_role.RESEARCH, entity=self.entity_version.entity) self.reviewer3 = ReviewerFactory(role=reviewer_role.RESEARCH, entity=self.entity_version.entity) self.review = ReviewFactory(reviewer=self.reviewer2) self.formset = formset_factory(ReviewersFormset) self.current_academic_year = AcademicYearFactory( start_date=today, end_date=today.replace(year=today.year + 1), year=today.year)
def setUp(self): self.factory = RequestFactory() self.client = Client() self.manager = ManagerFactory() self.settings = SettingsFactory() self.client.force_login(self.manager.person.user) self.assistant = AcademicAssistantFactory() self.assistant_mandate = AssistantMandateFactory( state=assistant_mandate_state.TRTS, assistant=self.assistant, assistant_type=assistant_type.ASSISTANT ) self.assistant2 = AcademicAssistantFactory() self.assistant_mandate2 = AssistantMandateFactory( state=assistant_mandate_state.SUPERVISION, assistant=self.assistant2, assistant_type=assistant_type.TEACHING_ASSISTANT ) self.entity1 = EntityFactory() self.entity_version1 = EntityVersionFactory(entity=self.entity1, entity_type=entity_type.SECTOR) self.entity2 = EntityFactory() self.entity_version2 = EntityVersionFactory(entity=self.entity2, entity_type=entity_type.FACULTY) self.entity3 = EntityFactory() self.entity_version3 = EntityVersionFactory(entity=self.entity3, entity_type=entity_type.INSTITUTE) self.entity4 = EntityFactory() self.entity_version4 = EntityVersionFactory( entity=self.entity4, parent=self.entity2, entity_type=entity_type.SCHOOL) self.mandate_entity1 = MandateEntityFactory(assistant_mandate=self.assistant_mandate, entity=self.entity1) self.mandate_entity2 = MandateEntityFactory(assistant_mandate=self.assistant_mandate, entity=self.entity2) self.mandate_entity3 = MandateEntityFactory(assistant_mandate=self.assistant_mandate, entity=self.entity3) self.mandate_entity4 = MandateEntityFactory(assistant_mandate=self.assistant_mandate2, entity=self.entity1) self.mandate_entity5 = MandateEntityFactory(assistant_mandate=self.assistant_mandate2, entity=self.entity2) self.reviewer1 = ReviewerFactory(entity=self.entity3, role=reviewer_role.RESEARCH) self.reviewer2 = ReviewerFactory(entity=self.entity2, role=reviewer_role.SUPERVISION) self.reviewer3 = ReviewerFactory(entity=self.entity1, role=reviewer_role.VICE_RECTOR) self.reviewer4 = ReviewerFactory(entity=None, role=reviewer_role.PHD_SUPERVISOR)
class TestMandateEntity(TestCase): def setUp(self): self.factory = RequestFactory() self.client = Client() self.manager = ManagerFactory() self.settings = SettingsFactory() self.client.force_login(self.manager.person.user) self.assistant = AcademicAssistantFactory() self.assistant_mandate = AssistantMandateFactory( state=assistant_mandate_state.TRTS, assistant=self.assistant, assistant_type=assistant_type.ASSISTANT ) self.assistant2 = AcademicAssistantFactory() self.assistant_mandate2 = AssistantMandateFactory( state=assistant_mandate_state.SUPERVISION, assistant=self.assistant2, assistant_type=assistant_type.TEACHING_ASSISTANT ) self.entity1 = EntityFactory() self.entity_version1 = EntityVersionFactory(entity=self.entity1, entity_type=entity_type.SECTOR) self.entity2 = EntityFactory() self.entity_version2 = EntityVersionFactory(entity=self.entity2, entity_type=entity_type.FACULTY) self.entity3 = EntityFactory() self.entity_version3 = EntityVersionFactory(entity=self.entity3, entity_type=entity_type.INSTITUTE) self.entity4 = EntityFactory() self.entity_version4 = EntityVersionFactory( entity=self.entity4, parent=self.entity2, entity_type=entity_type.SCHOOL) self.mandate_entity1 = MandateEntityFactory(assistant_mandate=self.assistant_mandate, entity=self.entity1) self.mandate_entity2 = MandateEntityFactory(assistant_mandate=self.assistant_mandate, entity=self.entity2) self.mandate_entity3 = MandateEntityFactory(assistant_mandate=self.assistant_mandate, entity=self.entity3) self.mandate_entity4 = MandateEntityFactory(assistant_mandate=self.assistant_mandate2, entity=self.entity1) self.mandate_entity5 = MandateEntityFactory(assistant_mandate=self.assistant_mandate2, entity=self.entity2) self.reviewer1 = ReviewerFactory(entity=self.entity3, role=reviewer_role.RESEARCH) self.reviewer2 = ReviewerFactory(entity=self.entity2, role=reviewer_role.SUPERVISION) self.reviewer3 = ReviewerFactory(entity=self.entity1, role=reviewer_role.VICE_RECTOR) self.reviewer4 = ReviewerFactory(entity=None, role=reviewer_role.PHD_SUPERVISOR) def test_mandate_can_go_backward(self): self.assertTrue(mandate_can_go_backward(self.assistant_mandate)) self.assistant_mandate.state = assistant_mandate_state.RESEARCH self.assistant_mandate.save() self.review1 = ReviewFactory( reviewer=self.reviewer1, mandate=self.assistant_mandate, status=review_status.IN_PROGRESS ) self.assertFalse(mandate_can_go_backward(self.assistant_mandate)) self.review1.delete() self.assistant_mandate.state = assistant_mandate_state.TO_DO self.assistant_mandate.save() self.assertFalse(mandate_can_go_backward(self.assistant_mandate)) def test_assistant_mandate_step_back_from_assistant_to_beginning(self): self.assistant_mandate.state = assistant_mandate_state.TRTS self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.TO_DO) def test_assistant_mandate_step_back_from_phd_supervisor_to_assistant(self): self.assistant_mandate.state = assistant_mandate_state.PHD_SUPERVISOR self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.TRTS) def test_assistant_mandate_step_back_from_institute_president_to_php_supervisor(self): self.assistant.supervisor = PersonFactory() self.assistant.save() self.review1 = ReviewFactory( reviewer=self.reviewer1, mandate=self.assistant_mandate, status=review_status.DONE ) self.review2 = ReviewFactory( reviewer=None, mandate=self.assistant_mandate, status=review_status.DONE ) self.assistant_mandate.state = assistant_mandate_state.RESEARCH self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.PHD_SUPERVISOR) def test_assistant_mandate_step_back_from_institute_president_to_assistant(self): # Test if assistant does not have a phd supervisor self.assistant_mandate.state = assistant_mandate_state.RESEARCH self.assistant_mandate.save() self.assistant.supervisor = None self.assistant.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.TRTS) def test_assistant_mandate_step_back_from_dean_of_faculty_to_institute_president(self): self.research_review = ReviewFactory(mandate=self.assistant_mandate, reviewer=self.reviewer1) self.assistant_mandate.state = assistant_mandate_state.SUPERVISION self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.RESEARCH) def test_assistant_mandate_step_back_from_vice_rector_to_dean_of_faculty(self): self.supervision_review = ReviewFactory(mandate=self.assistant_mandate, reviewer=self.reviewer2) self.assistant_mandate.state = assistant_mandate_state.VICE_RECTOR self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.SUPERVISION) def test_assistant_mandate_step_back_from_dean_of_faculty_to_assistant(self): # Test if assistant is teaching assistant self.research_review = ReviewFactory(mandate=self.assistant_mandate, reviewer=self.reviewer1) self.assistant_mandate.state = assistant_mandate_state.SUPERVISION self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate2.id}) self.assistant_mandate2.refresh_from_db() self.assertEqual(self.assistant_mandate2.state, assistant_mandate_state.TRTS) def test_assistant_mandate_step_back_from_done_to_vice_rector(self): self.review4 = ReviewFactory( reviewer=self.reviewer3, mandate=self.assistant_mandate2, status=review_status.DONE ) self.review5 = ReviewFactory( reviewer=self.reviewer2, mandate=self.assistant_mandate2, status=review_status.DONE ) self.assistant_mandate2.state = assistant_mandate_state.DONE self.assistant_mandate2.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate2.id}) self.assistant_mandate2.refresh_from_db() self.assertEqual(self.assistant_mandate2.state, assistant_mandate_state.VICE_RECTOR) def test_add_actions_to_mandates_list(self): self.client.force_login(self.reviewer1.person.user) response = self.client.get('/assistants/reviewer/') context = add_actions_to_mandates_list(response.context, self.reviewer1) for mandate in context['object_list']: if mandate.id == self.assistant_mandate.id: self.assertFalse(mandate.view) self.assertFalse(mandate.edit) self.client.force_login(self.reviewer2.person.user) response = self.client.get('/assistants/reviewer/') context = add_actions_to_mandates_list(response.context, self.reviewer2) for mandate in context['object_list']: if mandate.id == self.assistant_mandate2.id: self.assertTrue(mandate.view) self.assertTrue(mandate.edit)
class TestMandateEntity(TestCase): def setUp(self): self.factory = RequestFactory() self.client = Client() self.manager = ManagerFactory() self.settings = SettingsFactory() self.client.force_login(self.manager.person.user) self.assistant = AcademicAssistantFactory() self.assistant_mandate = AssistantMandateFactory( state=assistant_mandate_state.TRTS, assistant=self.assistant, assistant_type=assistant_type.ASSISTANT) self.assistant2 = AcademicAssistantFactory() self.assistant_mandate2 = AssistantMandateFactory( state=assistant_mandate_state.SUPERVISION, assistant=self.assistant2, assistant_type=assistant_type.TEACHING_ASSISTANT) self.entity1 = EntityFactory() self.entity_version1 = EntityVersionFactory( entity=self.entity1, entity_type=entity_type.SECTOR) self.entity2 = EntityFactory() self.entity_version2 = EntityVersionFactory( entity=self.entity2, entity_type=entity_type.FACULTY) self.entity3 = EntityFactory() self.entity_version3 = EntityVersionFactory( entity=self.entity3, entity_type=entity_type.INSTITUTE) self.entity4 = EntityFactory() self.entity_version4 = EntityVersionFactory( entity=self.entity4, parent=self.entity2, entity_type=entity_type.SCHOOL) self.mandate_entity1 = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity1) self.mandate_entity2 = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity2) self.mandate_entity3 = MandateEntityFactory( assistant_mandate=self.assistant_mandate, entity=self.entity3) self.mandate_entity4 = MandateEntityFactory( assistant_mandate=self.assistant_mandate2, entity=self.entity1) self.mandate_entity5 = MandateEntityFactory( assistant_mandate=self.assistant_mandate2, entity=self.entity2) self.reviewer1 = ReviewerFactory(entity=self.entity3, role=reviewer_role.RESEARCH) self.reviewer2 = ReviewerFactory(entity=self.entity2, role=reviewer_role.SUPERVISION) self.reviewer3 = ReviewerFactory(entity=self.entity1, role=reviewer_role.VICE_RECTOR) self.reviewer4 = ReviewerFactory(entity=None, role=reviewer_role.PHD_SUPERVISOR) def test_mandate_can_go_backward(self): self.assertTrue(mandate_can_go_backward(self.assistant_mandate)) self.assistant_mandate.state = assistant_mandate_state.RESEARCH self.assistant_mandate.save() self.review1 = ReviewFactory(reviewer=self.reviewer1, mandate=self.assistant_mandate, status=review_status.IN_PROGRESS) self.assertFalse(mandate_can_go_backward(self.assistant_mandate)) self.review1.delete() self.assistant_mandate.state = assistant_mandate_state.TO_DO self.assistant_mandate.save() self.assertFalse(mandate_can_go_backward(self.assistant_mandate)) def test_assistant_mandate_step_back_from_assistant_to_beginning(self): self.assistant_mandate.state = assistant_mandate_state.TRTS self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.TO_DO) def test_assistant_mandate_step_back_from_phd_supervisor_to_assistant( self): self.assistant_mandate.state = assistant_mandate_state.PHD_SUPERVISOR self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.TRTS) def test_assistant_mandate_step_back_from_institute_president_to_php_supervisor( self): self.assistant.supervisor = PersonFactory() self.assistant.save() self.review1 = ReviewFactory(reviewer=self.reviewer1, mandate=self.assistant_mandate, status=review_status.DONE) self.review2 = ReviewFactory(reviewer=None, mandate=self.assistant_mandate, status=review_status.DONE) self.assistant_mandate.state = assistant_mandate_state.RESEARCH self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.PHD_SUPERVISOR) def test_assistant_mandate_step_back_from_institute_president_to_assistant( self): # Test if assistant does not have a phd supervisor self.assistant_mandate.state = assistant_mandate_state.RESEARCH self.assistant_mandate.save() self.assistant.supervisor = None self.assistant.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.TRTS) def test_assistant_mandate_step_back_from_dean_of_faculty_to_institute_president( self): self.research_review = ReviewFactory(mandate=self.assistant_mandate, reviewer=self.reviewer1) self.assistant_mandate.state = assistant_mandate_state.SUPERVISION self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.RESEARCH) def test_assistant_mandate_step_back_from_vice_rector_to_dean_of_faculty( self): self.supervision_review = ReviewFactory(mandate=self.assistant_mandate, reviewer=self.reviewer2) self.assistant_mandate.state = assistant_mandate_state.VICE_RECTOR self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate.id}) self.assistant_mandate.refresh_from_db() self.assertEqual(self.assistant_mandate.state, assistant_mandate_state.SUPERVISION) def test_assistant_mandate_step_back_from_dean_of_faculty_to_assistant( self): # Test if assistant is teaching assistant self.research_review = ReviewFactory(mandate=self.assistant_mandate, reviewer=self.reviewer1) self.assistant_mandate.state = assistant_mandate_state.SUPERVISION self.assistant_mandate.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate2.id}) self.assistant_mandate2.refresh_from_db() self.assertEqual(self.assistant_mandate2.state, assistant_mandate_state.TRTS) def test_assistant_mandate_step_back_from_done_to_vice_rector(self): self.review4 = ReviewFactory(reviewer=self.reviewer3, mandate=self.assistant_mandate2, status=review_status.DONE) self.review5 = ReviewFactory(reviewer=self.reviewer2, mandate=self.assistant_mandate2, status=review_status.DONE) self.assistant_mandate2.state = assistant_mandate_state.DONE self.assistant_mandate2.save() self.client.post(reverse('assistant_mandate_step_back'), {'mandate_id': self.assistant_mandate2.id}) self.assistant_mandate2.refresh_from_db() self.assertEqual(self.assistant_mandate2.state, assistant_mandate_state.VICE_RECTOR) def test_add_actions_to_mandates_list(self): self.client.force_login(self.reviewer1.person.user) response = self.client.get('/assistants/reviewer/') context = add_actions_to_mandates_list(response.context, self.reviewer1) for mandate in context['object_list']: if mandate.id == self.assistant_mandate.id: self.assertFalse(mandate.view) self.assertFalse(mandate.edit) self.client.force_login(self.reviewer2.person.user) response = self.client.get('/assistants/reviewer/') context = add_actions_to_mandates_list(response.context, self.reviewer2) for mandate in context['object_list']: if mandate.id == self.assistant_mandate2.id: self.assertTrue(mandate.view) self.assertTrue(mandate.edit)
def setUp(self): self.client = Client() self.settings = SettingsFactory() self.manager = ManagerFactory() self.factory = RequestFactory() self.supervisor = PersonFactory() self.assistant = AcademicAssistantFactory( phd_inscription_date=datetime.date(2015, 10, 2), thesis_title='Data fitting on manifolds', confirmation_test_date=datetime.date(2017, 9, 25), remark= "Deux co-promoteurs (l'application ne m'autorise à n'en renseigner qu'un)", supervisor=self.supervisor) self.mandate = AssistantMandateFactory( assistant=self.assistant, assistant_type=assistant_type.ASSISTANT, sap_id='1120019', entry_date=datetime.date(2012, 9, 15), end_date=datetime.date(2018, 9, 14), contract_duration='6 ans', contract_duration_fte='6 ans', fulltime_equivalent=1, other_status=None, renewal_type=assistant_mandate_renewal.NORMAL, justification=None, external_contract='', external_functions='', ) self.tutoring_learning_unit_year = TutoringLearningUnitYearFactory( mandate=self.mandate) self.review3 = ReviewFactory(mandate=self.mandate, reviewer=None) self.entity_version = EntityVersionFactory() self.mandate_entity = MandateEntityFactory( assistant_mandate=self.mandate, entity=self.entity_version.entity) self.entity_version2 = EntityVersionFactory( entity_type=entity_type.FACULTY, end_date=None) self.mandate_entity2 = MandateEntityFactory( assistant_mandate=self.mandate, entity=self.entity_version2.entity) self.reviewer = ReviewerFactory(role=reviewer_role.SUPERVISION, entity=self.mandate_entity.entity) self.reviewer2 = ReviewerFactory(entity=self.mandate_entity2.entity) self.styles = getSampleStyleSheet() self.styles.add( ParagraphStyle( name='Tiny', fontSize=6, font='Helvetica', leading=8, leftIndent=0, rightIndent=0, firstLineIndent=0, alignment=TA_LEFT, spaceBefore=0, spaceAfter=0, splitLongWords=1, )) self.review1 = ReviewFactory(mandate=self.mandate, reviewer=self.reviewer) self.review2 = ReviewFactory(mandate=self.mandate, reviewer=self.reviewer2, status=review_status.IN_PROGRESS) self.review3 = ReviewFactory(mandate=self.mandate, reviewer=None) self.reviewer3 = ReviewerFactory()