-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feature/464 permission admin view slow (#508)
* [#464] Limited data_choices in admin view * [#464] Fix js * [#464] Fix tests * [#464] Add new control message * Revert "[#464] Add new control message" This reverts commit 59cca54. * [#464] Fix tests * [#464] Create endpoint objecttype versions_view + js call * [#464] Fix tests * [#464] Formatting code * [#464] Improve JS * [#464] Use url as internal * [#464] Create auth tests * [#464] Use pagination_helper * [#464] Improve js * [#464] Create new tests * [#464] Change initial state * [#464] Changes in tests
- Loading branch information
1 parent
dc7c0ee
commit 014cfe2
Showing
8 changed files
with
159 additions
and
62 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
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 |
---|---|---|
@@ -0,0 +1,72 @@ | ||
from django.urls import reverse | ||
|
||
import requests_mock | ||
from django_webtest import WebTest | ||
from maykin_2fa.test import disable_admin_mfa | ||
from requests.exceptions import HTTPError | ||
|
||
from objects.accounts.tests.factories import UserFactory | ||
from objects.token.tests.factories import ObjectTypeFactory | ||
|
||
from ..utils import mock_objecttype, mock_objecttype_version, mock_service_oas_get | ||
|
||
|
||
@disable_admin_mfa() | ||
@requests_mock.Mocker() | ||
class ObjectTypeAdminVersionsTests(WebTest): | ||
|
||
def test_valid_response_view(self, m): | ||
objecttypes_api = "https://example.com/objecttypes/v1/" | ||
object_type = ObjectTypeFactory.create(service__api_root=objecttypes_api) | ||
mock_service_oas_get(m, objecttypes_api, "objecttypes") | ||
m.get(f"{objecttypes_api}objecttypes", json=[]) | ||
m.get(object_type.url, json=mock_objecttype(object_type.url)) | ||
version = mock_objecttype_version(object_type.url, attrs={"jsonSchema": {}}) | ||
m.get( | ||
object_type.versions_url, | ||
json={ | ||
"count": 1, | ||
"next": None, | ||
"previous": None, | ||
"results": [version], | ||
}, | ||
) | ||
|
||
user = UserFactory.create(is_staff=True, is_superuser=True) | ||
|
||
# object_type exist | ||
url = reverse("admin:objecttype_versions", args=[object_type.pk]) | ||
response = self.app.get(url, user=user) | ||
self.assertEqual(response.status_code, 200) | ||
self.assertEqual(len(response.json), 1) | ||
|
||
# object_type does not exist | ||
url = reverse("admin:objecttype_versions", args=[object_type.pk + 1]) | ||
response = self.app.get(url, user=user) | ||
self.assertEqual(response.status_code, 200) | ||
self.assertEqual(response.json, []) | ||
|
||
def test_endpoint_unreachable(self, m): | ||
user = UserFactory.create(is_staff=True, is_superuser=True) | ||
object_type = ObjectTypeFactory.create() | ||
m.get(object_type.versions_url, exc=HTTPError) | ||
|
||
url = reverse("admin:objecttype_versions", args=[object_type.pk]) | ||
response = self.app.get(url, user=user) | ||
self.assertEqual(response.status_code, 200) | ||
self.assertEqual(response.json, []) | ||
|
||
def test_invalid_authentication_view(self, m): | ||
url = reverse("admin:objecttype_versions", args=[1]) | ||
response = self.client.get(url) | ||
redirect_url = f"{reverse('admin:login')}?next={url}" | ||
self.assertRedirects(response, redirect_url, status_code=302) | ||
|
||
def test_invalid_permission_view(self, m): | ||
user = UserFactory.create(is_staff=False, is_superuser=False) | ||
url = reverse("admin:objecttype_versions", args=[1]) | ||
response = self.app.get(url, user=user, auto_follow=True) | ||
self.assertContains( | ||
response, | ||
f"You are authenticated as {user.username}, but are not authorized to access this page", | ||
) |
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