def test_get_year_1st_grader_fall(self): groups = [ INFORMATICS_BACHELOR_STUDY_PROGRAMME, load_course(ITGK_ACTIVE) ] self.assertEqual(1, get_year(GROUP_IDENTIFIERS['BACHELOR'], groups))
def test_get_year_5th_grader_fall(self): groups = [ INFORMATICS_MASTER_STUDY_PROGRAMME, load_course(PVS_ACTIVE, active=True), ] self.assertEqual(5, get_year(GROUP_IDENTIFIERS['MASTER'], groups))
def test_get_year_3rd_grader_fall(self): groups = [ INFORMATICS_BACHELOR_STUDY_PROGRAMME, load_course(ITGK_EXPIRED, years_ago=2) ] self.assertEqual(3, get_year(GROUP_IDENTIFIERS['BACHELOR'], groups))
def test_find_study_5th_grader_pvs_fall(self): dumps_dir = os.path.join(DIR_NAME, 'data') fname = os.path.join(dumps_dir, '5th_grader_2018_pvs.json') with open(fname, 'r') as f: groups = json.load(f) field_of_study = get_field_of_study(groups) self.assertEqual(FIELD_OF_STUDY_CHOICES[2][0], field_of_study) self.assertEqual(5, get_year(GROUP_IDENTIFIERS['MASTER'], groups))
def test_find_study_3rd_grader(self): dumps_dir = os.path.join(DIR_NAME, 'data') fname = os.path.join(dumps_dir, '3rd_grader_2018.json') with open(fname, 'r') as f: groups = json.load(f) field_of_study = get_field_of_study(groups) self.assertEqual(FIELD_OF_STUDY_CHOICES[1][0], field_of_study) self.assertEqual(3, get_year(GROUP_IDENTIFIERS['BACHELOR'], groups))
def test_find_study_4th_grader_dbs_fall(self): dumps_dir = os.path.join(DIR_NAME, 'data') fname = os.path.join(dumps_dir, '4th_grader_2018_dbs.json') with open(fname, 'r') as f: groups = json.load(f) field_of_study = get_field_of_study(groups) self.assertEqual(FieldOfStudyType.DATABASE_AND_SEARCH, field_of_study) self.assertEqual(4, get_year(GROUP_IDENTIFIERS['MASTER'], groups))
def test_find_study_5th_grader_pvs_fall(self): dumps_dir = os.path.join(DIR_NAME, 'data') fname = os.path.join(dumps_dir, '5th_grader_2018_pvs.json') with open(fname, 'r') as f: groups = json.load(f) field_of_study = get_field_of_study(groups) self.assertEqual(FieldOfStudyType.SOFTWARE_ENGINEERING, field_of_study) self.assertEqual(5, get_year(GROUP_IDENTIFIERS['MASTER'], groups))
def test_find_study_2nd_grader_fall(self): dumps_dir = os.path.join(DIR_NAME, 'data') fname = os.path.join(dumps_dir, '2nd_grader_2018.json') with open(fname, 'r') as f: groups = json.load(f) field_of_study = get_field_of_study(groups) self.assertEqual(FieldOfStudyType.BACHELOR, field_of_study) self.assertEqual(2, get_year(GROUP_IDENTIFIERS['BACHELOR'], groups))
def test_find_study_3rd_grader_extended_fall(self): dumps_dir = os.path.join(DIR_NAME, "data") fname = os.path.join(dumps_dir, "3rd_grader_extended_1_year_2018.json") with open(fname, "r") as f: groups = json.load(f) field_of_study = get_field_of_study(groups) self.assertEqual(FieldOfStudyType.BACHELOR, field_of_study) self.assertEqual(3, get_year(GROUP_IDENTIFIERS["BACHELOR"], groups))
def test_find_study_4th_grader_dbs_2019(self): dumps_dir = os.path.join(DIR_NAME, "data") fname = os.path.join(dumps_dir, "4th_grader_2019_dbs.json") with open(fname, "r") as f: groups = json.load(f) field_of_study = get_field_of_study(groups) self.assertEqual(FieldOfStudyType.DATABASE_AND_SEARCH, field_of_study) self.assertEqual(4, get_year(GROUP_IDENTIFIERS["MASTER"], groups))
def test_find_study_5th_grader_ki_fall(self): dumps_dir = os.path.join(DIR_NAME, 'data') fname = os.path.join(dumps_dir, '5th_grader_2018_ki.json') with open(fname, 'r') as f: groups = json.load(f) field_of_study = get_field_of_study(groups) self.assertEqual(FieldOfStudyType.ARTIFICIAL_INTELLIGENCE, field_of_study) self.assertEqual(5, get_year(GROUP_IDENTIFIERS['MASTER'], groups))
def test_get_year_not_informatics(self): self.assertEqual(0, get_year('DEFINITELY_NOT_INFORMATICS', []))
def test_get_year_4th_grader_fall(self): groups = [ INFORMATICS_MASTER_STUDY_PROGRAMME, ] self.assertEqual(4, get_year(GROUP_IDENTIFIERS['MASTER'], groups))
def find_user_study_and_update(user, groups): study_group = get_study(groups) study_id = get_group_id(study_group) study_year = get_year(study_id, groups) study_name = study_group.get("displayName") field_of_study = get_field_of_study(groups) # Remove the years from bachelor if the user is a master student. if study_year >= 4: start_date_for_study = study_year - 3 else: start_date_for_study = study_year # Approvals are usually set from July 1st, so we do that here too. started_date = datetime(timezone.now().year - start_date_for_study + 1, 7, 1) logger.debug( "Found {} to be studying {} on year {}".format(user, study_id, study_year) ) if study_name: application = MembershipApproval.objects.create( applicant=user, approver=user, processed=True, processed_date=timezone.now(), approved=True, message="Automatisk godkjent gjennom integrasjon mot Dataporten.", field_of_study=field_of_study, new_expiry_date=get_expiry_date( started_date.year, get_length_of_field_of_study(field_of_study) ), started_date=started_date, ) if application.is_fos_application(): user.field_of_study = application.field_of_study user.started_date = application.started_date user.save() if application.is_membership_application(): membership = Membership.objects.filter(username=user.ntnu_username) if membership.count() == 1: membership = membership[0] if not membership.description: membership.description = "" membership.description += """ ------------------- Updated by dataporten app. Automatically approved on %s. Old notes: %s """ % ( str(timezone.now().date()), membership.note, ) membership.note = ( user.get_field_of_study_display() + " " + str(user.started_date) ) else: membership = Membership() membership.username = user.ntnu_username membership.registered = timezone.now().date() membership.description = """Added by dataporten app. Automatically approved on %s.""" % ( str(timezone.now().date()) ) membership.note = ( user.get_field_of_study_display() + " " + str(user.started_date) ) membership.expiration_date = application.new_expiry_date logger.debug("ntnu username: ") logger.debug(user.ntnu_username) membership.save() return True, study_name, study_year