diff --git a/allianceauth/authentication/tests/test_admin.py b/allianceauth/authentication/tests/test_admin.py index 4e94434e..2c048c23 100644 --- a/allianceauth/authentication/tests/test_admin.py +++ b/allianceauth/authentication/tests/test_admin.py @@ -1,12 +1,12 @@ from unittest.mock import patch -from django.test import TestCase, RequestFactory +from django.conf import settings from django.contrib import admin from django.contrib.admin.sites import AdminSite 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.eveonline.autogroups.models import AutogroupsConfig from allianceauth.eveonline.models import ( EveCharacter, EveCorporationInfo, EveAllianceInfo ) @@ -22,6 +22,11 @@ from ..admin import ( 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' @@ -174,14 +179,15 @@ class TestUserAdmin(TestCase): def _create_autogroups(self): """create autogroups for corps and alliances""" - autogroups_config = AutogroupsConfig( - corp_groups = True, - alliance_groups = True - ) - autogroups_config.save() - for state in State.objects.all(): - autogroups_config.states.add(state) - autogroups_config.update_corp_group_membership(self.user_1) + if _has_auto_groups: + autogroups_config = AutogroupsConfig( + corp_groups = True, + alliance_groups = True + ) + autogroups_config.save() + for state in State.objects.all(): + autogroups_config.states.add(state) + autogroups_config.update_corp_group_membership(self.user_1) # column rendering diff --git a/allianceauth/authentication/tests/test_app_settings.py b/allianceauth/authentication/tests/test_app_settings.py index 6bd2b8c1..f941e411 100644 --- a/allianceauth/authentication/tests/test_app_settings.py +++ b/allianceauth/authentication/tests/test_app_settings.py @@ -1,11 +1,11 @@ from unittest.mock import Mock, patch - from django.test import TestCase from .. import app_settings MODULE_PATH = 'allianceauth.authentication' + class TestSetAppSetting(TestCase): @patch(MODULE_PATH + '.app_settings.settings') @@ -17,7 +17,6 @@ class TestSetAppSetting(TestCase): ) self.assertEqual(result, False) - @patch(MODULE_PATH + '.app_settings.settings') def test_default_if_not_set_for_none(self, mock_settings): mock_settings.TEST_SETTING_DUMMY = Mock(spec=None) @@ -28,7 +27,6 @@ class TestSetAppSetting(TestCase): ) self.assertEqual(result, None) - @patch(MODULE_PATH + '.app_settings.settings') def test_true_stays_true(self, mock_settings): mock_settings.TEST_SETTING_DUMMY = True @@ -56,7 +54,6 @@ class TestSetAppSetting(TestCase): ) self.assertEqual(result, False) - @patch(MODULE_PATH + '.app_settings.settings') def test_default_for_invalid_type_int(self, mock_settings): mock_settings.TEST_SETTING_DUMMY = 'invalid type' @@ -95,7 +92,6 @@ class TestSetAppSetting(TestCase): ) self.assertEqual(result, 50) - @patch(MODULE_PATH + '.app_settings.settings') def test_default_is_none_needs_required_type(self, mock_settings): mock_settings.TEST_SETTING_DUMMY = 'invalid type' @@ -104,5 +100,3 @@ class TestSetAppSetting(TestCase): 'TEST_SETTING_DUMMY', default_value=None ) - - diff --git a/allianceauth/groupmanagement/admin.py b/allianceauth/groupmanagement/admin.py index eaf9060d..e9e52362 100644 --- a/allianceauth/groupmanagement/admin.py +++ b/allianceauth/groupmanagement/admin.py @@ -103,14 +103,16 @@ class GroupAdmin(admin.ModelAdmin): '_member_count', 'has_leader' ) - list_filter = ( + list_filter = [ 'authgroup__internal', 'authgroup__hidden', 'authgroup__open', - 'authgroup__public', - IsAutoGroupFilter, - HasLeaderFilter - ) + 'authgroup__public', + ] + if _has_auto_groups: + list_filter.append(IsAutoGroupFilter) + list_filter.append(HasLeaderFilter) + search_fields = ('name', 'authgroup__description') def get_queryset(self, request): diff --git a/allianceauth/groupmanagement/tests/test_admin.py b/allianceauth/groupmanagement/tests/test_admin.py index 2d9f452b..d25779af 100644 --- a/allianceauth/groupmanagement/tests/test_admin.py +++ b/allianceauth/groupmanagement/tests/test_admin.py @@ -1,23 +1,29 @@ from unittest.mock import patch -from django.test import TestCase, RequestFactory +from django.conf import settings from django.contrib import admin from django.contrib.admin.sites import AdminSite from django.contrib.auth.models import User +from django.test import TestCase, RequestFactory from allianceauth.authentication.models import CharacterOwnership, State -from allianceauth.eveonline.autogroups.models import AutogroupsConfig from allianceauth.eveonline.models import ( EveCharacter, EveCorporationInfo, EveAllianceInfo ) -from ..admin import ( - IsAutoGroupFilter, +from ..admin import ( HasLeaderFilter, GroupAdmin, 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' @@ -210,14 +216,15 @@ class TestGroupAdmin(TestCase): def _create_autogroups(self): """create autogroups for corps and alliances""" - autogroups_config = AutogroupsConfig( - corp_groups = True, - alliance_groups = True - ) - autogroups_config.save() - for state in State.objects.all(): - autogroups_config.states.add(state) - autogroups_config.update_corp_group_membership(self.user_1) + if _has_auto_groups: + autogroups_config = AutogroupsConfig( + corp_groups = True, + alliance_groups = True + ) + autogroups_config.save() + for state in State.objects.all(): + autogroups_config.states.add(state) + autogroups_config.update_corp_group_membership(self.user_1) # column rendering @@ -267,70 +274,72 @@ class TestGroupAdmin(TestCase): result = self.modeladmin._properties(self.group_6) self.assertListEqual(result, expected) - @patch(MODULE_PATH + '._has_auto_groups', True) - def test_properties_6(self): - self._create_autogroups() - expected = ['Auto Group'] - my_group = Group.objects\ - .filter(managedcorpgroup__isnull=False)\ - .first() - result = self.modeladmin._properties(my_group) - self.assertListEqual(result, expected) + if _has_auto_groups: + @patch(MODULE_PATH + '._has_auto_groups', True) + def test_properties_6(self): + self._create_autogroups() + expected = ['Auto Group'] + my_group = Group.objects\ + .filter(managedcorpgroup__isnull=False)\ + .first() + result = self.modeladmin._properties(my_group) + self.assertListEqual(result, expected) # actions # filters - @patch(MODULE_PATH + '._has_auto_groups', True) - def test_filter_is_auto_group(self): - - class GroupAdminTest(admin.ModelAdmin): - list_filter = (IsAutoGroupFilter,) - - self._create_autogroups() - my_modeladmin = GroupAdminTest(Group, AdminSite()) + if _has_auto_groups: + @patch(MODULE_PATH + '._has_auto_groups', True) + def test_filter_is_auto_group(self): + + class GroupAdminTest(admin.ModelAdmin): + list_filter = (IsAutoGroupFilter,) + + self._create_autogroups() + my_modeladmin = GroupAdminTest(Group, 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 = [ - ('yes', 'Yes'), - ('no', 'No'), - ] - self.assertEqual(filterspec.lookup_choices, expected) + # 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 = [ + ('yes', 'Yes'), + ('no', 'No'), + ] + self.assertEqual(filterspec.lookup_choices, expected) - # Make sure the correct queryset is returned - no - request = self.factory.get( - '/', {'is_auto_group__exact': 'no'} - ) - request.user = self.user_1 - changelist = my_modeladmin.get_changelist_instance(request) - queryset = changelist.get_queryset(request) - expected = [ - self.group_1, - self.group_2, - self.group_3, - self.group_4, - self.group_5, - self.group_6 - ] - self.assertSetEqual(set(queryset), set(expected)) + # Make sure the correct queryset is returned - no + request = self.factory.get( + '/', {'is_auto_group__exact': 'no'} + ) + request.user = self.user_1 + changelist = my_modeladmin.get_changelist_instance(request) + queryset = changelist.get_queryset(request) + expected = [ + self.group_1, + self.group_2, + self.group_3, + self.group_4, + self.group_5, + self.group_6 + ] + self.assertSetEqual(set(queryset), set(expected)) - # Make sure the correct queryset is returned - yes - request = self.factory.get( - '/', {'is_auto_group__exact': 'yes'} - ) - request.user = self.user_1 - changelist = my_modeladmin.get_changelist_instance(request) - queryset = changelist.get_queryset(request) - expected = Group.objects.exclude( - managedalliancegroup__isnull=True, - managedcorpgroup__isnull=True - ) - self.assertSetEqual(set(queryset), set(expected)) + # Make sure the correct queryset is returned - yes + request = self.factory.get( + '/', {'is_auto_group__exact': 'yes'} + ) + request.user = self.user_1 + changelist = my_modeladmin.get_changelist_instance(request) + queryset = changelist.get_queryset(request) + expected = Group.objects.exclude( + managedalliancegroup__isnull=True, + managedcorpgroup__isnull=True + ) + self.assertSetEqual(set(queryset), set(expected)) def test_filter_has_leader(self):