Initial commit
This commit is contained in:
13
env/lib/python3.10/site-packages/wagtail/users/tests/__init__.py
vendored
Normal file
13
env/lib/python3.10/site-packages/wagtail/users/tests/__init__.py
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
from .test_admin_views import (
|
||||
CustomGroupViewSet,
|
||||
CustomUserCreationForm,
|
||||
CustomUserEditForm,
|
||||
CustomUserViewSet,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"CustomGroupViewSet",
|
||||
"CustomUserViewSet",
|
||||
"CustomUserCreationForm",
|
||||
"CustomUserEditForm",
|
||||
]
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/users/tests/__pycache__/__init__.cpython-310.pyc
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/users/tests/__pycache__/__init__.cpython-310.pyc
vendored
Normal file
Binary file not shown.
BIN
env/lib/python3.10/site-packages/wagtail/users/tests/__pycache__/test_admin_views.cpython-310.pyc
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/users/tests/__pycache__/test_admin_views.cpython-310.pyc
vendored
Normal file
Binary file not shown.
3044
env/lib/python3.10/site-packages/wagtail/users/tests/test_admin_views.py
vendored
Normal file
3044
env/lib/python3.10/site-packages/wagtail/users/tests/test_admin_views.py
vendored
Normal file
File diff suppressed because it is too large
Load Diff
0
env/lib/python3.10/site-packages/wagtail/users/tests/test_bulk_actions/__init__.py
vendored
Normal file
0
env/lib/python3.10/site-packages/wagtail/users/tests/test_bulk_actions/__init__.py
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
109
env/lib/python3.10/site-packages/wagtail/users/tests/test_bulk_actions/test_bulk_assign_role.py
vendored
Normal file
109
env/lib/python3.10/site-packages/wagtail/users/tests/test_bulk_actions/test_bulk_assign_role.py
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
|
||||
from wagtail.test.utils import WagtailTestUtils
|
||||
from wagtail.users.views.bulk_actions.user_bulk_action import UserBulkAction
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class TestUserToggleActivityView(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
# create a set of test users
|
||||
self.test_users = [
|
||||
self.create_user(
|
||||
username=f"testuser-{i}",
|
||||
email=f"testuser{i}@email.com",
|
||||
password=f"password-{i}",
|
||||
)
|
||||
for i in range(1, 6)
|
||||
]
|
||||
self.new_group = Group.objects.create(name="group")
|
||||
self.current_user = self.login()
|
||||
self.url = (
|
||||
reverse(
|
||||
"wagtail_bulk_action",
|
||||
args=(
|
||||
User._meta.app_label,
|
||||
User._meta.model_name,
|
||||
"assign_role",
|
||||
),
|
||||
)
|
||||
+ "?"
|
||||
)
|
||||
self.self_toggle_url = self.url + f"id={self.current_user.pk}"
|
||||
for user in self.test_users:
|
||||
self.url += f"id={user.pk}&"
|
||||
self.post_data = {"role": self.new_group.pk}
|
||||
|
||||
def test_simple(self):
|
||||
response = self.client.get(self.url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(
|
||||
response, "wagtailusers/bulk_actions/confirm_bulk_assign_role.html"
|
||||
)
|
||||
|
||||
def test_bulk_toggle(self):
|
||||
response = self.client.post(self.url, self.post_data)
|
||||
|
||||
# Should redirect back to index
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
# Check that the users were added to the new group
|
||||
for user in self.test_users:
|
||||
self.assertTrue(
|
||||
User.objects.get(email=user.email)
|
||||
.groups.filter(name=self.new_group)
|
||||
.exists()
|
||||
)
|
||||
|
||||
def test_before_toggle_user_hook_post(self):
|
||||
def hook_func(request, action_type, users, action_class_instance):
|
||||
self.assertEqual(action_type, "assign_role")
|
||||
self.assertIsInstance(request, HttpRequest)
|
||||
self.assertIsInstance(action_class_instance, UserBulkAction)
|
||||
self.assertCountEqual(
|
||||
[user.pk for user in self.test_users], [user.pk for user in users]
|
||||
)
|
||||
|
||||
return HttpResponse("Overridden!")
|
||||
|
||||
with self.register_hook("before_bulk_action", hook_func):
|
||||
response = self.client.post(self.url, self.post_data)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.content, b"Overridden!")
|
||||
|
||||
for user in self.test_users:
|
||||
self.assertFalse(
|
||||
User.objects.get(email=user.email)
|
||||
.groups.filter(name=self.new_group)
|
||||
.exists()
|
||||
)
|
||||
|
||||
def test_after_toggle_user_hook(self):
|
||||
def hook_func(request, action_type, users, action_class_instance):
|
||||
self.assertEqual(action_type, "assign_role")
|
||||
self.assertIsInstance(request, HttpRequest)
|
||||
self.assertIsInstance(action_class_instance, UserBulkAction)
|
||||
self.assertCountEqual(
|
||||
[user.pk for user in self.test_users], [user.pk for user in users]
|
||||
)
|
||||
|
||||
return HttpResponse("Overridden!")
|
||||
|
||||
with self.register_hook("after_bulk_action", hook_func):
|
||||
response = self.client.post(self.url, self.post_data)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.content, b"Overridden!")
|
||||
|
||||
for user in self.test_users:
|
||||
self.assertTrue(
|
||||
User.objects.get(email=user.email)
|
||||
.groups.filter(name=self.new_group)
|
||||
.exists()
|
||||
)
|
||||
144
env/lib/python3.10/site-packages/wagtail/users/tests/test_bulk_actions/test_bulk_delete.py
vendored
Normal file
144
env/lib/python3.10/site-packages/wagtail/users/tests/test_bulk_actions/test_bulk_delete.py
vendored
Normal file
@@ -0,0 +1,144 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
|
||||
from wagtail.test.utils import WagtailTestUtils
|
||||
from wagtail.users.views.bulk_actions.user_bulk_action import UserBulkAction
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class TestUserDeleteView(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
# create a set of test users
|
||||
self.test_users = [
|
||||
self.create_user(
|
||||
username=f"testuser-{i}",
|
||||
email=f"testuser{i}@email.com",
|
||||
password=f"password-{i}",
|
||||
)
|
||||
for i in range(1, 6)
|
||||
]
|
||||
# also create a superuser to delete
|
||||
self.superuser = self.create_superuser(
|
||||
username="testsuperuser",
|
||||
email="testsuperuser@email.com",
|
||||
password="password",
|
||||
)
|
||||
self.current_user = self.login()
|
||||
self.url = (
|
||||
reverse(
|
||||
"wagtail_bulk_action",
|
||||
args=(
|
||||
User._meta.app_label,
|
||||
User._meta.model_name,
|
||||
"delete",
|
||||
),
|
||||
)
|
||||
+ "?"
|
||||
)
|
||||
for user in self.test_users:
|
||||
self.url += f"id={user.pk}&"
|
||||
|
||||
self.self_delete_url = self.url + f"id={self.current_user.pk}"
|
||||
self.superuser_delete_url = self.url + f"id={self.superuser.pk}"
|
||||
|
||||
def test_simple(self):
|
||||
response = self.client.get(self.url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(
|
||||
response, "wagtailusers/bulk_actions/confirm_bulk_delete.html"
|
||||
)
|
||||
|
||||
def test_user_permissions_required(self):
|
||||
# Log in with a user that doesn't have permission to delete users
|
||||
user = self.create_user(username="editor", password="password")
|
||||
admin_permission = Permission.objects.get(
|
||||
content_type__app_label="wagtailadmin", codename="access_admin"
|
||||
)
|
||||
user.user_permissions.add(admin_permission)
|
||||
self.login(username="editor", password="password")
|
||||
|
||||
response = self.client.get(self.url)
|
||||
self.assertRedirects(response, "/admin/")
|
||||
|
||||
def test_bulk_delete(self):
|
||||
response = self.client.post(self.url)
|
||||
|
||||
# Should redirect back to index
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
# Check that the users were deleted
|
||||
for user in self.test_users:
|
||||
self.assertFalse(User.objects.filter(email=user.email).exists())
|
||||
|
||||
def test_user_cannot_delete_self(self):
|
||||
response = self.client.get(self.self_delete_url)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
html = response.content.decode()
|
||||
self.assertInHTML("<p>You don't have permission to delete this user</p>", html)
|
||||
|
||||
needle = "<ul>"
|
||||
needle += f"<li>{self.current_user.email}</li>"
|
||||
needle += "</ul>"
|
||||
self.assertInHTML(needle, html)
|
||||
|
||||
self.client.post(self.self_delete_url)
|
||||
|
||||
# Check user was not deleted
|
||||
self.assertTrue(User.objects.filter(pk=self.current_user.pk).exists())
|
||||
|
||||
def test_user_can_delete_other_superuser(self):
|
||||
response = self.client.get(self.superuser_delete_url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(
|
||||
response, "wagtailusers/bulk_actions/confirm_bulk_delete.html"
|
||||
)
|
||||
|
||||
response = self.client.post(self.superuser_delete_url)
|
||||
# Should redirect back to index
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
# Check that the user was deleted
|
||||
users = User.objects.filter(email=self.superuser.email)
|
||||
self.assertEqual(users.count(), 0)
|
||||
|
||||
def test_before_delete_user_hook_post(self):
|
||||
def hook_func(request, action_type, users, action_class_instance):
|
||||
self.assertEqual(action_type, "delete")
|
||||
self.assertIsInstance(request, HttpRequest)
|
||||
self.assertIsInstance(action_class_instance, UserBulkAction)
|
||||
self.assertCountEqual(
|
||||
[user.pk for user in self.test_users], [user.pk for user in users]
|
||||
)
|
||||
|
||||
return HttpResponse("Overridden!")
|
||||
|
||||
with self.register_hook("before_bulk_action", hook_func):
|
||||
response = self.client.post(self.url)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.content, b"Overridden!")
|
||||
|
||||
for user in self.test_users:
|
||||
self.assertTrue(User.objects.filter(email=user.email).exists())
|
||||
|
||||
def test_after_delete_user_hook(self):
|
||||
def hook_func(request, action_type, users, action_class_instance):
|
||||
self.assertEqual(action_type, "delete")
|
||||
self.assertIsInstance(request, HttpRequest)
|
||||
self.assertIsInstance(action_class_instance, UserBulkAction)
|
||||
|
||||
return HttpResponse("Overridden!")
|
||||
|
||||
with self.register_hook("after_bulk_action", hook_func):
|
||||
response = self.client.post(self.url)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.content, b"Overridden!")
|
||||
|
||||
for user in self.test_users:
|
||||
self.assertFalse(User.objects.filter(email=user.email).exists())
|
||||
111
env/lib/python3.10/site-packages/wagtail/users/tests/test_bulk_actions/test_bulk_set_active_state.py
vendored
Normal file
111
env/lib/python3.10/site-packages/wagtail/users/tests/test_bulk_actions/test_bulk_set_active_state.py
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
|
||||
from wagtail.test.utils import WagtailTestUtils
|
||||
from wagtail.users.views.bulk_actions.user_bulk_action import UserBulkAction
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class TestUserSetActiveStateView(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
# create a set of test users
|
||||
self.test_users = [
|
||||
self.create_user(
|
||||
username=f"testuser-{i}",
|
||||
email=f"testuser{i}@email.com",
|
||||
password=f"password-{i}",
|
||||
)
|
||||
for i in range(1, 6)
|
||||
]
|
||||
for i, user in enumerate(self.test_users):
|
||||
user.is_active = i & 1 # odd numbered users will be active
|
||||
user.save()
|
||||
self.current_user = self.login()
|
||||
self.url = (
|
||||
reverse(
|
||||
"wagtail_bulk_action",
|
||||
args=(
|
||||
User._meta.app_label,
|
||||
User._meta.model_name,
|
||||
"set_active_state",
|
||||
),
|
||||
)
|
||||
+ "?"
|
||||
)
|
||||
self.self_toggle_url = self.url + f"id={self.current_user.pk}"
|
||||
for user in self.test_users:
|
||||
self.url += f"id={user.pk}&"
|
||||
self.make_active_data = {"mark_as_active": True}
|
||||
self.make_inactive_data = {"mark_as_active": False}
|
||||
|
||||
def test_simple(self):
|
||||
response = self.client.get(self.url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(
|
||||
response, "wagtailusers/bulk_actions/confirm_bulk_set_active_state.html"
|
||||
)
|
||||
|
||||
def test_bulk_toggle(self):
|
||||
response = self.client.post(self.url, self.make_active_data)
|
||||
|
||||
# Should redirect back to index
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
# Check that the users were marked as active
|
||||
for user in self.test_users:
|
||||
self.assertTrue(User.objects.get(email=user.email).is_active)
|
||||
|
||||
def test_user_cannot_mark_self_as_inactive(self):
|
||||
response = self.client.get(self.self_toggle_url)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
html = response.content.decode()
|
||||
self.assertInHTML("<p>You cannot change your own active status</p>", html)
|
||||
|
||||
needle = "<ul>"
|
||||
needle += f"<li>{self.current_user.email}</li>"
|
||||
needle += "</ul>"
|
||||
self.assertInHTML(needle, html)
|
||||
|
||||
# Check user was not marked as inactive
|
||||
self.assertTrue(User.objects.get(pk=self.current_user.pk).is_active)
|
||||
|
||||
def test_before_toggle_user_hook_post(self):
|
||||
def hook_func(request, action_type, users, action_class_instance):
|
||||
self.assertEqual(action_type, "set_active_state")
|
||||
self.assertIsInstance(request, HttpRequest)
|
||||
self.assertIsInstance(action_class_instance, UserBulkAction)
|
||||
self.assertCountEqual(
|
||||
[user.pk for user in self.test_users], [user.pk for user in users]
|
||||
)
|
||||
|
||||
return HttpResponse("Overridden!")
|
||||
|
||||
with self.register_hook("before_bulk_action", hook_func):
|
||||
response = self.client.post(self.url, self.make_active_data)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.content, b"Overridden!")
|
||||
|
||||
def test_after_toggle_user_hook(self):
|
||||
def hook_func(request, action_type, users, action_class_instance):
|
||||
self.assertEqual(action_type, "set_active_state")
|
||||
self.assertIsInstance(request, HttpRequest)
|
||||
self.assertIsInstance(action_class_instance, UserBulkAction)
|
||||
self.assertCountEqual(
|
||||
[user.pk for user in self.test_users], [user.pk for user in users]
|
||||
)
|
||||
|
||||
return HttpResponse("Overridden!")
|
||||
|
||||
with self.register_hook("after_bulk_action", hook_func):
|
||||
response = self.client.post(self.url, self.make_active_data)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.content, b"Overridden!")
|
||||
|
||||
for user in self.test_users:
|
||||
self.assertTrue(User.objects.get(email=user.email).is_active)
|
||||
Reference in New Issue
Block a user