-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Fixes #ISSUE_11995] GNIP 99: Implement a CRUD REST API for users (#1…
…2072) * [Fixes #11995 Implement POST and PATCH methods for the User API (#12011) * [Fixes #11995] Implement POST and PATCH methods for the User API * Upgrare Remote Docker for CircleCI * [Fixes #11995] Implement POST and PATCH methods for the User API, refactored validation in serializer --------- Co-authored-by: RegisSinjari <[email protected]> Co-authored-by: Giovanni Allegri <[email protected]> * [Fixes #11995] Implement the DELETE method for the User API (#12028) * [Fixes #11995] Implement the DELETE method for the User API * [Fixes #11995] Implement the DELETE method for the User API refactor and docstrings added * [Fixes #11995] Implement endpoint to transfer resources (#12067) * [Fixes #11995] Implement endpoint to transfer ownership * [Issue 11995] Implement endpoint to unregister as a project manager (#12066) * [FIXES #11995] Implement endpoint to unregister as a project manager * [FIXES #11995] Implement endpoint to unregister as a project managergroup.group_id * [FIXES #11995] Implement endpoint to unregister as a project manager,tests added * [Fixes #11995] black reformatting * [Fixes #11995] GNIP 99: Implement a CRUD REST API for users * [Fixes #11995] GNIP 99: Implement a CRUD REST API for users * Update views.py --------- Co-authored-by: RegisSinjari <[email protected]> Co-authored-by: Giovanni Allegri <[email protected]>
- Loading branch information
1 parent
5187f70
commit 9e39774
Showing
7 changed files
with
1,014 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -388,9 +388,7 @@ def test_register_users(self): | |
Ensure users are created with default groups. | ||
""" | ||
url = reverse("users-list") | ||
user_data = { | ||
"username": "new_user", | ||
} | ||
user_data = {"username": "new_user", "password": "@!2XJSL_S&V^0nt", "email": "[email protected]"} | ||
self.assertTrue(self.client.login(username="admin", password="admin")) | ||
response = self.client.post(url, data=user_data, format="json") | ||
self.assertEqual(response.status_code, 201) | ||
|
@@ -419,7 +417,7 @@ def test_update_user_profile(self): | |
username="user_test_delete", email="[email protected]", password="user" | ||
) | ||
url = reverse("users-detail", kwargs={"pk": user.pk}) | ||
data = {"first_name": "user"} | ||
data = {"first_name": "user", "password": "@!2XJSL_S&V^0nt", "email": "[email protected]"} | ||
# Anonymous | ||
response = self.client.patch(url, data=data, format="json") | ||
self.assertEqual(response.status_code, 403) | ||
|
@@ -430,14 +428,15 @@ def test_update_user_profile(self): | |
# User self profile | ||
self.assertTrue(self.client.login(username="user_test_delete", password="user")) | ||
response = self.client.patch(url, data=data, format="json") | ||
self.assertEqual(response.status_code, 403) | ||
self.assertEqual(response.status_code, 200) | ||
# Group manager | ||
group = GroupProfile.objects.create(slug="test_group_manager", title="test_group_manager") | ||
group.join(user) | ||
group.join(get_user_model().objects.get(username="norman"), role="manager") | ||
self.assertTrue(self.client.login(username="norman", password="norman")) | ||
response = self.client.post(url, data=data, format="json") | ||
self.assertEqual(response.status_code, 403) | ||
# malformed url on post | ||
self.assertEqual(response.status_code, 405) | ||
# Admin can edit user | ||
self.assertTrue(self.client.login(username="admin", password="admin")) | ||
response = self.client.patch(url, data={"first_name": "user_admin"}, format="json") | ||
|
@@ -466,14 +465,20 @@ def test_delete_user_profile(self): | |
self.assertTrue(self.client.login(username="bobby", password="bob")) | ||
response = self.client.delete(url, format="json") | ||
self.assertEqual(response.status_code, 403) | ||
# User can not delete self profile | ||
# User can delete self profile | ||
self.assertTrue(self.client.login(username="user_test_delete", password="user")) | ||
response = self.client.delete(url, format="json") | ||
self.assertEqual(response.status_code, 403) | ||
self.assertEqual(response.status_code, 200) | ||
self.assertEqual(get_user_model().objects.filter(username="user_test_delete").first(), None) | ||
# recreate user that was deleted | ||
user = get_user_model().objects.create_user( | ||
username="user_test_delete", email="[email protected]", password="user" | ||
) | ||
url = reverse("users-detail", kwargs={"pk": user.pk}) | ||
# Admin can delete user | ||
self.assertTrue(self.client.login(username="admin", password="admin")) | ||
response = self.client.delete(url, format="json") | ||
self.assertEqual(response.status_code, 204) | ||
self.assertEqual(response.status_code, 200) | ||
finally: | ||
user.delete() | ||
|
||
|
Oops, something went wrong.