diff --git a/allianceauth/authentication/tests/test_admin.py b/allianceauth/authentication/tests/test_admin.py
index 961ff3c9..4e94434e 100644
--- a/allianceauth/authentication/tests/test_admin.py
+++ b/allianceauth/authentication/tests/test_admin.py
@@ -34,21 +34,20 @@ class MockRequest(object):
class TestUserAdmin(TestCase):
- def setUp(self):
- self.factory = RequestFactory()
- self.modeladmin = UserAdmin(
- model=User, admin_site=AdminSite()
- )
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+
# groups
- self.group_1 = Group.objects.create(
+ cls.group_1 = Group.objects.create(
name='Group 1'
)
- self.group_2 = Group.objects.create(
+ cls.group_2 = Group.objects.create(
name='Group 2'
)
# user 1 - corp and alliance, normal user
- self.character_1 = EveCharacter.objects.create(
+ cls.character_1 = EveCharacter.objects.create(
character_id='1001',
character_name='Bruce Wayne',
corporation_id='2001',
@@ -58,7 +57,7 @@ class TestUserAdmin(TestCase):
alliance_name='Wayne Enterprises',
alliance_ticker='WE',
)
- self.character_1a = EveCharacter.objects.create(
+ cls.character_1a = EveCharacter.objects.create(
character_id='1002',
character_name='Batman',
corporation_id='2001',
@@ -81,27 +80,27 @@ class TestUserAdmin(TestCase):
member_count=42,
alliance=alliance
)
- self.user_1 = User.objects.create_user(
- self.character_1.character_name.replace(' ', '_'),
+ cls.user_1 = User.objects.create_user(
+ cls.character_1.character_name.replace(' ', '_'),
'abc@example.com',
'password'
)
CharacterOwnership.objects.create(
- character=self.character_1,
- owner_hash='x1' + self.character_1.character_name,
- user=self.user_1
+ character=cls.character_1,
+ owner_hash='x1' + cls.character_1.character_name,
+ user=cls.user_1
)
CharacterOwnership.objects.create(
- character=self.character_1a,
- owner_hash='x1' + self.character_1a.character_name,
- user=self.user_1
+ character=cls.character_1a,
+ owner_hash='x1' + cls.character_1a.character_name,
+ user=cls.user_1
)
- self.user_1.profile.main_character = self.character_1
- self.user_1.profile.save()
- self.user_1.groups.add(self.group_1)
+ cls.user_1.profile.main_character = cls.character_1
+ cls.user_1.profile.save()
+ cls.user_1.groups.add(cls.group_1)
# user 2 - corp only, staff
- self.character_2 = EveCharacter.objects.create(
+ cls.character_2 = EveCharacter.objects.create(
character_id=1003,
character_name='Clark Kent',
corporation_id=2002,
@@ -116,24 +115,24 @@ class TestUserAdmin(TestCase):
member_count=99,
alliance=None
)
- self.user_2 = User.objects.create_user(
- self.character_2.character_name.replace(' ', '_'),
+ cls.user_2 = User.objects.create_user(
+ cls.character_2.character_name.replace(' ', '_'),
'abc@example.com',
'password'
)
CharacterOwnership.objects.create(
- character=self.character_2,
- owner_hash='x1' + self.character_2.character_name,
- user=self.user_2
+ character=cls.character_2,
+ owner_hash='x1' + cls.character_2.character_name,
+ user=cls.user_2
)
- self.user_2.profile.main_character = self.character_2
- self.user_2.profile.save()
- self.user_2.groups.add(self.group_2)
- self.user_2.is_staff = True
- self.user_2.save()
+ cls.user_2.profile.main_character = cls.character_2
+ cls.user_2.profile.save()
+ cls.user_2.groups.add(cls.group_2)
+ cls.user_2.is_staff = True
+ cls.user_2.save()
# user 3 - no main, no group, superuser
- self.character_3 = EveCharacter.objects.create(
+ cls.character_3 = EveCharacter.objects.create(
character_id=1101,
character_name='Lex Luthor',
corporation_id=2101,
@@ -154,20 +153,27 @@ class TestUserAdmin(TestCase):
alliance_ticker='LWD',
executor_corp_id=''
)
- self.user_3 = User.objects.create_user(
- self.character_3.character_name.replace(' ', '_'),
+ cls.user_3 = User.objects.create_user(
+ cls.character_3.character_name.replace(' ', '_'),
'abc@example.com',
'password'
)
CharacterOwnership.objects.create(
- character=self.character_3,
- owner_hash='x1' + self.character_3.character_name,
- user=self.user_3
+ character=cls.character_3,
+ owner_hash='x1' + cls.character_3.character_name,
+ user=cls.user_3
)
- self.user_3.is_superuser = True
- self.user_3.save()
-
- # create autogroups for corps and alliances
+ cls.user_3.is_superuser = True
+ cls.user_3.save()
+
+ def setUp(self):
+ self.factory = RequestFactory()
+ self.modeladmin = UserAdmin(
+ model=User, admin_site=AdminSite()
+ )
+
+ def _create_autogroups(self):
+ """create autogroups for corps and alliances"""
autogroups_config = AutogroupsConfig(
corp_groups = True,
alliance_groups = True
@@ -175,70 +181,90 @@ class TestUserAdmin(TestCase):
autogroups_config.save()
for state in State.objects.all():
autogroups_config.states.add(state)
- autogroups_config.update_corp_group_membership(self.user_1)
+ autogroups_config.update_corp_group_membership(self.user_1)
# column rendering
- def test_user_profile_pic_1(self):
+ def test_user_profile_pic_u1(self):
expected = ('
')
self.assertEqual(user_profile_pic(self.user_1), expected)
- def test_user_profile_pic_3(self):
+ def test_user_profile_pic_u3(self):
self.assertIsNone(user_profile_pic(self.user_3))
- def test_user_username_1(self):
+ def test_user_username_u1(self):
expected = (
''
'Bruce_Wayne
Bruce Wayne'.format(self.user_1.pk)
)
self.assertEqual(user_username(self.user_1), expected)
- def test_user_username_3(self):
+ def test_user_username_u3(self):
expected = (
''
'Lex_Luthor'.format(self.user_3.pk)
)
self.assertEqual(user_username(self.user_3), expected)
- def test_user_main_organization_1(self):
+ def test_user_main_organization_u1(self):
expected = 'Wayne Technologies
Wayne Enterprises'
self.assertEqual(user_main_organization(self.user_1), expected)
- def test_user_main_organization_2(self):
+ def test_user_main_organization_u2(self):
expected = 'Daily Planet'
self.assertEqual(user_main_organization(self.user_2), expected)
- def test_user_main_organization_3(self):
+ def test_user_main_organization_u3(self):
expected = None
self.assertEqual(user_main_organization(self.user_3), expected)
- def test_characters_1(self):
+ def test_characters_u1(self):
expected = 'Batman, Bruce Wayne'
result = self.modeladmin._characters(self.user_1)
self.assertEqual(result, expected)
- def test_characters_2(self):
+ def test_characters_u2(self):
expected = 'Clark Kent'
result = self.modeladmin._characters(self.user_2)
self.assertEqual(result, expected)
- def test_characters_3(self):
+ def test_characters_u3(self):
expected = 'Lex Luthor'
result = self.modeladmin._characters(self.user_3)
self.assertEqual(result, expected)
-
- def test_groups_1(self):
+
+ def test_groups_u1(self):
+ self._create_autogroups()
expected = 'Group 1'
result = self.modeladmin._groups(self.user_1)
self.assertEqual(result, expected)
- def test_groups_2(self):
+ def test_groups_u2(self):
+ self._create_autogroups()
expected = 'Group 2'
result = self.modeladmin._groups(self.user_2)
self.assertEqual(result, expected)
- def test_groups_3(self):
+ def test_groups_u3(self):
+ self._create_autogroups()
+ result = self.modeladmin._groups(self.user_3)
+ self.assertIsNone(result)
+
+ @patch(MODULE_PATH + '._has_auto_groups', False)
+ def test_groups_u1_no_autogroups(self):
+ expected = 'Group 1'
+ result = self.modeladmin._groups(self.user_1)
+ self.assertEqual(result, expected)
+
+ @patch(MODULE_PATH + '._has_auto_groups', False)
+ def test_groups_u2_no_autogroups(self):
+ expected = 'Group 2'
+ result = self.modeladmin._groups(self.user_2)
+ self.assertEqual(result, expected)
+
+ @patch(MODULE_PATH + '._has_auto_groups', False)
+ def test_groups_u3_no_autogroups(self):
result = self.modeladmin._groups(self.user_3)
self.assertIsNone(result)
@@ -247,17 +273,17 @@ class TestUserAdmin(TestCase):
result = self.modeladmin._state(self.user_1)
self.assertEqual(result, expected)
- def test_role_1(self):
+ def test_role_u1(self):
expected = 'User'
result = self.modeladmin._role(self.user_1)
self.assertEqual(result, expected)
- def test_role_2(self):
+ def test_role_u2(self):
expected = 'Staff'
result = self.modeladmin._role(self.user_2)
self.assertEqual(result, expected)
- def test_role_3(self):
+ def test_role_u3(self):
expected = 'Superuser'
result = self.modeladmin._role(self.user_3)
self.assertEqual(result, expected)
@@ -297,11 +323,40 @@ class TestUserAdmin(TestCase):
# filters
- def test_filter_real_groups(self):
+ def test_filter_real_groups_with_autogroups(self):
class UserAdminTest(BaseUserAdmin):
list_filter = (UserAdmin.RealGroupsFilter,)
+ self._create_autogroups()
+ my_modeladmin = UserAdminTest(User, AdminSite())
+
+ # Make sure the lookups are correct
+ request = self.factory.get('/')
+ request.user = self.user_1
+ changelist = my_modeladmin.get_changelist_instance(request)
+ filters = changelist.get_filters(request)
+ filterspec = filters[0][0]
+ expected = [
+ (self.group_1.pk, self.group_1.name),
+ (self.group_2.pk, self.group_2.name),
+ ]
+ self.assertEqual(filterspec.lookup_choices, expected)
+
+ # Make sure the correct queryset is returned
+ request = self.factory.get('/', {'group_id__exact': self.group_1.pk})
+ request.user = self.user_1
+ changelist = my_modeladmin.get_changelist_instance(request)
+ queryset = changelist.get_queryset(request)
+ expected = User.objects.filter(groups__in=[self.group_1])
+ self.assertSetEqual(set(queryset), set(expected))
+
+ @patch(MODULE_PATH + '._has_auto_groups', False)
+ def test_filter_real_groups_no_autogroups(self):
+
+ class UserAdminTest(BaseUserAdmin):
+ list_filter = (UserAdmin.RealGroupsFilter,)
+
my_modeladmin = UserAdminTest(User, AdminSite())
# Make sure the lookups are correct