def setUp(self): self.user = UserFactory() self.classroom_1 = ClassroomFactory(created_by=self.user) self.classroom_2 = ClassroomFactory() self.classroom_3 = ClassroomFactory() self.enrollment_1 = EnrollmentFactory(classroom=self.classroom_2, student=self.user)
def test_classroom_model_creation(self): user = UserFactory() class_1 = ClassroomFactory(name='Astrophysics', created_by=user) class_2 = ClassroomFactory(name='Gravitational Mechanics', created_by=user) self.assertEqual(Classroom.objects.count(), 2) self.assertEqual(class_1.created_by, user) self.assertEqual(class_2.created_by, user) self.assertEqual(class_1.name, 'Astrophysics') self.assertEqual(class_2.name, 'Gravitational Mechanics')
def setUp(self): self.superuser = get_super_user() self.user_1 = UserFactory() self.user_2 = UserFactory() self.classroom_1 = ClassroomFactory() self.classroom_2 = ClassroomFactory() self.enrollment_1 = EnrollmentFactory(student=self.user_1, classroom=self.classroom_1) self.enrollment_2 = EnrollmentFactory(student=self.user_2, classroom=self.classroom_2)
def setUp(self): self.superuser = get_super_user() self.user = UserFactory() self.unauthorized_user = UserFactory() self.classroom = ClassroomFactory(created_by=self.user) self.enrollment = EnrollmentFactory(student=self.user, classroom=self.classroom)
def test_superuser_can_update_any_class(self): super_user = get_user_model().objects.create_superuser( username='******', email='*****@*****.**', password='******') user_1 = UserFactory() user_2 = UserFactory() class_1 = ClassroomFactory(created_by=user_1) class_2 = ClassroomFactory(created_by=user_2) self.assertTrue(class_1.can_update(super_user)) self.assertTrue(class_1.can_update(user_1)) self.assertFalse(class_1.can_update(user_2)) self.assertTrue(class_2.can_update(super_user)) self.assertFalse(class_2.can_update(user_1)) self.assertTrue(class_2.can_update(user_2))
class ClassroomUpdateTests(TestCase): def setUp(self): self.user = UserFactory() self.classroom = ClassroomFactory(created_by=self.user) def test_classroom_update_view_redirects_for_anonymous_user(self): response = self.client.get(self.classroom.get_update_url()) no_response = self.client.get('/class/update/') self.assertEqual(response.status_code, 302) self.assertTemplateNotUsed(response, 'classroom/classroom_update_form.html') self.assertEqual(no_response.status_code, 404) def test_classroom_update_works_for_logged_in_user(self): self.client.force_login(self.user) response = self.client.get(self.classroom.get_update_url()) no_response = self.client.get('/class/update/') self.assertEqual(response.status_code, 200) self.assertContains(response, 'Update') self.assertContains(response, 'name') self.assertContains(response, self.classroom.name) self.assertNotContains(response, 'Hi I should not be on this page!') self.assertTemplateUsed(response, 'classroom/classroom_update_form.html') self.assertEqual(no_response.status_code, 404) def test_classroom_update_resolve_classroomupdateview(self): view = resolve(self.classroom.get_update_url()) self.assertEqual(view.func.__name__, ClassroomUpdate.as_view().__name__) def test_classroom_update_with_valid_post_data_updates_existing_classroom( self): self.client.force_login(self.user) response = self.client.post(self.classroom.get_update_url(), data={'name': 'Learn Astronomy'}) self.assertEqual(response.status_code, 302) self.assertEqual(Classroom.objects.count(), 1) messages = list(get_messages(response.wsgi_request)) self.assertEqual(len(messages), 1) self.assertEqual(str(messages[0]), "Learn Astronomy successfully updated!")
def test_only_a_user_who_created_a_class_can_update_it(self): user_1 = UserFactory() user_2 = UserFactory() class_1 = ClassroomFactory(created_by=user_1) class_2 = ClassroomFactory(created_by=user_2) self.assertTrue(class_1.can_update(user_1)) self.assertFalse(class_1.can_update(user_2)) self.assertFalse(class_2.can_update(user_1)) self.assertTrue(class_2.can_update(user_2))
class ClassroomDetailTests(TestCase): def setUp(self): self.user = UserFactory() self.classroom = ClassroomFactory() self.post_1 = PostFactory(classroom=self.classroom, author=self.user) self.post_2 = PostFactory(classroom=self.classroom, author=self.user) def test_classroom_detail_redirects_for_anonymous_or_logged_out_user(self): response = self.client.get(self.classroom.get_absolute_url()) no_response = self.client.get('/classroom/123456/') self.assertEqual(response.status_code, 302) self.assertTemplateNotUsed(response, 'classroom/classroom_detail.html') self.assertEqual(no_response.status_code, 404) def test_classroom_detail_works_for_logged_in_user(self): self.client.force_login(self.user) response = self.client.get(self.classroom.get_absolute_url()) no_response = self.client.get('/classroom/123456') self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'classroom/classroom_detail.html') self.assertContains(response, self.classroom.name) self.assertNotContains(response, 'Hi I should not be on this page!') self.assertEqual(no_response.status_code, 404) def test_classroom_detail_contains_post_model_form(self): self.client.force_login(self.user) response = self.client.get(self.classroom.get_absolute_url()) self.assertIsInstance(response.context['form'], PostForm) def test_classroom_list_resolves_classroomlistview(self): view = resolve(self.classroom.get_absolute_url()) self.assertEqual(view.func.__name__, ClassroomDetailView.as_view().__name__) def test_classroom_detail_contains_all_posts_for_that_classroom(self): self.client.force_login(self.user) response = self.client.get(self.classroom.get_absolute_url()) self.assertContains(response, self.post_1.title) self.assertContains(response, self.post_2.title)
class ClassroomDeleteTests(TestCase): def setUp(self): self.user = UserFactory() self.classroom = ClassroomFactory(created_by=self.user) def test_classroom_delete_redirects_for_anonymous_user(self): response = self.client.get(self.classroom.get_delete_url()) no_response = self.client.get('/classroom/123456/delete/') self.assertEqual(response.status_code, 302) self.assertTemplateNotUsed(response, 'classroom/classroom_confirm_delete.html') self.assertEqual(no_response.status_code, 404) def test_classroom_delete_works_for_logged_in_user(self): self.client.force_login(self.user) response = self.client.get(self.classroom.get_delete_url()) no_response = self.client.get('/classroom/123456/delete/') self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'classroom/classroom_confirm_delete.html') self.assertContains(response, 'Delete') self.assertContains(response, 'Confirm') self.assertNotContains(response, 'Hi I should not be on this page!') self.assertEqual(no_response.status_code, 404) def test_classroom_delete_with_valid_post_data_deletes_the_classroom(self): self.client.force_login(self.user) response = self.client.post(self.classroom.get_delete_url()) self.assertEqual(response.status_code, 302) self.assertEqual(Classroom.objects.count(), 0) messages = list(get_messages(response.wsgi_request)) self.assertEqual(len(messages), 1) self.assertEqual(str(messages[0]), "Classroom successfully deleted!") def test_classroom_delete_resolves_classroomdeleteview(self): view = resolve(self.classroom.get_delete_url()) self.assertEqual(view.func.__name__, ClassroomDelete.as_view().__name__)
def setUp(self): self.super_user = get_user_model().objects.create_superuser( username='******', email='*****@*****.**', password='******') self.user_1 = UserFactory() self.user_2 = UserFactory() self.classroom_1 = ClassroomFactory() self.classroom_2 = ClassroomFactory() self.enroll_1 = EnrollmentFactory(student=self.user_1, classroom=self.classroom_1) self.enroll_2 = EnrollmentFactory(student=self.user_2, classroom=self.classroom_2) self.post_1 = PostFactory(author=self.user_1, classroom=self.classroom_1) self.post_2 = PostFactory(author=self.user_2, classroom=self.classroom_2)
class ClassroomPeopleTests(TestCase): def setUp(self): self.user = UserFactory() self.user_1 = UserFactory() self.user_2 = UserFactory() self.classroom = ClassroomFactory(created_by=self.user) self.enrollment_1 = EnrollmentFactory(classroom=self.classroom, student=self.user_1) self.enrollment_2 = EnrollmentFactory(classroom=self.classroom, student=self.user_2) def test_classroom_people_resolve_classroompeopleview(self): view = resolve(self.classroom.get_people_url()) self.assertEqual(view.func.__name__, ClassroomPeopleView.as_view().__name__) def test_classroom_people_redirects_for_logged_out_user(self): response = self.client.get(self.classroom.get_people_url()) no_response = self.client.get('/classroom/1234/people/') self.assertEqual(response.status_code, 302) self.assertTemplateNotUsed(response, 'classroom/classroom_people.html') self.assertEqual(no_response.status_code, 404) def test_classroom_people_works_for_logged_in_user(self): self.client.force_login(self.user) response = self.client.get(self.classroom.get_people_url()) no_response = self.client.get('/classroom/1243/people/') self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'classroom/classroom_people.html') self.assertContains(response, 'Classmates') self.assertContains(response, self.classroom.name) self.assertContains(response, self.user_1) self.assertContains(response, self.user_2) self.assertNotContains(response, 'Hi I should not be on this page!') self.assertEqual(no_response.status_code, 404)
def test_valid_enrollment_form_with_new_enrollment_sends_email(self): student = UserFactory() classroom = ClassroomFactory() code = str(classroom.id) form = EnrollmentForm({'code': code}) self.assertTrue(form.is_valid()) with self.assertLogs('classroom.forms', level='INFO') as cm: form.send_mail(student=student, classroom=classroom) self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].subject, 'Site message') self.assertGreaterEqual(len(cm.output), 1)
def setUp(self): self.user = UserFactory() self.classroom = ClassroomFactory() self.post_1 = PostFactory(classroom=self.classroom, author=self.user) self.post_2 = PostFactory(classroom=self.classroom, author=self.user)
def setUp(self): self.factory = RequestFactory() self.user = UserFactory() self.classroom = ClassroomFactory(created_by=self.user)
def test_only_the_user_who_created_a_classroom_can_update_it(self): user_1 = UserFactory() user_2 = UserFactory() class_1 = ClassroomFactory(created_by=user_1) class_2 = ClassroomFactory(created_by=user_1) class_3 = ClassroomFactory(created_by=user_2) self.assertEqual(Classroom.objects.count(), 3) self.assertTrue(class_1.can_update(user_1)) self.assertTrue(class_2.can_update(user_1)) self.assertTrue(class_3.can_update(user_2)) self.assertFalse(class_1.can_update(user_2)) self.assertFalse(class_2.can_update(user_2)) self.assertFalse(class_3.can_update(user_1))