Skip to content

Commit 50be3f2

Browse files
[#464] Create new tests
1 parent bf92e2a commit 50be3f2

File tree

1 file changed

+46
-9
lines changed

1 file changed

+46
-9
lines changed

src/objects/tests/admin/test_core_views.py

+46-9
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,69 @@
11
from django.urls import reverse
22

3+
import requests_mock
34
from django_webtest import WebTest
45
from maykin_2fa.test import disable_admin_mfa
56

67
from objects.accounts.tests.factories import UserFactory
8+
from objects.token.tests.factories import ObjectTypeFactory
9+
10+
from ..utils import mock_objecttype, mock_objecttype_version, mock_service_oas_get
711

812

913
@disable_admin_mfa()
14+
@requests_mock.Mocker()
1015
class ObjectTypeAdminVersionsTests(WebTest):
1116

12-
def test_authentication_view(self):
17+
def test_valid_response_view(self, m):
18+
objecttypes_api = "https://example.com/objecttypes/v1/"
19+
object_type = ObjectTypeFactory.create(service__api_root=objecttypes_api)
20+
mock_service_oas_get(m, objecttypes_api, "objecttypes")
21+
m.get(f"{objecttypes_api}objecttypes", json=[])
22+
m.get(object_type.url, json=mock_objecttype(object_type.url))
23+
version = mock_objecttype_version(object_type.url, attrs={"jsonSchema": {}})
24+
m.get(
25+
f"{object_type.url}/versions",
26+
json={
27+
"count": 1,
28+
"next": None,
29+
"previous": None,
30+
"results": [version],
31+
},
32+
)
33+
34+
user = UserFactory.create(is_staff=True, is_superuser=True)
35+
36+
# object_type exist
37+
url = reverse("admin:objecttype_versions", args=[object_type.pk])
38+
response = self.app.get(url, user=user)
39+
self.assertEqual(response.status_code, 200)
40+
self.assertEqual(len(response.json), 1)
41+
42+
# object_type does not exist
43+
url = reverse("admin:objecttype_versions", args=[100])
44+
response = self.app.get(url, user=user)
45+
self.assertEqual(response.status_code, 200)
46+
self.assertEqual(len(response.json), 0)
47+
48+
def test_endpoint_unreachable(self, m):
49+
user = UserFactory.create(is_staff=True, is_superuser=True)
50+
object_type = ObjectTypeFactory.create()
51+
url = reverse("admin:objecttype_versions", args=[object_type.pk])
52+
53+
with self.assertRaises(requests_mock.exceptions.NoMockAddress):
54+
self.app.get(url, user=user)
55+
56+
def test_invalid_authentication_view(self, m):
1357
url = reverse("admin:objecttype_versions", args=[1])
1458
response = self.client.get(url)
1559
redirect_url = f"{reverse('admin:login')}?next={url}"
1660
self.assertRedirects(response, redirect_url, status_code=302)
1761

18-
def test_permission_view(self):
62+
def test_invalid_permission_view(self, m):
1963
user = UserFactory.create(is_staff=False, is_superuser=False)
2064
url = reverse("admin:objecttype_versions", args=[1])
2165
response = self.app.get(url, user=user, auto_follow=True)
2266
self.assertContains(
2367
response,
2468
f"You are authenticated as {user.username}, but are not authorized to access this page",
2569
)
26-
27-
user.is_staff = True
28-
user.save()
29-
30-
url = reverse("admin:objecttype_versions", args=[1])
31-
response = self.app.get(url, user=user)
32-
self.assertEqual(response.json, [])

0 commit comments

Comments
 (0)