From 23c238315aacb7736a97c35040846b7c7104bb43 Mon Sep 17 00:00:00 2001 From: CruiseDevice Date: Wed, 6 May 2020 22:31:56 +0530 Subject: Fix tests --- yaksh/test_views.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'yaksh/test_views.py') diff --git a/yaksh/test_views.py b/yaksh/test_views.py index 94b81ad..af0193e 100644 --- a/yaksh/test_views.py +++ b/yaksh/test_views.py @@ -2974,11 +2974,14 @@ class TestCourseDetail(TestCase): username=self.user1.username, password=self.user1_plaintext_pass ) - response = self.client.post( - reverse('yaksh:enroll_users', - kwargs={'course_id': self.user1_course.id}), - data={'check': self.student1.id} - ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_course.id + }) + data = { + 'check': self.student1.id, + 'enroll': 'enroll' + } + response = self.client.post(url, data) enrolled_student = self.user1_course.students.all() self.assertEqual(response.status_code, 302) self.assertSequenceEqual([self.student1], enrolled_student) @@ -3008,11 +3011,14 @@ class TestCourseDetail(TestCase): username=self.user1.username, password=self.user1_plaintext_pass ) - response = self.client.post( - reverse('yaksh:reject_users', - kwargs={'course_id': self.user1_course.id}), - data={'check': self.student1.id} - ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_course.id + }) + data = { + 'check': self.student1.id, + 'reject': 'reject' + } + response = self.client.post(url, data) enrolled_student = self.user1_course.rejected.all() self.assertEqual(response.status_code, 302) self.assertSequenceEqual([self.student1], enrolled_student) -- cgit From 624a0971830b1fd30fe5d1f389b5a143a210d235 Mon Sep 17 00:00:00 2001 From: CruiseDevice Date: Fri, 8 May 2020 22:08:24 +0530 Subject: More tests to test course detail page --- yaksh/test_views.py | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 240 insertions(+) (limited to 'yaksh/test_views.py') diff --git a/yaksh/test_views.py b/yaksh/test_views.py index af0193e..5b873b5 100644 --- a/yaksh/test_views.py +++ b/yaksh/test_views.py @@ -2636,6 +2636,12 @@ class TestCourseDetail(TestCase): name="Python Course II", enrollment="Enroll Request", creator=self.user1 ) + self.user1_deactive_course = Course.objects.create( + name="Python Course II", + enrollment="Enroll Request", + creator=self.user1, + active=False + ) self.learning_module = LearningModule.objects.create( name="test module", description="test description module", html_data="test html description module", creator=self.user1, @@ -2986,6 +2992,64 @@ class TestCourseDetail(TestCase): self.assertEqual(response.status_code, 302) self.assertSequenceEqual([self.student1], enrolled_student) + def test_student_course_enroll_post_without_enroll_in_request(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_course.id + }) + data = { + 'check': self.student1.id, + 'enroll': '' + } + response = self.client.post(url, data) + self.assertEqual(response.status_code, 302) + + def test_student_course_enroll_post_without_enroll_ids(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_course.id + }) + data = { + 'enroll': 'enroll' + } + response = self.client.post(url, data) + self.assertEqual(response.status_code, 302) + + def test_student_course_reject_post_without_reject_in_request(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_course.id + }) + data = { + 'check': self.student1.id, + 'reject': '' + } + response = self.client.post(url, data) + self.assertEqual(response.status_code, 302) + + def test_student_course_reject_post_without_reject_ids(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_course.id + }) + data = { + 'reject': 'reject' + } + response = self.client.post(url, data) + self.assertEqual(response.status_code, 302) + def test_student_course_reject_get(self): """ Reject student in a course using get request @@ -3023,6 +3087,64 @@ class TestCourseDetail(TestCase): self.assertEqual(response.status_code, 302) self.assertSequenceEqual([self.student1], enrolled_student) + def test_enroll_user_not_moderator(self): + self.client.login( + username=self.student.username, + password=self.student_plaintext_pass + ) + url = reverse('yaksh:enroll_user', kwargs={ + 'course_id': self.user1_course.id, + 'user_id': self.user1.id + }) + response = self.client.post(url) + self.assertEqual(response.status_code, 404) + + def test_enroll_user_in_deactivated_course(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:enroll_user', kwargs={ + 'course_id': self.user1_deactive_course.id, + 'user_id': self.student.id + }) + response = self.client.post(url) + self.assertEqual(response.status_code, 302) + + def test_reject_user_not_moderator(self): + self.client.login( + username=self.student.username, + password=self.student_plaintext_pass + ) + url = reverse('yaksh:reject_user', kwargs={ + 'course_id': self.user1_course.id, + 'user_id': self.user1.id + }) + response = self.client.post(url) + self.assertEqual(response.status_code, 404) + + def test_enroll_reject_user_not_moderator(self): + self.client.login( + username=self.student.username, + password=self.student_plaintext_pass + ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_course.id, + }) + response = self.client.post(url) + self.assertEqual(response.status_code, 404) + + def test_enroll_reject_user_in_deactivated_course(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_deactive_course.id, + }) + response = self.client.post(url) + self.assertEqual(response.status_code, 302) + def test_toggle_course_status_get(self): self.client.login( username=self.user1.username, @@ -3216,6 +3338,124 @@ class TestCourseDetail(TestCase): self.assertIn("Per Module Progress", data) +class TestCourseStudents(TestCase): + def setUp(self): + self.client = Client() + self.mod_group = Group.objects.create(name='moderator') + + # Create Moderator with profile + self.user1_plaintext_pass = 'demo1' + self.user1 = User.objects.create_user( + username='demo_user1', + password=self.user1_plaintext_pass, + first_name='user1_first_name', + last_name='user1_last_name', + email='demo@test.com' + ) + + Profile.objects.create( + user=self.user1, + roll_number=10, + institute='IIT', + department='Chemical', + position='Moderator', + timezone='UTC', + is_moderator=True + ) + + self.student_plaintext_pass = 'demo_student' + self.student = User.objects.create_user( + username='demo_student', + password=self.student_plaintext_pass, + first_name='student_first_name', + last_name='student_last_name', + email='demo_student@test.com' + ) + self.student1_plaintext_pass = 'demo_student' + self.student1 = User.objects.create_user( + username='demo_student1', + password=self.student1_plaintext_pass, + first_name='student1_first_name', + last_name='student1_last_name', + email='demo_student1@test.com' + ) + + self.student2_plaintext_pass = 'demo_student' + self.student2 = User.objects.create_user( + username='demo_student2', + password=self.student2_plaintext_pass, + first_name='student2_first_name', + last_name='student2_last_name', + email='demo_student2@test.com' + ) + + # Add to moderator group + self.mod_group.user_set.add(self.user1) + + self.user1_course = Course.objects.create( + name="Python Course", + enrollment="Enroll Request", creator=self.user1 + ) + + # self.course.students.add(self.student) + self.user1_course.enroll(False, self.student) + self.user1_course.reject(False, self.student1) + self.user1_course.request(self.student2) + + def test_enrolled_users(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:course_students', kwargs={ + 'course_id': self.user1_course.id + }) + response = self.client.get(url) + enrolled_users = self.user1_course.get_enrolled() + self.assertTrue(enrolled_users.exists()) + + def test_requested_users(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:course_students', kwargs={ + 'course_id': self.user1_course.id + }) + response = self.client.get(url) + requested_users = self.user1_course.get_requests() + self.assertTrue(requested_users.exists()) + + def test_rejected_users(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:course_students', kwargs={ + 'course_id': self.user1_course.id + }) + response = self.client.get(url) + rejected_users = self.user1_course.get_rejected() + self.assertTrue(rejected_users.exists()) + + def test_course_students_context(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:course_students', kwargs={ + 'course_id': self.user1_course.id + }) + response = self.client.get(url) + self.assertTrue('enrolled_users' in response.context) + self.assertTrue('requested_users' in response.context) + self.assertTrue('rejected_users' in response.context) + + + def tearDown(self): + pass + + class TestEnrollRequest(TestCase): def setUp(self): self.client = Client() -- cgit From b36ea2af46cbf50aa7a046aa35d0c5c1543e6623 Mon Sep 17 00:00:00 2001 From: CruiseDevice Date: Sat, 9 May 2020 16:42:14 +0530 Subject: Add missing tests. --- yaksh/test_views.py | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 4 deletions(-) (limited to 'yaksh/test_views.py') diff --git a/yaksh/test_views.py b/yaksh/test_views.py index 5b873b5..555f933 100644 --- a/yaksh/test_views.py +++ b/yaksh/test_views.py @@ -2632,16 +2632,19 @@ class TestCourseDetail(TestCase): name="Python Course", enrollment="Enroll Request", creator=self.user1 ) + self.user1_othercourse = Course.objects.create( name="Python Course II", enrollment="Enroll Request", creator=self.user1 ) + self.user1_deactive_course = Course.objects.create( name="Python Course II", enrollment="Enroll Request", creator=self.user1, - active=False + end_enroll_time=timezone.now() ) + self.learning_module = LearningModule.objects.create( name="test module", description="test description module", html_data="test html description module", creator=self.user1, @@ -3099,7 +3102,7 @@ class TestCourseDetail(TestCase): response = self.client.post(url) self.assertEqual(response.status_code, 404) - def test_enroll_user_in_deactivated_course(self): + def test_enroll_user_in_expired_course(self): self.client.login( username=self.user1.username, password=self.user1_plaintext_pass @@ -3111,6 +3114,18 @@ class TestCourseDetail(TestCase): response = self.client.post(url) self.assertEqual(response.status_code, 302) + def test_enroll_user_where_moderator_is_neither_creator_nor_teacher(self): + self.client.login( + username=self.user2.username, + password=self.user2_plaintext_pass + ) + url = reverse('yaksh:enroll_user', kwargs={ + 'course_id': self.user1_course.id, + 'user_id': self.user1.id + }) + response = self.client.post(url) + self.assertEqual(response.status_code, 404) + def test_reject_user_not_moderator(self): self.client.login( username=self.student.username, @@ -3123,6 +3138,18 @@ class TestCourseDetail(TestCase): response = self.client.post(url) self.assertEqual(response.status_code, 404) + def test_reject_user_where_moderator_is_neither_creator_nor_teacher(self): + self.client.login( + username=self.user2.username, + password=self.user2_plaintext_pass + ) + url = reverse('yaksh:reject_user', kwargs={ + 'course_id': self.user1_course.id, + 'user_id': self.user1.id + }) + response = self.client.post(url) + self.assertEqual(response.status_code, 404) + def test_enroll_reject_user_not_moderator(self): self.client.login( username=self.student.username, @@ -3145,6 +3172,17 @@ class TestCourseDetail(TestCase): response = self.client.post(url) self.assertEqual(response.status_code, 302) + def test_enroll_reject_user_where_moderator_is_neither_creator_nor_teacher(self): + self.client.login( + username=self.user2.username, + password=self.user2_plaintext_pass + ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_course.id, + }) + response = self.client.post(url) + self.assertEqual(response.status_code, 404) + def test_toggle_course_status_get(self): self.client.login( username=self.user1.username, @@ -3363,6 +3401,25 @@ class TestCourseStudents(TestCase): is_moderator=True ) + self.user2_plaintext_pass = 'demo2' + self.user2 = User.objects.create_user( + username='demo_user2', + password=self.user2_plaintext_pass, + first_name='user2_first_name', + last_name='user2_last_name', + email='demo2@test.com' + ) + + Profile.objects.create( + user=self.user2, + roll_number=10, + institute='IIT', + department='Aeronautical', + position='Moderator', + timezone='UTC', + is_moderator=True + ) + self.student_plaintext_pass = 'demo_student' self.student = User.objects.create_user( username='demo_student', @@ -3391,13 +3448,13 @@ class TestCourseStudents(TestCase): # Add to moderator group self.mod_group.user_set.add(self.user1) + self.mod_group.user_set.add(self.user2) self.user1_course = Course.objects.create( name="Python Course", enrollment="Enroll Request", creator=self.user1 ) - # self.course.students.add(self.student) self.user1_course.enroll(False, self.student) self.user1_course.reject(False, self.student1) self.user1_course.request(self.student2) @@ -3451,9 +3508,25 @@ class TestCourseStudents(TestCase): self.assertTrue('requested_users' in response.context) self.assertTrue('rejected_users' in response.context) + def test_course_students_where_moderator_is_neither_creator_nor_teacher( + self): + self.client.login( + username=self.user2.username, + password=self.user2_plaintext_pass + ) + url = reverse('yaksh:course_students', kwargs={ + 'course_id': self.user1_course.id, + }) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) def tearDown(self): - pass + self.user1.delete() + self.user2.delete() + self.student.delete() + self.student1.delete() + self.student2.delete() + self.user1_course.delete() class TestEnrollRequest(TestCase): -- cgit From 9a8330b74c9ee0ddf8720a7326a699ba32922575 Mon Sep 17 00:00:00 2001 From: CruiseDevice Date: Sat, 9 May 2020 17:42:01 +0530 Subject: Fix pep8 - cover missing tests. --- yaksh/test_views.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'yaksh/test_views.py') diff --git a/yaksh/test_views.py b/yaksh/test_views.py index 555f933..583aaa9 100644 --- a/yaksh/test_views.py +++ b/yaksh/test_views.py @@ -3172,7 +3172,8 @@ class TestCourseDetail(TestCase): response = self.client.post(url) self.assertEqual(response.status_code, 302) - def test_enroll_reject_user_where_moderator_is_neither_creator_nor_teacher(self): + def test_enroll_reject_user_where_moderator_is_neither_creator_nor_teacher( + self): self.client.login( username=self.user2.username, password=self.user2_plaintext_pass @@ -3183,6 +3184,17 @@ class TestCourseDetail(TestCase): response = self.client.post(url) self.assertEqual(response.status_code, 404) + def test_get_enroll_reject_user_view(self): + self.client.login( + username=self.user1.username, + password=self.user1_plaintext_pass + ) + url = reverse('yaksh:enroll_reject_user', kwargs={ + 'course_id': self.user1_course.id, + }) + response = self.client.get(url) + self.assertEqual(response.status_code, 302) + def test_toggle_course_status_get(self): self.client.login( username=self.user1.username, -- cgit From 99980a9523c6c8403328e68e78566e315bbf4c5e Mon Sep 17 00:00:00 2001 From: CruiseDevice Date: Sat, 9 May 2020 18:09:59 +0530 Subject: Fix tests --- yaksh/test_views.py | 2 -- 1 file changed, 2 deletions(-) (limited to 'yaksh/test_views.py') diff --git a/yaksh/test_views.py b/yaksh/test_views.py index 583aaa9..b2e62af 100644 --- a/yaksh/test_views.py +++ b/yaksh/test_views.py @@ -3005,7 +3005,6 @@ class TestCourseDetail(TestCase): }) data = { 'check': self.student1.id, - 'enroll': '' } response = self.client.post(url, data) self.assertEqual(response.status_code, 302) @@ -3034,7 +3033,6 @@ class TestCourseDetail(TestCase): }) data = { 'check': self.student1.id, - 'reject': '' } response = self.client.post(url, data) self.assertEqual(response.status_code, 302) -- cgit From bb21bbe9a38a9d3fc129716525514189ffc4bb7f Mon Sep 17 00:00:00 2001 From: CruiseDevice Date: Sat, 9 May 2020 18:21:54 +0530 Subject: Add more tests for course_students view --- yaksh/test_views.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'yaksh/test_views.py') diff --git a/yaksh/test_views.py b/yaksh/test_views.py index b2e62af..be0f7a3 100644 --- a/yaksh/test_views.py +++ b/yaksh/test_views.py @@ -3530,6 +3530,17 @@ class TestCourseStudents(TestCase): response = self.client.get(url) self.assertEqual(response.status_code, 404) + def test_course_students_where_user_is_not_moderator(self): + self.client.login( + username=self.student1, + password=self.student1_plaintext_pass + ) + url = reverse('yaksh:course_students', kwargs={ + 'course_id': self.user1_course.id, + }) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + def tearDown(self): self.user1.delete() self.user2.delete() -- cgit