123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- import pytest
- from ....acl.models import Role
- from ....test import assert_contains, assert_not_contains
- from ...models import Rank
- from ...test import create_test_user
- @pytest.fixture
- def user_a(db):
- return create_test_user("Tyrael", "test123@test.org")
- @pytest.fixture
- def user_b(db):
- return create_test_user("Tyrion", "test321@gmail.com")
- @pytest.fixture
- def user_c(db):
- return create_test_user("Karen", "other432@gmail.com")
- def test_search_finds_user_by_username(admin_client, users_admin_link, user_a):
- response = admin_client.get("%s&username=Tyrael" % users_admin_link)
- assert_contains(response, user_a.username)
- def test_search_excludes_users_with_different_username(
- admin_client, users_admin_link, user_b, user_c
- ):
- response = admin_client.get("%s&username=Tyrael" % users_admin_link)
- assert_not_contains(response, user_b.username)
- assert_not_contains(response, user_c.username)
- def test_search_finds_users_by_username_start(
- admin_client, users_admin_link, user_a, user_b
- ):
- response = admin_client.get("%s&username=Tyr*" % users_admin_link)
- assert_contains(response, user_a.username)
- assert_contains(response, user_b.username)
- def test_search_by_username_start_excludes_users_with_different_username(
- admin_client, users_admin_link, user_c
- ):
- response = admin_client.get("%s&username=Tyr*" % users_admin_link)
- assert_not_contains(response, user_c.username)
- def test_search_finds_user_by_username_end(admin_client, users_admin_link, user_a):
- response = admin_client.get("%s&username=*ael" % users_admin_link)
- assert_contains(response, user_a.username)
- def test_search_by_username_end_excludes_users_with_different_username(
- admin_client, users_admin_link, user_b, user_c
- ):
- response = admin_client.get("%s&username=*ael" % users_admin_link)
- assert_not_contains(response, user_b.username)
- assert_not_contains(response, user_c.username)
- def test_search_finds_users_by_username_content(
- admin_client, users_admin_link, user_a, user_b
- ):
- response = admin_client.get("%s&username=*yr*" % users_admin_link)
- assert_contains(response, user_a.username)
- assert_contains(response, user_b.username)
- def test_search_by_username_content_excludes_users_with_different_username(
- admin_client, users_admin_link, user_c
- ):
- response = admin_client.get("%s&username=*yr*" % users_admin_link)
- assert_not_contains(response, user_c.username)
- def test_search_finds_user_by_email(admin_client, users_admin_link, user_a):
- response = admin_client.get("%s&email=test123@test.org" % users_admin_link)
- assert_contains(response, user_a.email)
- def test_search_excludes_users_with_different_email(
- admin_client, users_admin_link, user_b, user_c
- ):
- response = admin_client.get("%s&email=test123@test.org" % users_admin_link)
- assert_not_contains(response, user_b.email)
- assert_not_contains(response, user_c.email)
- def test_search_finds_users_by_email_start(
- admin_client, users_admin_link, user_a, user_b
- ):
- response = admin_client.get("%s&email=test*" % users_admin_link)
- assert_contains(response, user_a.email)
- assert_contains(response, user_b.email)
- def test_search_by_email_start_excludes_users_with_different_email(
- admin_client, users_admin_link, user_c
- ):
- response = admin_client.get("%s&email=test*" % users_admin_link)
- assert_not_contains(response, user_c.email)
- def test_search_finds_user_by_email_end(admin_client, users_admin_link, user_a):
- response = admin_client.get("%s&email=*org" % users_admin_link)
- assert_contains(response, user_a.email)
- def test_search_by_email_end_excludes_users_with_different_email(
- admin_client, users_admin_link, user_b, user_c
- ):
- response = admin_client.get("%s&email=*org" % users_admin_link)
- assert_not_contains(response, user_b.email)
- assert_not_contains(response, user_c.email)
- def test_search_finds_users_by_email_content(
- admin_client, users_admin_link, user_b, user_c
- ):
- response = admin_client.get("%s&email=*@gmail*" % users_admin_link)
- assert_contains(response, user_b.email)
- assert_contains(response, user_c.email)
- def test_search_by_email_content_excludes_users_with_different_email(
- admin_client, users_admin_link, user_a
- ):
- response = admin_client.get("%s&email=*@gmail*" % users_admin_link)
- assert_not_contains(response, user_a.email)
- @pytest.fixture
- def rank(db):
- return Rank.objects.create(name="Test Rank")
- def test_search_finds_user_with_rank(admin_client, users_admin_link, rank):
- user = create_test_user("UserWithRank", "rank@example.org", rank=rank)
- response = admin_client.get("%s&rank=%s" % (users_admin_link, rank.pk))
- assert_contains(response, user.username)
- def test_staff_users_search_excludes_user_without_rank(
- admin_client, users_admin_link, rank
- ):
- user = create_test_user("RegularUser", "regular@example.org")
- response = admin_client.get("%s&rank=%s" % (users_admin_link, rank.pk))
- assert_not_contains(response, user.username)
- @pytest.fixture
- def role(db):
- return Role.objects.create(name="Test Role")
- def test_search_finds_user_with_role(admin_client, users_admin_link, role):
- user = create_test_user("UserWithRole", "role@example.org")
- user.roles.add(role)
- response = admin_client.get("%s&role=%s" % (users_admin_link, role.pk))
- assert_contains(response, user.username)
- def test_staff_users_search_excludes_user_without_role(
- admin_client, users_admin_link, role
- ):
- user = create_test_user("RegularUser", "regular@example.org")
- response = admin_client.get("%s&role=%s" % (users_admin_link, role.pk))
- assert_not_contains(response, user.username)
- def test_search_finds_inactive_user(admin_client, users_admin_link):
- user = create_test_user(
- "InactiveUser", "inactive@example.org", requires_activation=1
- )
- response = admin_client.get("%s&is_inactive=1" % users_admin_link)
- assert_contains(response, user.username)
- def test_inactive_users_search_excludes_activated_users(admin_client, users_admin_link):
- user = create_test_user(
- "ActivatedUser", "activated@example.org", requires_activation=0
- )
- response = admin_client.get("%s&is_inactive=1" % users_admin_link)
- assert_not_contains(response, user.username)
- def test_search_finds_disabled_user(admin_client, users_admin_link):
- user = create_test_user("DisabledUser", "disabled@example.org", is_active=False)
- response = admin_client.get("%s&is_disabled=1" % users_admin_link)
- assert_contains(response, user.username)
- def test_disabled_users_search_excludes_active_users(admin_client, users_admin_link):
- user = create_test_user("ActiveUser", "active@example.org", is_active=True)
- response = admin_client.get("%s&is_disabled=1" % users_admin_link)
- assert_not_contains(response, user.username)
- def test_search_finds_staff_user(admin_client, users_admin_link):
- user = create_test_user("StaffUser", "staff@example.org", is_staff=True)
- response = admin_client.get("%s&is_staff=1" % users_admin_link)
- assert_contains(response, user.username)
- def test_staff_users_search_excludes_non_staff_users(admin_client, users_admin_link):
- user = create_test_user("RegularUser", "non_staff@example.org", is_staff=False)
- response = admin_client.get("%s&is_staff=1" % users_admin_link)
- assert_not_contains(response, user.username)
- def test_search_finds_user_deleting_account(admin_client, users_admin_link):
- user = create_test_user(
- "DeletingUser", "deleting@example.org", is_deleting_account=True
- )
- response = admin_client.get("%s&is_deleting_account=1" % users_admin_link)
- assert_contains(response, user.username)
- def test_staff_users_search_excludes_non_deleting_users(admin_client, users_admin_link):
- user = create_test_user(
- "RegularUser", "regular@example.org", is_deleting_account=False
- )
- response = admin_client.get("%s&is_deleting_account=1" % users_admin_link)
- assert_not_contains(response, user.username)
|