mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-13 22:40:16 +02:00
Fix issue #1219
This commit is contained in:
parent
01c17d28f6
commit
cfa2cf58f3
@ -1,12 +1,12 @@
|
|||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from django.test import TestCase, RequestFactory
|
from django.conf import settings
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.admin.sites import AdminSite
|
from django.contrib.admin.sites import AdminSite
|
||||||
from django.contrib.auth.models import User as BaseUser, Group
|
from django.contrib.auth.models import User as BaseUser, Group
|
||||||
|
from django.test import TestCase, RequestFactory
|
||||||
|
|
||||||
from allianceauth.authentication.models import CharacterOwnership, State
|
from allianceauth.authentication.models import CharacterOwnership, State
|
||||||
from allianceauth.eveonline.autogroups.models import AutogroupsConfig
|
|
||||||
from allianceauth.eveonline.models import (
|
from allianceauth.eveonline.models import (
|
||||||
EveCharacter, EveCorporationInfo, EveAllianceInfo
|
EveCharacter, EveCorporationInfo, EveAllianceInfo
|
||||||
)
|
)
|
||||||
@ -22,6 +22,11 @@ from ..admin import (
|
|||||||
user_username,
|
user_username,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if 'allianceauth.eveonline.autogroups' in settings.INSTALLED_APPS:
|
||||||
|
_has_auto_groups = True
|
||||||
|
from allianceauth.eveonline.autogroups.models import AutogroupsConfig
|
||||||
|
else:
|
||||||
|
_has_auto_groups = False
|
||||||
|
|
||||||
MODULE_PATH = 'allianceauth.authentication.admin'
|
MODULE_PATH = 'allianceauth.authentication.admin'
|
||||||
|
|
||||||
@ -174,14 +179,15 @@ class TestUserAdmin(TestCase):
|
|||||||
|
|
||||||
def _create_autogroups(self):
|
def _create_autogroups(self):
|
||||||
"""create autogroups for corps and alliances"""
|
"""create autogroups for corps and alliances"""
|
||||||
autogroups_config = AutogroupsConfig(
|
if _has_auto_groups:
|
||||||
corp_groups = True,
|
autogroups_config = AutogroupsConfig(
|
||||||
alliance_groups = True
|
corp_groups = True,
|
||||||
)
|
alliance_groups = True
|
||||||
autogroups_config.save()
|
)
|
||||||
for state in State.objects.all():
|
autogroups_config.save()
|
||||||
autogroups_config.states.add(state)
|
for state in State.objects.all():
|
||||||
autogroups_config.update_corp_group_membership(self.user_1)
|
autogroups_config.states.add(state)
|
||||||
|
autogroups_config.update_corp_group_membership(self.user_1)
|
||||||
|
|
||||||
# column rendering
|
# column rendering
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
from unittest.mock import Mock, patch
|
from unittest.mock import Mock, patch
|
||||||
|
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
|
||||||
from .. import app_settings
|
from .. import app_settings
|
||||||
|
|
||||||
MODULE_PATH = 'allianceauth.authentication'
|
MODULE_PATH = 'allianceauth.authentication'
|
||||||
|
|
||||||
|
|
||||||
class TestSetAppSetting(TestCase):
|
class TestSetAppSetting(TestCase):
|
||||||
|
|
||||||
@patch(MODULE_PATH + '.app_settings.settings')
|
@patch(MODULE_PATH + '.app_settings.settings')
|
||||||
@ -17,7 +17,6 @@ class TestSetAppSetting(TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(result, False)
|
self.assertEqual(result, False)
|
||||||
|
|
||||||
|
|
||||||
@patch(MODULE_PATH + '.app_settings.settings')
|
@patch(MODULE_PATH + '.app_settings.settings')
|
||||||
def test_default_if_not_set_for_none(self, mock_settings):
|
def test_default_if_not_set_for_none(self, mock_settings):
|
||||||
mock_settings.TEST_SETTING_DUMMY = Mock(spec=None)
|
mock_settings.TEST_SETTING_DUMMY = Mock(spec=None)
|
||||||
@ -28,7 +27,6 @@ class TestSetAppSetting(TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(result, None)
|
self.assertEqual(result, None)
|
||||||
|
|
||||||
|
|
||||||
@patch(MODULE_PATH + '.app_settings.settings')
|
@patch(MODULE_PATH + '.app_settings.settings')
|
||||||
def test_true_stays_true(self, mock_settings):
|
def test_true_stays_true(self, mock_settings):
|
||||||
mock_settings.TEST_SETTING_DUMMY = True
|
mock_settings.TEST_SETTING_DUMMY = True
|
||||||
@ -56,7 +54,6 @@ class TestSetAppSetting(TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(result, False)
|
self.assertEqual(result, False)
|
||||||
|
|
||||||
|
|
||||||
@patch(MODULE_PATH + '.app_settings.settings')
|
@patch(MODULE_PATH + '.app_settings.settings')
|
||||||
def test_default_for_invalid_type_int(self, mock_settings):
|
def test_default_for_invalid_type_int(self, mock_settings):
|
||||||
mock_settings.TEST_SETTING_DUMMY = 'invalid type'
|
mock_settings.TEST_SETTING_DUMMY = 'invalid type'
|
||||||
@ -95,7 +92,6 @@ class TestSetAppSetting(TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(result, 50)
|
self.assertEqual(result, 50)
|
||||||
|
|
||||||
|
|
||||||
@patch(MODULE_PATH + '.app_settings.settings')
|
@patch(MODULE_PATH + '.app_settings.settings')
|
||||||
def test_default_is_none_needs_required_type(self, mock_settings):
|
def test_default_is_none_needs_required_type(self, mock_settings):
|
||||||
mock_settings.TEST_SETTING_DUMMY = 'invalid type'
|
mock_settings.TEST_SETTING_DUMMY = 'invalid type'
|
||||||
@ -104,5 +100,3 @@ class TestSetAppSetting(TestCase):
|
|||||||
'TEST_SETTING_DUMMY',
|
'TEST_SETTING_DUMMY',
|
||||||
default_value=None
|
default_value=None
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -103,14 +103,16 @@ class GroupAdmin(admin.ModelAdmin):
|
|||||||
'_member_count',
|
'_member_count',
|
||||||
'has_leader'
|
'has_leader'
|
||||||
)
|
)
|
||||||
list_filter = (
|
list_filter = [
|
||||||
'authgroup__internal',
|
'authgroup__internal',
|
||||||
'authgroup__hidden',
|
'authgroup__hidden',
|
||||||
'authgroup__open',
|
'authgroup__open',
|
||||||
'authgroup__public',
|
'authgroup__public',
|
||||||
IsAutoGroupFilter,
|
]
|
||||||
HasLeaderFilter
|
if _has_auto_groups:
|
||||||
)
|
list_filter.append(IsAutoGroupFilter)
|
||||||
|
list_filter.append(HasLeaderFilter)
|
||||||
|
|
||||||
search_fields = ('name', 'authgroup__description')
|
search_fields = ('name', 'authgroup__description')
|
||||||
|
|
||||||
def get_queryset(self, request):
|
def get_queryset(self, request):
|
||||||
|
@ -1,23 +1,29 @@
|
|||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from django.test import TestCase, RequestFactory
|
from django.conf import settings
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.admin.sites import AdminSite
|
from django.contrib.admin.sites import AdminSite
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from django.test import TestCase, RequestFactory
|
||||||
|
|
||||||
from allianceauth.authentication.models import CharacterOwnership, State
|
from allianceauth.authentication.models import CharacterOwnership, State
|
||||||
from allianceauth.eveonline.autogroups.models import AutogroupsConfig
|
|
||||||
from allianceauth.eveonline.models import (
|
from allianceauth.eveonline.models import (
|
||||||
EveCharacter, EveCorporationInfo, EveAllianceInfo
|
EveCharacter, EveCorporationInfo, EveAllianceInfo
|
||||||
)
|
)
|
||||||
|
|
||||||
from ..admin import (
|
from ..admin import (
|
||||||
IsAutoGroupFilter,
|
|
||||||
HasLeaderFilter,
|
HasLeaderFilter,
|
||||||
GroupAdmin,
|
GroupAdmin,
|
||||||
Group
|
Group
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if 'allianceauth.eveonline.autogroups' in settings.INSTALLED_APPS:
|
||||||
|
_has_auto_groups = True
|
||||||
|
from allianceauth.eveonline.autogroups.models import AutogroupsConfig
|
||||||
|
from ..admin import IsAutoGroupFilter
|
||||||
|
else:
|
||||||
|
_has_auto_groups = False
|
||||||
|
|
||||||
|
|
||||||
MODULE_PATH = 'allianceauth.groupmanagement.admin'
|
MODULE_PATH = 'allianceauth.groupmanagement.admin'
|
||||||
|
|
||||||
@ -210,14 +216,15 @@ class TestGroupAdmin(TestCase):
|
|||||||
|
|
||||||
def _create_autogroups(self):
|
def _create_autogroups(self):
|
||||||
"""create autogroups for corps and alliances"""
|
"""create autogroups for corps and alliances"""
|
||||||
autogroups_config = AutogroupsConfig(
|
if _has_auto_groups:
|
||||||
corp_groups = True,
|
autogroups_config = AutogroupsConfig(
|
||||||
alliance_groups = True
|
corp_groups = True,
|
||||||
)
|
alliance_groups = True
|
||||||
autogroups_config.save()
|
)
|
||||||
for state in State.objects.all():
|
autogroups_config.save()
|
||||||
autogroups_config.states.add(state)
|
for state in State.objects.all():
|
||||||
autogroups_config.update_corp_group_membership(self.user_1)
|
autogroups_config.states.add(state)
|
||||||
|
autogroups_config.update_corp_group_membership(self.user_1)
|
||||||
|
|
||||||
# column rendering
|
# column rendering
|
||||||
|
|
||||||
@ -267,70 +274,72 @@ class TestGroupAdmin(TestCase):
|
|||||||
result = self.modeladmin._properties(self.group_6)
|
result = self.modeladmin._properties(self.group_6)
|
||||||
self.assertListEqual(result, expected)
|
self.assertListEqual(result, expected)
|
||||||
|
|
||||||
@patch(MODULE_PATH + '._has_auto_groups', True)
|
if _has_auto_groups:
|
||||||
def test_properties_6(self):
|
@patch(MODULE_PATH + '._has_auto_groups', True)
|
||||||
self._create_autogroups()
|
def test_properties_6(self):
|
||||||
expected = ['Auto Group']
|
self._create_autogroups()
|
||||||
my_group = Group.objects\
|
expected = ['Auto Group']
|
||||||
.filter(managedcorpgroup__isnull=False)\
|
my_group = Group.objects\
|
||||||
.first()
|
.filter(managedcorpgroup__isnull=False)\
|
||||||
result = self.modeladmin._properties(my_group)
|
.first()
|
||||||
self.assertListEqual(result, expected)
|
result = self.modeladmin._properties(my_group)
|
||||||
|
self.assertListEqual(result, expected)
|
||||||
|
|
||||||
# actions
|
# actions
|
||||||
|
|
||||||
# filters
|
# filters
|
||||||
|
|
||||||
@patch(MODULE_PATH + '._has_auto_groups', True)
|
if _has_auto_groups:
|
||||||
def test_filter_is_auto_group(self):
|
@patch(MODULE_PATH + '._has_auto_groups', True)
|
||||||
|
def test_filter_is_auto_group(self):
|
||||||
|
|
||||||
class GroupAdminTest(admin.ModelAdmin):
|
class GroupAdminTest(admin.ModelAdmin):
|
||||||
list_filter = (IsAutoGroupFilter,)
|
list_filter = (IsAutoGroupFilter,)
|
||||||
|
|
||||||
self._create_autogroups()
|
self._create_autogroups()
|
||||||
my_modeladmin = GroupAdminTest(Group, AdminSite())
|
my_modeladmin = GroupAdminTest(Group, AdminSite())
|
||||||
|
|
||||||
# Make sure the lookups are correct
|
# Make sure the lookups are correct
|
||||||
request = self.factory.get('/')
|
request = self.factory.get('/')
|
||||||
request.user = self.user_1
|
request.user = self.user_1
|
||||||
changelist = my_modeladmin.get_changelist_instance(request)
|
changelist = my_modeladmin.get_changelist_instance(request)
|
||||||
filters = changelist.get_filters(request)
|
filters = changelist.get_filters(request)
|
||||||
filterspec = filters[0][0]
|
filterspec = filters[0][0]
|
||||||
expected = [
|
expected = [
|
||||||
('yes', 'Yes'),
|
('yes', 'Yes'),
|
||||||
('no', 'No'),
|
('no', 'No'),
|
||||||
]
|
]
|
||||||
self.assertEqual(filterspec.lookup_choices, expected)
|
self.assertEqual(filterspec.lookup_choices, expected)
|
||||||
|
|
||||||
# Make sure the correct queryset is returned - no
|
# Make sure the correct queryset is returned - no
|
||||||
request = self.factory.get(
|
request = self.factory.get(
|
||||||
'/', {'is_auto_group__exact': 'no'}
|
'/', {'is_auto_group__exact': 'no'}
|
||||||
)
|
)
|
||||||
request.user = self.user_1
|
request.user = self.user_1
|
||||||
changelist = my_modeladmin.get_changelist_instance(request)
|
changelist = my_modeladmin.get_changelist_instance(request)
|
||||||
queryset = changelist.get_queryset(request)
|
queryset = changelist.get_queryset(request)
|
||||||
expected = [
|
expected = [
|
||||||
self.group_1,
|
self.group_1,
|
||||||
self.group_2,
|
self.group_2,
|
||||||
self.group_3,
|
self.group_3,
|
||||||
self.group_4,
|
self.group_4,
|
||||||
self.group_5,
|
self.group_5,
|
||||||
self.group_6
|
self.group_6
|
||||||
]
|
]
|
||||||
self.assertSetEqual(set(queryset), set(expected))
|
self.assertSetEqual(set(queryset), set(expected))
|
||||||
|
|
||||||
# Make sure the correct queryset is returned - yes
|
# Make sure the correct queryset is returned - yes
|
||||||
request = self.factory.get(
|
request = self.factory.get(
|
||||||
'/', {'is_auto_group__exact': 'yes'}
|
'/', {'is_auto_group__exact': 'yes'}
|
||||||
)
|
)
|
||||||
request.user = self.user_1
|
request.user = self.user_1
|
||||||
changelist = my_modeladmin.get_changelist_instance(request)
|
changelist = my_modeladmin.get_changelist_instance(request)
|
||||||
queryset = changelist.get_queryset(request)
|
queryset = changelist.get_queryset(request)
|
||||||
expected = Group.objects.exclude(
|
expected = Group.objects.exclude(
|
||||||
managedalliancegroup__isnull=True,
|
managedalliancegroup__isnull=True,
|
||||||
managedcorpgroup__isnull=True
|
managedcorpgroup__isnull=True
|
||||||
)
|
)
|
||||||
self.assertSetEqual(set(queryset), set(expected))
|
self.assertSetEqual(set(queryset), set(expected))
|
||||||
|
|
||||||
def test_filter_has_leader(self):
|
def test_filter_has_leader(self):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user