def test_not_see_list_of_registered_students_in_form_if_student_was_registered_2_days_before(self): # Given a database with students enrolled to courses course = Course.objects.create( name="maths", start_date=timezone.now().date(), finish_date=timezone.now().date(), ) john = Student.objects.create(name="john") students_of_course = [ john, Student.objects.create(name="michael") ] course.students.add(*students_of_course) professor = User.objects.create(username="******") course.professors.add(professor) before_two_days_date = timezone.now() - datetime.timedelta(days=2) attendance = Attendance.objects.create(course=course, student=john) Attendance.objects.filter(pk=attendance.pk).update(date=before_two_days_date) self.create_preauthenticated_session_for(professor) register_student_page = RegisterStudentPage(self.browser, root_uri=self.live_server_url) # I don't want to see john student is checked in form register_student_page.get("/register/{0}".format(course.pk)) checked_students = register_student_page.checked_students self.assertNotIn(john.name, checked_students)
def test_if_user_is_not_logged_and_want_register_page_go_to_login_page(self): course = Course.objects.create( name="maths", start_date=timezone.now().date(), finish_date=timezone.now().date(), ) register_student_page = RegisterStudentPage(self.browser, root_uri=self.live_server_url) register_student_page.get("/register/{0}".format(course.pk)) self.assertEquals(len(self.browser.find_elements_by_id('id_username')), 1)
def test_see_list_of_registered_students_from_a_course(self): # Given a database with students enrolled to courses course = Course.objects.create( name="maths", start_date=timezone.now().date(), finish_date=timezone.now().date(), ) john = Student.objects.create(name="john") students_of_course = [ john, Student.objects.create(name="michael") ] course.students.add(*students_of_course) professor = User.objects.create(username="******") course.professors.add(professor) self.create_preauthenticated_session_for(professor) register_student_page = RegisterStudentPage(self.browser, root_uri=self.live_server_url) register_student_page.get("/register/{0}".format(course.pk)) register_student_page.toggle_check(john.name) register_student_page.submit_button.click() list_student_page = ListStudentPage(self.browser, root_uri=self.live_server_url) # I want to see the list of my students attendance = Attendance.objects.all()[0] list_student_page.get("/registered/{0}/{1:%Y-%m-%d}".format(course.pk, attendance.date)) students_registered = list_student_page.students_registered self.assertIn(john.name, students_registered)
def test_cannot_register_students_when_the_course_is_not_started(self): # Given a database with students enrolled to courses course = Course.objects.create( name="maths", start_date=timezone.now().date() + datetime.timedelta(days=1), finish_date=timezone.now().date() + datetime.timedelta(days=1) ) john = Student.objects.create(name="john") students_of_course = [ john, Student.objects.create(name="michael") ] course.students.add(*students_of_course) professor = User.objects.create(username="******") course.professors.add(professor) self.create_preauthenticated_session_for(professor) register_student_page = RegisterStudentPage(self.browser, root_uri=self.live_server_url) register_student_page.get("/register/{0}".format(course.pk)) not_started_course_message = register_student_page.not_started_course_message self.assertIn(not_started_course_message, NOT_STARTED_COURSE_MESSAGE)
def test_see_message_register_attendances_sucessfully(self): # Given a database with students enrolled to courses course = Course.objects.create( name="maths", start_date=timezone.now().date(), finish_date=timezone.now().date(), ) john = Student.objects.create(name="john") students_of_course = [ john, Student.objects.create(name="michael") ] course.students.add(*students_of_course) professor = User.objects.create(username="******") course.professors.add(professor) self.create_preauthenticated_session_for(professor) register_student_page = RegisterStudentPage(self.browser, root_uri=self.live_server_url) register_student_page.get("/register/{0}".format(course.pk)) register_student_page.toggle_check(john.name) register_student_page.submit_button.click() self.assertEquals(register_student_page.success_message, SUCCESS_MESSAGE)