Esempio n. 1
0
 def _on_transaction_commit():
     """If either are applicable, update/create combined final grade and generate program letter"""
     user = instance.user
     course = instance.course_run.course
     update_or_create_combined_final_grade(user, course)
     if created and not course.program.financial_aid_availability:
         generate_program_letter(instance.user, course.program)
Esempio n. 2
0
 def test_already_has_program_letter(self):
     """
     Test scenario where a user already has a letter for the given program
     """
     MicromastersProgramCommendation.objects.create(user=self.user, program=self.program)
     # should not raise an exception
     api.generate_program_letter(self.user, self.program)
     assert MicromastersProgramCommendation.objects.filter(user=self.user, program=self.program).count() == 1
Esempio n. 3
0
 def test_already_has_program_letter(self):
     """
     Test scenario where a user already has a letter for the given program
     """
     MicromastersProgramCommendation.objects.create(user=self.user, program=self.program)
     # should not raise an exception
     api.generate_program_letter(self.user, self.program)
     assert MicromastersProgramCommendation.objects.filter(user=self.user, program=self.program).count() == 1
Esempio n. 4
0
 def test_has_no_final_grade(self):
     """
     Test that a user without the needed final grades will not have a letter generated
     """
     self.program.financial_aid_availability = False
     self.program.save()
     letter_qset = MicromastersProgramCommendation.objects.filter(user=self.user, program=self.program)
     api.generate_program_letter(self.user, self.program)
     assert letter_qset.exists() is False
Esempio n. 5
0
 def test_has_no_final_grade(self):
     """
     Test that a user without the needed final grades will not have a letter generated
     """
     self.program.financial_aid_availability = False
     self.program.save()
     letter_qset = MicromastersProgramCommendation.objects.filter(user=self.user, program=self.program)
     api.generate_program_letter(self.user, self.program)
     assert letter_qset.exists() is False
 def handle(self, *args, **kwargs):  # pylint: disable=unused-argument
     programs = Program.objects.filter(live=True)
     for program in programs:
         if not program.has_frozen_grades_for_all_courses():
             self.stdout.write(
                 "Program '{}' has courses without frozen grades. Skipping program letter generation...".format(
                     program.title)
             )
             continue
         enrollments = ProgramEnrollment.objects.filter(program=program).select_related('user')
         for enrollment in enrollments:
             generate_program_letter(enrollment.user, program)
 def handle(self, *args, **kwargs):  # pylint: disable=unused-argument
     programs = Program.objects.filter(live=True, financial_aid_availability=False)
     for program in programs:
         if not program.has_frozen_grades_for_all_courses():
             self.stdout.write(
                 "Program '{}' has courses without frozen grades. Skipping program letter generation...".format(
                     program.title)
             )
             continue
         enrollments = ProgramEnrollment.objects.filter(program=program).select_related('user')
         for enrollment in enrollments:
             generate_program_letter(enrollment.user, program)
Esempio n. 8
0
    def test_with_fa_program(self):
        """
        Test that letter won't be created if program is FA-enabled
        """
        self.program.financial_aid_availability = True
        self.program.save()
        with mute_signals(post_save):
            MicromastersProgramCertificate.objects.create(
                user=self.user,
                program=self.program
            )

        cert_qset = MicromastersProgramCommendation.objects.filter(user=self.user, program=self.program)
        assert cert_qset.exists() is False
        api.generate_program_letter(self.user, self.program)
        assert cert_qset.exists() is True
Esempio n. 9
0
    def test_with_fa_program(self):
        """
        Test that letter won't be created if program is FA-enabled
        """
        self.program.financial_aid_availability = True
        self.program.save()
        with mute_signals(post_save):
            FinalGradeFactory.create(user=self.user,
                                     course_run=self.run_1,
                                     passed=True,
                                     status='complete',
                                     grade=0.8)

        cert_qset = MicromastersProgramCommendation.objects.filter(
            user=self.user, program=self.program)
        assert cert_qset.exists() is False
        api.generate_program_letter(self.user, self.program)
        assert cert_qset.exists() is False
Esempio n. 10
0
    def test_successful_program_letter_generation(self):
        """
        Test happy scenario
        """
        self.program.financial_aid_availability = False
        self.program.save()
        with mute_signals(post_save):
            FinalGradeFactory.create(user=self.user,
                                     course_run=self.run_1,
                                     passed=True,
                                     status='complete',
                                     grade=0.8)

        cert_qset = MicromastersProgramCommendation.objects.filter(
            user=self.user, program=self.program)
        assert cert_qset.exists() is False
        api.generate_program_letter(self.user, self.program)
        assert cert_qset.exists() is True
Esempio n. 11
0
    def test_with_fa_program(self):
        """
        Test that letter won't be created if program is FA-enabled
        """
        self.program.financial_aid_availability = True
        self.program.save()
        with mute_signals(post_save):
            FinalGradeFactory.create(
                user=self.user,
                course_run=self.run_1,
                passed=True,
                status='complete',
                grade=0.8
            )

        cert_qset = MicromastersProgramCommendation.objects.filter(user=self.user, program=self.program)
        assert cert_qset.exists() is False
        api.generate_program_letter(self.user, self.program)
        assert cert_qset.exists() is False
Esempio n. 12
0
    def test_successful_program_letter_generation(self):
        """
        Test happy scenario
        """
        self.program.financial_aid_availability = False
        self.program.save()
        with mute_signals(post_save):
            FinalGradeFactory.create(
                user=self.user,
                course_run=self.run_1,
                passed=True,
                status='complete',
                grade=0.8
            )

        cert_qset = MicromastersProgramCommendation.objects.filter(user=self.user, program=self.program)
        assert cert_qset.exists() is False
        api.generate_program_letter(self.user, self.program)
        assert cert_qset.exists() is True