From fbf5fea5f397478be36963c9a78b969f43d9bb64 Mon Sep 17 00:00:00 2001
From: Carlos Vega <carlos.vega@uni.lu>
Date: Thu, 22 Nov 2018 11:27:12 +0100
Subject: [PATCH] refactor as Piotr proposed

---
 smash/web/tests/__init__.py                | 12 ++++++++
 smash/web/tests/view/test_configuration.py |  6 ++--
 smash/web/tests/view/test_worker.py        | 36 ++++++++--------------
 3 files changed, 26 insertions(+), 28 deletions(-)

diff --git a/smash/web/tests/__init__.py b/smash/web/tests/__init__.py
index 38eb48f3..67b9ebed 100644
--- a/smash/web/tests/__init__.py
+++ b/smash/web/tests/__init__.py
@@ -32,6 +32,18 @@ class LoggedInTestCase(TestCase):
             username=username, email='jacob@bla', password=password)
         self.client.login(username=username, password=password)
 
+    def login_as_staff():
+        self.client.logout()
+        self.client.login(username='staff', password=self.password) 
+
+    def login_as_admin():
+        self.client.logout()
+        self.client.login(username='admin', password=self.password) 
+
+    def login_as_super():
+        self.client.logout()
+        self.client.login(username='super', password=self.password) 
+
 
 class LoggedInWithWorkerTestCase(LoggedInTestCase):
     def setUp(self):
diff --git a/smash/web/tests/view/test_configuration.py b/smash/web/tests/view/test_configuration.py
index 8ec809ab..49a32739 100644
--- a/smash/web/tests/view/test_configuration.py
+++ b/smash/web/tests/view/test_configuration.py
@@ -7,14 +7,12 @@ logger = logging.getLogger(__name__)
 
 class ConfigurationViewTests(LoggedInTestCase):
     def test_visit_details_request(self):
-    	self.client.logout()
-        self.client.login(username='admin', password=self.password) 
+    	self.login_as_admin()
         response = self.client.get(reverse('web.views.configuration'))
 
         self.assertEqual(response.status_code, 200)
 
     def test_visit_details_request_without_permissions(self):
-    	self.client.logout()
-        self.client.login(username='staff', password=self.password) 
+    	self.login_as_staff()
         response = self.client.get(reverse('web.views.configuration'))
         self.assertEqual(response.status_code, 302)
diff --git a/smash/web/tests/view/test_worker.py b/smash/web/tests/view/test_worker.py
index 352e4ffc..e6be78c7 100644
--- a/smash/web/tests/view/test_worker.py
+++ b/smash/web/tests/view/test_worker.py
@@ -16,8 +16,7 @@ logger = logging.getLogger(__name__)
 
 class WorkerViewTests(LoggedInTestCase):
     def test_render_workers_list_request(self):
-        self.client.logout()
-        self.client.login(username='staff', password=self.password) 
+        self.login_as_staff()
 
         create_worker()
 
@@ -25,8 +24,7 @@ class WorkerViewTests(LoggedInTestCase):
         self.assertEqual(response.status_code, 200)
 
     def test_render_worker_type_request(self):
-        self.client.logout()
-        self.client.login(username='staff', password=self.password) 
+        self.login_as_staff()
 
         create_worker()
 
@@ -38,8 +36,7 @@ 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) 
+        self.login_as_admin()
 
         response = self.client.get(reverse('web.views.worker_add', kwargs={'worker_type': WORKER_STAFF}))
         self.assertEqual(response.status_code, 200)
@@ -49,8 +46,7 @@ class WorkerViewTests(LoggedInTestCase):
         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) 
+        self.login_as_admin()
 
         response = self.client.get(reverse('web.views.worker_add', kwargs={'worker_type': WORKER_VOUCHER_PARTNER}))
         self.assertEqual(response.status_code, 200)
@@ -59,8 +55,7 @@ class WorkerViewTests(LoggedInTestCase):
         self.assertEqual(3, Worker.objects.all().count())
         self.assertEqual(4, User.objects.all().count())
 
-        self.client.logout()
-        self.client.login(username='admin', password=self.password)
+        self.login_as_admin()
 
         language = create_language()
         location = create_location()
@@ -115,8 +110,7 @@ class WorkerViewTests(LoggedInTestCase):
         return form_data
 
     def test_render_edit_worker_request(self):
-        self.client.logout()
-        self.client.login(username='admin', password=self.password) 
+        self.login_as_admin()
         worker = create_worker()
 
         form_data = self.get_form_data(worker)
@@ -130,35 +124,30 @@ class WorkerViewTests(LoggedInTestCase):
         self.assertEqual(updated_worker.last_name, form_data["last_name"])
 
     def test_edit_worker_superuser(self):
-        self.client.logout()
-        self.client.login(username='super', password=self.password)
+        self.login_as_super()
 
         response = self.client.get(reverse('web.views.worker_edit', args=[self.super_worker.id]))
         self.assertEqual(response.status_code, 200)
 
     def test_edit_worker_without_permissions(self):
-        self.client.logout()
-        self.client.login(username='staff', password=self.password) 
+        self.login_as_staff()
 
         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) 
+        self.login_as_admin()
 
         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)
+        self.login_as_admin()
         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):
-        self.client.logout()
-        self.client.login(username='admin', password=self.password)
+        self.login_as_admin()
 
         availability = create_availability(self.admin_worker)
 
@@ -166,8 +155,7 @@ class WorkerViewTests(LoggedInTestCase):
         self.assertEqual(response.status_code, 200)
 
     def test_render_add_holiday_request(self):
-        self.client.logout()
-        self.client.login(username='admin', password=self.password)
+        self.login_as_admin()
 
         response = self.client.get(reverse('web.views.worker_holiday_add', args=[self.admin_worker.id]))
         self.assertEqual(response.status_code, 200)
-- 
GitLab