def setUpTestData(cls): make_manager() cls.semester = baker.make(Semester, id=2) responsible = baker.make(UserProfile, email='*****@*****.**') cls.student1 = baker.make(UserProfile, email='*****@*****.**') cls.student2 = baker.make(UserProfile, email='*****@*****.**') students = baker.make(UserProfile, _quantity=10) students.extend([cls.student1, cls.student2]) cls.evaluation = baker.make(Evaluation, id=22, state='in_evaluation', course=baker.make(Course, semester=cls.semester), participants=students) questionnaire = baker.make(Questionnaire) cls.question_grade = baker.make(Question, questionnaire=questionnaire, type=Question.GRADE) baker.make(Question, questionnaire=questionnaire, type=Question.LIKERT) cls.evaluation.general_contribution.questionnaires.set([questionnaire]) cls.responsible_contribution = baker.make(Contribution, contributor=responsible, evaluation=cls.evaluation, questionnaires=[questionnaire])
def setUpTestData(cls): cls.manager = make_manager() cls.semester = baker.make(Semester) baker.make(CourseType, name_de="Vorlesung", name_en="Lecture", import_names=["Vorlesung"]) baker.make(CourseType, name_de="Seminar", name_en="Seminar", import_names=["Seminar"]) Degree.objects.filter(name_de="Bachelor").update(import_names=["Bachelor", "B. Sc."]) Degree.objects.filter(name_de="Master").update(import_names=["Master", "M. Sc."])
def setUpTestData(cls): cls.test_users = [make_manager()] event = baker.make(RewardPointRedemptionEvent, pk=1, redeem_end_date=date.today() + timedelta(days=1)) baker.make(RewardPointRedemption, value=1, event=event)
def setUpTestData(cls): cls.manager = make_manager() cls.semester = baker.make(Semester, id=2) contributor = baker.make(UserProfile, email='*****@*****.**') responsible = baker.make(UserProfile, email='*****@*****.**') cls.test_users = [cls.manager, contributor, responsible] # Normal evaluation with responsible and contributor. cls.evaluation = baker.make(Evaluation, id=21, state='published', course=baker.make(Course, semester=cls.semester)) baker.make( Contribution, evaluation=cls.evaluation, contributor=responsible, role=Contribution.Role.EDITOR, textanswer_visibility=Contribution.TextAnswerVisibility.GENERAL_TEXTANSWERS, ) cls.contribution = baker.make( Contribution, evaluation=cls.evaluation, contributor=contributor, role=Contribution.Role.EDITOR, )
def setUpTestData(cls): cls.manager = make_manager() cls.semester = baker.make(Semester, id=3) contributor = baker.make(UserProfile) # Set up an evaluation with one question but no answers student1 = baker.make(UserProfile) student2 = baker.make(UserProfile) cls.evaluation = baker.make( Evaluation, id=21, state='published', course=baker.make(Course, semester=cls.semester), participants=[student1, student2], voters=[student1, student2], ) questionnaire = baker.make(Questionnaire) cls.evaluation.general_contribution.questionnaires.set([questionnaire]) cls.contribution = baker.make( Contribution, evaluation=cls.evaluation, questionnaires=[questionnaire], contributor=contributor, ) cls.likert_question = baker.make(Question, type=Question.LIKERT, questionnaire=questionnaire, order=2) cls.url = '/results/semester/%s/evaluation/%s' % (cls.semester.id, cls.evaluation.id)
def setUpTestData(cls): cls.semester = baker.make(Semester) cls.manager = make_manager() cls.reviewer = baker.make(UserProfile, email="*****@*****.**", groups=[Group.objects.get(name='Reviewer')]) cls.student = baker.make(UserProfile, email="*****@*****.**") cls.student_external = baker.make(UserProfile, email="*****@*****.**") cls.contributor = baker.make(UserProfile, email="*****@*****.**") cls.responsible = baker.make(UserProfile, email="*****@*****.**") course = baker.make(Course, semester=cls.semester, degrees=[baker.make(Degree)], responsibles=[cls.responsible]) cls.evaluation = baker.make( Evaluation, course=course, state='published', participants=[cls.student, cls.student_external], voters=[cls.student, cls.student_external], ) cls.evaluation.general_contribution.questionnaires.set([baker.make(Questionnaire)]) baker.make( Contribution, evaluation=cls.evaluation, contributor=cls.responsible, role=Contribution.Role.EDITOR, textanswer_visibility=Contribution.TextAnswerVisibility.GENERAL_TEXTANSWERS, ) baker.make(Contribution, evaluation=cls.evaluation, contributor=cls.contributor) cache_results(cls.evaluation)
def test_send_text_answer_review_reminder(self): make_manager() evaluation = baker.make( Evaluation, state=Evaluation.State.EVALUATED, can_publish_text_results=True, wait_for_grade_upload_before_publishing=False, ) baker.make( TextAnswer, contribution=evaluation.general_contribution, ) with patch( "evap.evaluation.models.EmailTemplate.send_to_user") as mock: management.call_command("send_reminders") self.assertEqual(mock.call_count, 1)
def test_send_reminder(self): make_manager() evaluation = baker.make( Evaluation, state=Evaluation.State.EVALUATED, wait_for_grade_upload_before_publishing=False, can_publish_text_results=True, ) baker.make( TextAnswer, contribution=evaluation.general_contribution, state=TextAnswer.State.NOT_REVIEWED, ) management.call_command("send_reminders") self.assertEqual(len(mail.outbox), 1) self.assertIn(evaluation.name, mail.outbox[0].body)
def setUpTestData(cls): cls.manager = make_manager() cls.semester = baker.make(Semester, pk=1) cls.student = baker.make(UserProfile, email="*****@*****.**") course = baker.make(Course, semester=cls.semester) cls.evaluation = baker.make( Evaluation, state=Evaluation.State.IN_EVALUATION, participants=[cls.student], voters=[cls.student], course=course, )
def test_private_evaluation(self): semester = baker.make(Semester) manager = make_manager() student = baker.make(UserProfile, email="*****@*****.**") student_external = baker.make(UserProfile, email="*****@*****.**") contributor = baker.make(UserProfile, email="*****@*****.**") responsible = baker.make(UserProfile, email="*****@*****.**") editor = baker.make(UserProfile, email="*****@*****.**") voter1 = baker.make(UserProfile, email="*****@*****.**") voter2 = baker.make(UserProfile, email="*****@*****.**") non_participant = baker.make(UserProfile, email="*****@*****.**") degree = baker.make(Degree) course = baker.make(Course, semester=semester, degrees=[degree], is_private=True, responsibles=[responsible, editor]) private_evaluation = baker.make( Evaluation, course=course, state='published', participants=[student, student_external, voter1, voter2], voters=[voter1, voter2] ) private_evaluation.general_contribution.questionnaires.set([baker.make(Questionnaire)]) baker.make( Contribution, evaluation=private_evaluation, contributor=editor, role=Contribution.Role.EDITOR, textanswer_visibility=Contribution.TextAnswerVisibility.GENERAL_TEXTANSWERS, ) baker.make(Contribution, evaluation=private_evaluation, contributor=contributor, role=Contribution.Role.EDITOR) cache_results(private_evaluation) url = '/results/' self.assertNotIn(private_evaluation.full_name, self.app.get(url, user=non_participant)) self.assertIn(private_evaluation.full_name, self.app.get(url, user=student)) self.assertIn(private_evaluation.full_name, self.app.get(url, user=responsible)) self.assertIn(private_evaluation.full_name, self.app.get(url, user=editor)) self.assertIn(private_evaluation.full_name, self.app.get(url, user=contributor)) with run_in_staff_mode(self): self.assertIn(private_evaluation.full_name, self.app.get(url, user=manager)) self.app.get(url, user=student_external, status=403) # external users can't see results semester view url = '/results/semester/%s/evaluation/%s' % (semester.id, private_evaluation.id) self.app.get(url, user=non_participant, status=403) self.app.get(url, user=student, status=200) self.app.get(url, user=responsible, status=200) self.app.get(url, user=editor, status=200) self.app.get(url, user=contributor, status=200) with run_in_staff_mode(self): self.app.get(url, user=manager, status=200) self.app.get(url, user=student_external, status=200) # this external user participates in the evaluation and can see the results
def test_permission_denied(self, export_method): manager = make_manager() student = baker.make(UserProfile, email="*****@*****.**") self.app.get(self.url, user=student, status=403) export_method.assert_not_called() with run_in_staff_mode(self): self.app.get(self.url, user=self.reviewer, status=200) export_method.assert_called_once() export_method.reset_mock() with run_in_staff_mode(self): self.app.get(self.url, user=manager, status=200) export_method.assert_called_once()
def setUpTestData(cls): cls.manager = make_manager() cls.semester = baker.make(Semester) baker.make(CourseType, name_de="Vorlesung", name_en="Lecture", import_names=["Vorlesung"]) baker.make(CourseType, name_de="Seminar", name_en="Seminar", import_names=["Seminar"]) degree_bachelor = Degree.objects.get(name_de="Bachelor") degree_bachelor.import_names = ["Bachelor", "B. Sc."] degree_bachelor.save() degree_master = Degree.objects.get(name_de="Master") degree_master.import_names = ["Master", "M. Sc."] degree_master.save()
def setUpTestData(cls): cls.manager = make_manager()
def setUpTestData(cls): cls.manager = make_manager() cls.event = baker.make(RewardPointRedemptionEvent, pk=1, name="old name")
def setUpTestData(cls): cls.manager = make_manager() cache_results(Evaluation.objects.get(id=1))
def setUpTestData(cls): cls.test_users = [make_manager()] event = baker.make(RewardPointRedemptionEvent, redeem_end_date=date.today() + timedelta(days=1)) baker.make(RewardPointRedemption, value=1, event=event) cls.url = f"/rewards/reward_point_redemption_event/{event.pk}/export"
def setUpTestData(cls): cls.manager = make_manager() cls.event = baker.make(RewardPointRedemptionEvent, name="old name") cls.url = reverse("rewards:reward_point_redemption_event_edit", args=[cls.event.pk])
def setUpTestData(cls): cls.manager = make_manager() cls.semester = baker.make(Semester, pk=1)
def test_send_no_reminder_if_not_needed(self): make_manager() management.call_command("send_reminders") self.assertEqual(len(mail.outbox), 0)