Skip to content
Snippets Groups Projects
Commit 8088d783 authored by Carlos Vega's avatar Carlos Vega
Browse files

Issue #31 added tests for permissions

parent 6ca347b1
No related branches found
No related tags found
1 merge request!192Feature/add way to change password and PERMISSIONS
Pipeline #7538 failed
......@@ -7,20 +7,39 @@ from web.forms import WorkerForm
from web.models import Worker
from web.models.worker_study_role import WORKER_STAFF, ROLE_CHOICES_DOCTOR, WORKER_HEALTH_PARTNER, WORKER_VOUCHER_PARTNER
from web.tests import create_worker
from web.tests.functions import create_language, create_location, create_availability, format_form_field
from web.tests.functions import add_permissions_to_worker, create_user, create_language, create_location, create_availability, format_form_field
from .. import LoggedInTestCase
from web.models.constants import GLOBAL_STUDY_ID
logger = logging.getLogger(__name__)
class WorkerViewTests(LoggedInTestCase):
def setUp(self):
self.password = 'abcd1234'
#superuser
self.super_worker = create_worker(user=User.objects.create_superuser(username='super', password=self.password, email='a@mail.com'))
#admin
self.admin_worker = Worker.get_by_user(create_user(username='admin', password=self.password))
add_permissions_to_worker(self.admin_worker, ['change_worker', 'add_worker'])
#staff
self.staff_worker = Worker.get_by_user(create_user(username='staff', password=self.password))
def test_render_workers_list_request(self):
self.client.logout()
self.client.login(username='staff', password=self.password)
create_worker()
response = self.client.get(reverse('web.views.workers'))
self.assertEqual(response.status_code, 200)
def test_render_worker_type_request(self):
self.client.logout()
self.client.login(username='staff', password=self.password)
create_worker()
response = self.client.get(reverse('web.views.workers', kwargs={'worker_type': WORKER_STAFF}))
self.assertEqual(response.status_code, 200)
response = self.client.get(reverse('web.views.workers', kwargs={'worker_type': WORKER_HEALTH_PARTNER}))
......@@ -29,15 +48,28 @@ class WorkerViewTests(LoggedInTestCase):
self.assertEqual(response.status_code, 200)
def test_render_add_worker_request(self):
self.client.logout()
self.client.login(username='admin', password=self.password)
response = self.client.get(reverse('web.views.worker_add', kwargs={'worker_type': WORKER_STAFF}))
self.assertEqual(response.status_code, 200)
def test_render_add_worker_request_without_permissions(self):
response = self.client.get(reverse('web.views.worker_add', kwargs={'worker_type': WORKER_STAFF}))
self.assertEqual(response.status_code, 302)
def test_render_add_worker_request_for_voucher_partner(self):
self.client.logout()
self.client.login(username='admin', password=self.password)
response = self.client.get(reverse('web.views.worker_add', kwargs={'worker_type': WORKER_VOUCHER_PARTNER}))
self.assertEqual(response.status_code, 200)
def test_render_worker_added_request(self):
self.assertEqual(1, User.objects.all().count())
self.assertEqual(3, User.objects.all().count())
self.client.logout()
self.client.login(username='admin', password=self.password)
language = create_language()
location = create_location()
......@@ -49,8 +81,8 @@ class WorkerViewTests(LoggedInTestCase):
self.assertEqual(response.status_code, 302)
self.assertEqual(1, Worker.objects.all().count())
self.assertEqual(2, User.objects.all().count())
self.assertEqual(4, Worker.objects.all().count())
self.assertEqual(4, User.objects.all().count())
def create_add_worker_form_data(self, language, location):
form_data = self.get_form_data(Worker())
......@@ -92,6 +124,8 @@ class WorkerViewTests(LoggedInTestCase):
return form_data
def test_render_edit_worker_request(self):
self.client.logout()
self.client.login(username='admin', password=self.password)
worker = create_worker()
form_data = self.get_form_data(worker)
......@@ -104,27 +138,45 @@ class WorkerViewTests(LoggedInTestCase):
updated_worker = Worker.objects.get(id=worker.id)
self.assertEqual(updated_worker.last_name, form_data["last_name"])
def test_edit_worker(self):
worker = create_worker()
def test_edit_worker_superuser(self):
self.client.logout()
self.client.login(username='super', password=self.password)
response = self.client.get(reverse('web.views.worker_edit', args=[worker.id]))
response = self.client.get(reverse('web.views.worker_edit', args=[self.super_worker.id]))
self.assertEqual(response.status_code, 200)
def test_render_add_availability_request(self):
worker = create_worker()
def test_edit_worker_without_permissions(self):
self.client.logout()
self.client.login(username='staff', password=self.password)
response = self.client.get(reverse('web.views.worker_availability_add', args=[worker.id]))
response = self.client.get(reverse('web.views.worker_edit', args=[self.staff_worker.id]))
self.assertEqual(response.status_code, 302)
def test_edit_worker_with_permissions(self):
self.client.logout()
self.client.login(username='admin', password=self.password)
response = self.client.get(reverse('web.views.worker_edit', args=[self.admin_worker.id]))
self.assertEqual(response.status_code, 200)
def test_render_add_availability_request(self):
self.client.logout()
self.client.login(username='admin', password=self.password)
response = self.client.get(reverse('web.views.worker_availability_add', args=[self.admin_worker.id]))
self.assertEqual(response.status_code, 200)
def test_render_edit_availability_request(self):
worker = create_worker()
availability = create_availability(worker)
self.client.logout()
self.client.login(username='admin', password=self.password)
availability = create_availability(self.admin_worker)
response = self.client.get(reverse('web.views.worker_availability_edit', args=[availability.id]))
self.assertEqual(response.status_code, 200)
def test_render_add_holiday_request(self):
worker = create_worker()
self.client.logout()
self.client.login(username='admin', password=self.password)
response = self.client.get(reverse('web.views.worker_holiday_add', args=[worker.id]))
response = self.client.get(reverse('web.views.worker_holiday_add', args=[self.admin_worker.id]))
self.assertEqual(response.status_code, 200)
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