Skip to content
Snippets Groups Projects
Commit 2dce507f authored by Tanner Prestegard's avatar Tanner Prestegard Committed by GraceDB
Browse files

Fixing some alerts unit tests

parent 7a1d1c16
No related branches found
No related tags found
No related merge requests found
......@@ -9,23 +9,23 @@ from alerts.models import Contact, Notification
class TestIndexView(GraceDbTestBase):
"""Test user access to main userprofile index page"""
"""Test user access to main alerts index page"""
def test_internal_user_get(self):
"""Internal user can get to index view"""
url = reverse('userprofile-home')
url = reverse('alerts:index')
response = self.request_as_user(url, "GET", self.internal_user)
self.assertEqual(response.status_code, 200)
def test_lvem_user_get(self):
"""LV-EM user can get to index view"""
url = reverse('userprofile-home')
url = reverse('alerts:index')
response = self.request_as_user(url, "GET", self.lvem_user)
self.assertEqual(response.status_code, 200)
def test_public_user_get(self):
"""Public user can get to index view"""
url = reverse('userprofile-home')
url = reverse('alerts:index')
response = self.request_as_user(url, "GET")
# Should be redirected to login page
self.assertEqual(response.status_code, 302)
......@@ -36,19 +36,19 @@ class TestManagePasswordView(GraceDbTestBase):
def test_internal_user_get(self):
"""Internal user *can't* get to manage password page"""
url = reverse('userprofile-manage-password')
url = reverse('alerts:manage-password')
response = self.request_as_user(url, "GET", self.internal_user)
self.assertEqual(response.status_code, 403)
def test_lvem_user_get(self):
"""LV-EM user can get to manage password page"""
url = reverse('userprofile-manage-password')
url = reverse('alerts:manage-password')
response = self.request_as_user(url, "GET", self.lvem_user)
self.assertEqual(response.status_code, 200)
def test_public_user_get(self):
"""Public user can't get to manage password page"""
url = reverse('userprofile-manage-password')
url = reverse('alerts:manage-password')
response = self.request_as_user(url, "GET")
self.assertEqual(response.status_code, 403)
......@@ -58,25 +58,25 @@ class TestContactCreationView(GraceDbTestBase):
def test_internal_user_get(self):
"""Internal user can get contact creation view"""
url = reverse('userprofile-create-contact')
url = reverse('alerts:create-contact')
response = self.request_as_user(url, "GET", self.internal_user)
self.assertEqual(response.status_code, 200)
def test_lvem_user_get(self):
"""LV-EM user can't get contact creation view"""
url = reverse('userprofile-create-contact')
url = reverse('alerts:create-contact')
response = self.request_as_user(url, "GET", self.lvem_user)
self.assertEqual(response.status_code, 403)
def test_public_user_get(self):
"""Public user can't get contact creation view"""
url = reverse('userprofile-create-contact')
url = reverse('alerts:create-contact')
response = self.request_as_user(url, "GET")
self.assertEqual(response.status_code, 403)
# Prevent test emails from going out
@mock.patch('userprofile.views.EmailMessage')
@mock.patch('alerts.views.EmailMessage')
class TestContactTestView(GraceDbTestBase):
"""Test user access to contact testing view"""
......@@ -86,26 +86,26 @@ class TestContactTestView(GraceDbTestBase):
# Create a contact
cls.contact = Contact.objects.create(user=cls.internal_user,
desc='test contact', email='test@test.com')
description='test contact', email='test@test.com')
def test_internal_user_test(self, mock_email_message):
"""Internal user can test contacts"""
url = reverse('userprofile-test-contact', args=[self.contact.id])
url = reverse('alerts:test-contact', args=[self.contact.id])
response = self.request_as_user(url, "GET", self.internal_user)
# Expect 302 since we are redirected to userprofile index page
# Expect 302 since we are redirected to alerts index page
# after the test
self.assertEqual(response.status_code, 302)
self.assertEqual(response.url, reverse('userprofile-home'))
self.assertEqual(response.url, reverse('alerts:index'))
def test_lvem_user_test(self, mock_email_message):
"""LV-EM user can't test contacts"""
url = reverse('userprofile-create-contact')
url = reverse('alerts:create-contact')
response = self.request_as_user(url, "GET", self.lvem_user)
self.assertEqual(response.status_code, 403)
def test_public_user_test(self, mock_email_message):
"""Public user can't test contacts"""
url = reverse('userprofile-create-contact')
url = reverse('alerts:create-contact')
response = self.request_as_user(url, "GET")
self.assertEqual(response.status_code, 403)
......@@ -119,46 +119,44 @@ class TestContactDeleteView(GraceDbTestBase):
# Create a contact
cls.contact = Contact.objects.create(user=cls.internal_user,
desc='test contact', email='test@test.com')
description='test contact', email='test@test.com')
# Create another contact
cls.other_contact = Contact.objects.create(user=cls.lvem_user,
desc='test contact', email='test@test.com')
description='test contact', email='test@test.com')
def test_internal_user_delete(self):
"""Internal user can delete their contacts"""
url = reverse('userprofile-delete-contact', args=[self.contact.id])
url = reverse('alerts:delete-contact', args=[self.contact.id])
response = self.request_as_user(url, "GET", self.internal_user)
# Expect 302 since we are redirected to userprofile index page
# Expect 302 since we are redirected to alerts index page
# after the contact is deleted
self.assertEqual(response.status_code, 302)
self.assertEqual(response.url, reverse('userprofile-home'))
self.assertEqual(response.url, reverse('alerts:index'))
# Assert that contact is deleted
with self.assertRaises(self.contact.DoesNotExist):
self.contact.refresh_from_db()
def test_internal_user_delete_other(self):
"""Internal user can't delete other users' contacts"""
url = reverse('userprofile-delete-contact',
url = reverse('alerts:delete-contact',
args=[self.other_contact.id])
response = self.request_as_user(url, "GET", self.internal_user)
self.assertEqual(response.status_code, 403)
self.assertEqual(response.content,
"You are not authorized to modify another user's Contacts.")
self.assertEqual(response.status_code, 404)
def test_lvem_user_get(self):
"""LV-EM user can't delete contacts"""
# Even if an LV-EM user somehow ended up with a contact
# (see self.other_contact), they can't delete it.
for c in Contact.objects.all():
url = reverse('userprofile-delete-contact', args=[c.id])
url = reverse('alerts:delete-contact', args=[c.id])
response = self.request_as_user(url, "GET", self.lvem_user)
self.assertEqual(response.status_code, 403)
def test_public_user_get(self):
"""Public user can't delete contacts"""
for c in Contact.objects.all():
url = reverse('userprofile-delete-contact', args=[c.id])
url = reverse('alerts:delete-contact', args=[c.id])
response = self.request_as_user(url, "GET", self.lvem_user)
self.assertEqual(response.status_code, 403)
......@@ -168,20 +166,21 @@ class TestNotificationCreateView(GraceDbTestBase):
def test_internal_user_get(self):
"""Internal user can get notification creation view"""
url = reverse('userprofile-create')
url = reverse('alerts:create-notification')
response = self.request_as_user(url, "GET", self.internal_user)
self.assertEqual(response.status_code, 200)
def test_lvem_user_get(self):
"""LV-EM user can't get notification creation view"""
url = reverse('userprofile-create')
url = reverse('alerts:create-notification')
response = self.request_as_user(url, "GET", self.lvem_user)
self.assertEqual(response.status_code, 403)
def test_public_user_get(self):
"""Public user can't get notification creation view"""
url = reverse('userprofile-create')
url = reverse('alerts:create-notification')
response = self.request_as_user(url, "GET")
# User should be redirected to login view
self.assertEqual(response.status_code, 403)
......@@ -194,51 +193,50 @@ class TestNotificationDeleteView(GraceDbTestBase):
# Create a contact and a notification
cls.contact = Contact.objects.create(user=cls.internal_user,
desc='test contact', email='test@test.com')
description='test contact', email='test@test.com')
cls.notification = Notification.objects.create(user=cls.internal_user)
cls.notification.contacts.add(cls.contact)
# Create another contact and notification
# We use lvem_user as the user account just so it can be used for
# testing deletion of another user's contacts. But in reality, an
# LV-EM user should never have a contact or notification
cls.other_contact = Contact.objects.create(user=cls.lvem_user,
desc='test contact', email='test@test.com')
cls.other_notification = Notification.objects.create(user=cls.lvem_user)
description='test contact', email='test@test.com')
cls.other_notification = Notification.objects.create(
user=cls.lvem_user)
cls.other_notification.contacts.add(cls.other_contact)
def test_internal_user_delete(self):
"""Internal user can delete their notifications"""
url = reverse('userprofile-delete', args=[self.notification.id])
url = reverse('alerts:delete-notification',
args=[self.notification.id])
response = self.request_as_user(url, "GET", self.internal_user)
# Expect 302 since we are redirected to userprofile index page
# Expect 302 since we are redirected to alerts index page
# after the notification is deleted
self.assertEqual(response.status_code, 302)
self.assertEqual(response.url, reverse('userprofile-home'))
self.assertEqual(response.url, reverse('alerts:index'))
# Assert that contact is deleted
with self.assertRaises(self.notification.DoesNotExist):
self.notification.refresh_from_db()
def test_internal_user_delete_other(self):
"""Internal user can't delete other users' notifications"""
url = reverse('userprofile-delete', args=[self.other_notification.id])
url = reverse('alerts:delete-notification',
args=[self.other_notification.id])
response = self.request_as_user(url, "GET", self.internal_user)
# Expect 302 since we are redirected to userprofile index page
# after the notification is deleted
self.assertEqual(response.status_code, 403)
self.assertEqual(response.content,
"You are not allowed to modify another user's notifications.")
self.assertEqual(response.status_code, 404)
def test_lvem_user_delete(self):
"""LV-EM user can't delete notifications"""
for t in Notification.objects.all():
url = reverse('userprofile-delete', args=[t.id])
url = reverse('alerts:delete-notification', args=[t.id])
response = self.request_as_user(url, "GET", self.lvem_user)
self.assertEqual(response.status_code, 403)
def test_public_user_delete(self):
"""Public user can't get delete notifications"""
"""Public user can't delete notifications"""
for t in Notification.objects.all():
url = reverse('userprofile-delete', args=[t.id])
url = reverse('alerts:delete-notification', args=[t.id])
response = self.request_as_user(url, "GET")
self.assertEqual(response.status_code, 403)
url = reverse('userprofile-create')
response = self.request_as_user(url, "GET")
self.assertEqual(response.status_code, 403)
......@@ -51,6 +51,7 @@ class TestUpdateContactView(GraceDbTestBase):
'key_field': 'phone',
'description': 'new description',
'phone': '23456789012',
'phone_method': Contact.CONTACT_PHONE_CALL,
}
original_phone = self.phone_contact.phone
url = reverse('alerts:edit-contact', args=[self.phone_contact.pk])
......@@ -60,7 +61,9 @@ class TestUpdateContactView(GraceDbTestBase):
# Refresh from database
self.phone_contact.refresh_from_db()
# Check values - description should be updated, but phone should not be
# Check values - description and method should be updated, but phone
# number should not be
self.assertEqual(self.phone_contact.description, data['description'])
self.assertNotEqual(self.phone_contact.phone, data['phone'])
self.assertEqual(self.phone_contact.phone, original_phone)
self.assertEqual(self.phone_contact.phone_method, data['phone_method'])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment