diff --git a/mayan/apps/user_management/tests/literals.py b/mayan/apps/user_management/tests/literals.py index bc25327f10..dcff243e64 100644 --- a/mayan/apps/user_management/tests/literals.py +++ b/mayan/apps/user_management/tests/literals.py @@ -2,15 +2,16 @@ from __future__ import unicode_literals __all__ = ( 'TEST_ADMIN_EMAIL', 'TEST_ADMIN_PASSWORD', 'TEST_ADMIN_USERNAME', - 'TEST_GROUP', 'TEST_USER_EMAIL', 'TEST_USER_PASSWORD', - 'TEST_USER_PASSWORD_EDITED', 'TEST_USER_USERNAME' + 'TEST_GROUP_NAME', 'TEST_GROUP_NAME_EDITED', 'TEST_USER_EMAIL', + 'TEST_USER_PASSWORD', 'TEST_USER_PASSWORD_EDITED', 'TEST_USER_USERNAME' ) TEST_ADMIN_EMAIL = 'admin@example.com' TEST_ADMIN_PASSWORD = 'test admin password' TEST_ADMIN_USERNAME = 'test_admin' -TEST_GROUP = 'test group' +TEST_GROUP_NAME = 'test group' +TEST_GROUP_NAME_EDITED = 'test group edited' TEST_USER_EMAIL = 'user@example.com' TEST_USER_PASSWORD = 'test user password' TEST_USER_PASSWORD_EDITED = 'test user password edited' diff --git a/mayan/apps/user_management/tests/test_api.py b/mayan/apps/user_management/tests/test_api.py index e5eb2b561c..122902b3f1 100644 --- a/mayan/apps/user_management/tests/test_api.py +++ b/mayan/apps/user_management/tests/test_api.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals from django.contrib.auth import get_user_model - +from django.contrib.auth.models import Group from django.core.urlresolvers import reverse from rest_framework.test import APITestCase @@ -11,14 +11,14 @@ from ..tests.literals import ( ) from .literals import ( - TEST_USER_EMAIL, TEST_USER_PASSWORD, TEST_USER_USERNAME, - TEST_USER_USERNAME_EDITED + TEST_GROUP_NAME, TEST_GROUP_NAME_EDITED, TEST_USER_EMAIL, + TEST_USER_PASSWORD, TEST_USER_USERNAME, TEST_USER_USERNAME_EDITED ) -class UserManagementAPITestCase(APITestCase): +class UserManagementUserAPITestCase(APITestCase): """ - Test the document type API endpoints + Test the user API endpoints """ def setUp(self): @@ -47,24 +47,6 @@ class UserManagementAPITestCase(APITestCase): user = get_user_model().objects.get(pk=response.data['id']) self.assertEqual(user.username, TEST_USER_USERNAME) - def test_user_create_login(self): - response = self.client.post( - reverse('rest_api:user-list'), data={ - 'email': TEST_USER_EMAIL, 'password': TEST_USER_PASSWORD, - 'username': TEST_USER_USERNAME, - } - ) - - self.assertEqual(response.status_code, 201) - - get_user_model().objects.get(pk=response.data['id']) - - self.assertTrue( - self.client.login( - username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD - ) - ) - def test_user_edit_via_put(self): user = get_user_model().objects.create_user( email=TEST_USER_EMAIL, password=TEST_USER_PASSWORD, @@ -81,7 +63,7 @@ class UserManagementAPITestCase(APITestCase): user.refresh_from_db() self.assertEqual(user.username, TEST_USER_USERNAME_EDITED) - def test_document_type_edit_via_patch(self): + def test_user_edit_via_patch(self): user = get_user_model().objects.create_user( email=TEST_USER_EMAIL, password=TEST_USER_PASSWORD, username=TEST_USER_USERNAME @@ -97,7 +79,7 @@ class UserManagementAPITestCase(APITestCase): user.refresh_from_db() self.assertEqual(user.username, TEST_USER_USERNAME_EDITED) - def test_document_type_delete(self): + def test_user_delete(self): user = get_user_model().objects.create_user( email=TEST_USER_EMAIL, password=TEST_USER_PASSWORD, username=TEST_USER_USERNAME @@ -111,3 +93,100 @@ class UserManagementAPITestCase(APITestCase): with self.assertRaises(get_user_model().DoesNotExist): get_user_model().objects.get(pk=user.pk) + + def test_user_group_list(self): + group = Group.objects.create(name=TEST_GROUP_NAME) + user = get_user_model().objects.create_user( + email=TEST_USER_EMAIL, password=TEST_USER_PASSWORD, + username=TEST_USER_USERNAME + ) + user.groups.add(group) + + response = self.client.get( + reverse('rest_api:users-group-list', args=(user.pk,)) + ) + + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json()['results'][0]['name'], TEST_GROUP_NAME) + + def test_user_group_add(self): + group = Group.objects.create(name=TEST_GROUP_NAME) + user = get_user_model().objects.create_user( + email=TEST_USER_EMAIL, password=TEST_USER_PASSWORD, + username=TEST_USER_USERNAME + ) + + response = self.client.post( + reverse( + 'rest_api:users-group-list', args=(user.pk,) + ), data={ + 'group_pk_list': '{}'.format(group.pk) + } + ) + + self.assertEqual(response.status_code, 201) + self.assertEqual(group.user_set.first(), user) + + +class UserManagementGroupAPITestCase(APITestCase): + """ + Test the groups API endpoints + """ + + def setUp(self): + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + def tearDown(self): + get_user_model().objects.all().delete() + + def test_group_create(self): + response = self.client.post( + reverse('rest_api:group-list'), data={'name': TEST_GROUP_NAME} + ) + + self.assertEqual(response.status_code, 201) + + group = Group.objects.get(pk=response.data['id']) + self.assertEqual(group.name, TEST_GROUP_NAME) + + def test_group_edit_via_put(self): + group = Group.objects.create(name=TEST_GROUP_NAME) + response = self.client.put( + reverse('rest_api:group-detail', args=(group.pk,)), data={ + 'name': TEST_GROUP_NAME_EDITED + } + ) + + self.assertEqual(response.status_code, 200) + + group.refresh_from_db() + self.assertEqual(group.name, TEST_GROUP_NAME_EDITED) + + def test_group_edit_via_patch(self): + group = Group.objects.create(name=TEST_GROUP_NAME) + response = self.client.patch( + reverse('rest_api:group-detail', args=(group.pk,)), data={ + 'name': TEST_GROUP_NAME_EDITED + } + ) + + self.assertEqual(response.status_code, 200) + + group.refresh_from_db() + self.assertEqual(group.name, TEST_GROUP_NAME_EDITED) + + def test_group_delete(self): + group = Group.objects.create(name=TEST_GROUP_NAME) + response = self.client.delete( + reverse('rest_api:group-detail', args=(group.pk,)) + ) + + self.assertEqual(response.status_code, 204) + self.assertEqual(Group.objects.count(), 0)