diff --git a/mayan/apps/common/tests/test_views.py b/mayan/apps/common/tests/test_views.py index e9f115f4da..ba16aaf1f1 100644 --- a/mayan/apps/common/tests/test_views.py +++ b/mayan/apps/common/tests/test_views.py @@ -92,6 +92,9 @@ class GenericViewTestCase(BaseTestCase): def login_user(self): self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + def logout(self): + self.client.logout() + def post(self, viewname, *args, **kwargs): data = kwargs.pop('data', {}) follow = kwargs.pop('follow', False) diff --git a/mayan/apps/user_management/tests/test_views.py b/mayan/apps/user_management/tests/test_views.py index ff931c096a..20ac6d1a65 100644 --- a/mayan/apps/user_management/tests/test_views.py +++ b/mayan/apps/user_management/tests/test_views.py @@ -25,18 +25,22 @@ TEST_USER_TO_DELETE_USERNAME = 'user_to_delete' class UserManagementViewTestCase(GenericViewTestCase): - def test_user_set_password_view_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + def setUp(self): + super(UserManagementViewTestCase, self).setUp() + self.login_user() - self.role.permissions.add(permission_user_view.stored_permission) - - response = self.post( + def _set_password(self, password): + return self.post( 'user_management:user_set_password', args=(self.user.pk,), data={ - 'new_password_1': TEST_USER_PASSWORD_EDITED, - 'new_password_2': TEST_USER_PASSWORD_EDITED + 'new_password_1': password, 'new_password_2': password } ) + def test_user_set_password_view_no_permissions(self): + self.grant(permission=permission_user_view) + + response = self._set_password(password=TEST_USER_PASSWORD_EDITED) + self.assertEqual(response.status_code, 403) self.client.logout() @@ -49,19 +53,12 @@ class UserManagementViewTestCase(GenericViewTestCase): self.assertEqual(response.status_code, 302) def test_user_set_password_view_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.grant(permission=permission_user_edit) + self.grant(permission=permission_user_view) - self.role.permissions.add(permission_user_edit.stored_permission) - self.role.permissions.add(permission_user_view.stored_permission) + response = self._set_password(password=TEST_USER_PASSWORD_EDITED) - response = self.post( - 'user_management:user_set_password', args=(self.user.pk,), data={ - 'new_password_1': TEST_USER_PASSWORD_EDITED, - 'new_password_2': TEST_USER_PASSWORD_EDITED - }, follow=True - ) - - self.assertContains(response, text='Successfull', status_code=200) + self.assertEqual(response.status_code, 302) self.client.logout() self.client.login( @@ -71,22 +68,25 @@ class UserManagementViewTestCase(GenericViewTestCase): self.assertEqual(response.status_code, 200) - def test_user_multiple_set_password_view_no_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - - self.role.permissions.add(permission_user_view.stored_permission) - - response = self.post( + def _multiple_user_set_password(self, password): + return self.post( 'user_management:user_multiple_set_password', data={ 'id_list': self.user.pk, 'new_password_1': TEST_USER_PASSWORD_EDITED, 'new_password_2': TEST_USER_PASSWORD_EDITED - } + }, follow=True + ) + + def test_user_multiple_set_password_view_no_permissions(self): + self.grant(permission=permission_user_view) + + response = self._multiple_user_set_password( + password=TEST_USER_PASSWORD_EDITED ) self.assertEqual(response.status_code, 403) - self.client.logout() + self.logout() self.client.login( username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD_EDITED ) @@ -96,23 +96,17 @@ class UserManagementViewTestCase(GenericViewTestCase): self.assertEqual(response.status_code, 302) def test_user_multiple_set_password_view_with_permissions(self): - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + self.grant(permission=permission_user_edit) + self.grant(permission=permission_user_view) - self.role.permissions.add(permission_user_edit.stored_permission) - self.role.permissions.add(permission_user_view.stored_permission) - - response = self.post( - 'user_management:user_multiple_set_password', data={ - 'id_list': self.user.pk, - 'new_password_1': TEST_USER_PASSWORD_EDITED, - 'new_password_2': TEST_USER_PASSWORD_EDITED - }, follow=True + response = self._multiple_user_set_password( + password=TEST_USER_PASSWORD_EDITED ) - self.assertContains(response, text='Successfull', status_code=200) + self.assertEqual(response.status_code, 200) - self.client.logout() - self.client.login( + self.logout() + self.login( username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD_EDITED ) response = self.get('common:current_user_details') @@ -124,9 +118,7 @@ class UserManagementViewTestCase(GenericViewTestCase): username=TEST_USER_TO_DELETE_USERNAME ) - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - - self.role.permissions.add(permission_user_view.stored_permission) + self.grant(permission=permission_user_view) response = self.post( 'user_management:user_delete', args=(user.pk,) @@ -140,10 +132,8 @@ class UserManagementViewTestCase(GenericViewTestCase): username=TEST_USER_TO_DELETE_USERNAME ) - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - - self.role.permissions.add(permission_user_delete.stored_permission) - self.role.permissions.add(permission_user_view.stored_permission) + self.grant(permission=permission_user_delete) + self.grant(permission=permission_user_view) response = self.post( 'user_management:user_delete', args=(user.pk,), follow=True @@ -157,9 +147,7 @@ class UserManagementViewTestCase(GenericViewTestCase): username=TEST_USER_TO_DELETE_USERNAME ) - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - - self.role.permissions.add(permission_user_view.stored_permission) + self.grant(permission=permission_user_view) response = self.post( 'user_management:user_multiple_delete', data={ @@ -175,10 +163,8 @@ class UserManagementViewTestCase(GenericViewTestCase): username=TEST_USER_TO_DELETE_USERNAME ) - self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) - - self.role.permissions.add(permission_user_delete.stored_permission) - self.role.permissions.add(permission_user_view.stored_permission) + self.grant(permission=permission_user_delete) + self.grant(permission=permission_user_view) response = self.post( 'user_management:user_multiple_delete', data={