summaryrefslogtreecommitdiff
path: root/yaksh/test_views.py
diff options
context:
space:
mode:
authorprathamesh2020-08-26 18:51:25 +0530
committerprathamesh2020-08-26 19:08:27 +0530
commit570b141055f9baa27c539842b14756838949ba60 (patch)
tree97afa927cf4b1cf807f085bfc578e4e28fca700b /yaksh/test_views.py
parent3999e744fe1a3a4c4fcb7d2763b36def9d7bb213 (diff)
downloadonline_test-570b141055f9baa27c539842b14756838949ba60.tar.gz
online_test-570b141055f9baa27c539842b14756838949ba60.tar.bz2
online_test-570b141055f9baa27c539842b14756838949ba60.zip
Avoid duplicate user entry with same email address during upload.
Django allows multiple usernames with same email id. Preventing this, as we identify users with their email id or username.
Diffstat (limited to 'yaksh/test_views.py')
-rw-r--r--yaksh/test_views.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/yaksh/test_views.py b/yaksh/test_views.py
index a7ccac2..5876f03 100644
--- a/yaksh/test_views.py
+++ b/yaksh/test_views.py
@@ -2755,6 +2755,33 @@ class TestCourseDetail(TestCase):
id=uploaded_users.first().id).exists()
)
+ def test_upload_existing_user_email(self):
+ # Given
+ self.client.login(
+ username=self.user1.username, password=self.user1_plaintext_pass)
+ csv_file_path = os.path.join(FIXTURES_DIR_PATH,
+ 'user_existing_email.csv')
+ csv_file = open(csv_file_path, 'rb')
+ upload_file = SimpleUploadedFile(csv_file_path, csv_file.read())
+ csv_file.close()
+
+ # When
+ response = self.client.post(
+ reverse('yaksh:upload_users',
+ kwargs={'course_id': self.user1_course.id}),
+ data={'csv_file': upload_file})
+
+ # Then
+ uploaded_users = User.objects.filter(email='demo_student@test.com')
+ self.assertEqual(response.status_code, 302)
+ messages = [m.message for m in get_messages(response.wsgi_request)]
+ self.assertIn('demo_student', messages[0])
+ self.assertTrue(
+ self.user1_course.students.filter(
+ id=uploaded_users.first().id).exists()
+ )
+ self.assertEqual(uploaded_users.count(), 1)
+
def test_upload_users_add_update_reject(self):
# Given
self.client.login(