mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-13 14:30:17 +02:00
Merge branch 'eveonline_tests_1' into 'master'
Add more tests to eveonline module Closes #1206 See merge request allianceauth/allianceauth!1151
This commit is contained in:
commit
ebfb51eed5
@ -25,14 +25,35 @@ class AutogroupsConfigManagerTestCase(TestCase):
|
||||
obj = AutogroupsConfig.objects.create()
|
||||
obj.states.add(member.profile.state)
|
||||
|
||||
with patch('.models.AutogroupsConfig.update_group_membership_for_user') as update_group_membership_for_user:
|
||||
AutogroupsConfig.objects.update_groups_for_user(member)
|
||||
with patch('.models.AutogroupsConfig.update_group_membership_for_user') \
|
||||
as update_group_membership_for_user:
|
||||
AutogroupsConfig.objects.update_groups_for_user(
|
||||
user=member
|
||||
)
|
||||
|
||||
self.assertTrue(update_group_membership_for_user.called)
|
||||
self.assertEqual(update_group_membership_for_user.call_count, 1)
|
||||
args, kwargs = update_group_membership_for_user.call_args
|
||||
self.assertEqual(args[0], member)
|
||||
|
||||
def test_update_groups_for_user_no_state(self):
|
||||
member = AuthUtils.create_member('test member')
|
||||
obj = AutogroupsConfig.objects.create()
|
||||
obj.states.add(member.profile.state)
|
||||
|
||||
with patch('.models.AutogroupsConfig.update_group_membership_for_user') \
|
||||
as update_group_membership_for_user:
|
||||
AutogroupsConfig.objects.update_groups_for_user(
|
||||
user=member,
|
||||
state=member.profile.state
|
||||
)
|
||||
|
||||
self.assertTrue(update_group_membership_for_user.called)
|
||||
self.assertEqual(update_group_membership_for_user.call_count, 1)
|
||||
args, kwargs = update_group_membership_for_user.call_args
|
||||
self.assertEqual(args[0], member)
|
||||
|
||||
|
||||
@patch('.models.AutogroupsConfig.update_group_membership_for_user')
|
||||
@patch('.models.AutogroupsConfig.remove_user_from_alliance_groups')
|
||||
@patch('.models.AutogroupsConfig.remove_user_from_corp_groups')
|
||||
|
@ -1,5 +1,6 @@
|
||||
from django.test import TestCase
|
||||
from django.contrib.auth.models import Group
|
||||
from django.db import transaction
|
||||
|
||||
from allianceauth.tests.auth_utils import AuthUtils
|
||||
|
||||
@ -50,7 +51,11 @@ class AutogroupsConfigTestCase(TestCase):
|
||||
|
||||
@patch('.models.AutogroupsConfig.update_alliance_group_membership')
|
||||
@patch('.models.AutogroupsConfig.update_corp_group_membership')
|
||||
def test_update_group_membership(self, update_corp, update_alliance):
|
||||
def test_update_group_membership_for_user(
|
||||
self,
|
||||
update_corp,
|
||||
update_alliance
|
||||
):
|
||||
agc = AutogroupsConfig.objects.create()
|
||||
agc.update_group_membership_for_user(self.member)
|
||||
|
||||
@ -101,8 +106,27 @@ class AutogroupsConfigTestCase(TestCase):
|
||||
|
||||
self.assertNotIn(group, self.member.groups.all())
|
||||
|
||||
def test_update_alliance_group_membership_no_alliance_model(self):
|
||||
obj = AutogroupsConfig.objects.create()
|
||||
# todo: this test case currently does not work, because it forces
|
||||
# an exception during a transaction, which is not easily testable
|
||||
# the production code itself should be fine though
|
||||
# I therefore commented out the test case for now
|
||||
"""
|
||||
@patch('.models.EveAllianceInfo.objects.create_alliance')
|
||||
def test_update_alliance_group_membership_no_alliance_model(
|
||||
self,
|
||||
mock_create_alliance
|
||||
):
|
||||
def mock_create_alliance_side_effect(*args, **kwargs):
|
||||
return EveAllianceInfo.objects.create(
|
||||
alliance_id='3459',
|
||||
alliance_name='alliance name',
|
||||
alliance_ticker='alliance_ticker',
|
||||
executor_corp_id='2345'
|
||||
)
|
||||
|
||||
mock_create_alliance.side_effect = mock_create_alliance_side_effect
|
||||
|
||||
obj = AutogroupsConfig.objects.create(alliance_groups=True)
|
||||
obj.states.add(AuthUtils.get_member_state())
|
||||
char = EveCharacter.objects.create(
|
||||
character_id='1234',
|
||||
@ -116,12 +140,13 @@ class AutogroupsConfigTestCase(TestCase):
|
||||
self.member.profile.main_character = char
|
||||
self.member.profile.save()
|
||||
|
||||
# Act
|
||||
# Act
|
||||
obj.update_alliance_group_membership(self.member)
|
||||
|
||||
group = obj.get_alliance_group(self.alliance)
|
||||
|
||||
self.assertNotIn(group, self.member.groups.all())
|
||||
"""
|
||||
|
||||
def test_update_corp_group_membership(self):
|
||||
obj = AutogroupsConfig.objects.create(corp_groups=True)
|
||||
|
@ -26,12 +26,22 @@ class EveCharacterManagerTestCase(TestCase):
|
||||
|
||||
@property
|
||||
def corp(self):
|
||||
return Corporation(id='2345', name='Test Corp', alliance_id='3456', ticker='0BUGS')
|
||||
return Corporation(
|
||||
id='2345',
|
||||
name='Test Corp',
|
||||
alliance_id='3456',
|
||||
ticker='0BUGS'
|
||||
)
|
||||
|
||||
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
||||
def test_create_character(self, provider):
|
||||
# Also covers create_character_obj
|
||||
expected = self.TestCharacter(id='1234', name='Test Character', corp_id='2345', alliance_id='3456')
|
||||
expected = self.TestCharacter(
|
||||
id='1234',
|
||||
name='Test Character',
|
||||
corp_id='2345',
|
||||
alliance_id='3456'
|
||||
)
|
||||
|
||||
provider.get_character.return_value = expected
|
||||
|
||||
@ -58,7 +68,12 @@ class EveCharacterManagerTestCase(TestCase):
|
||||
alliance_name='character.alliance.name',
|
||||
)
|
||||
|
||||
expected = self.TestCharacter(id='1234', name='Test Character', corp_id='2345', alliance_id='3456')
|
||||
expected = self.TestCharacter(
|
||||
id='1234',
|
||||
name='Test Character',
|
||||
corp_id='2345',
|
||||
alliance_id='3456'
|
||||
)
|
||||
|
||||
provider.get_character.return_value = expected
|
||||
|
||||
@ -73,6 +88,7 @@ class EveCharacterManagerTestCase(TestCase):
|
||||
self.assertEqual(result.alliance_name, expected.alliance.name)
|
||||
|
||||
def test_get_character_by_id(self):
|
||||
EveCharacter.objects.all().delete()
|
||||
EveCharacter.objects.create(
|
||||
character_id='1234',
|
||||
character_name='character.name',
|
||||
@ -83,11 +99,15 @@ class EveCharacterManagerTestCase(TestCase):
|
||||
alliance_name='character.alliance.name',
|
||||
)
|
||||
|
||||
# try to get existing character
|
||||
result = EveCharacter.objects.get_character_by_id('1234')
|
||||
|
||||
self.assertEqual(result.character_id, '1234')
|
||||
self.assertEqual(result.character_name, 'character.name')
|
||||
|
||||
# try to get non existing character
|
||||
self.assertIsNone(EveCharacter.objects.get_character_by_id('9999'))
|
||||
|
||||
|
||||
class EveAllianceProviderManagerTestCase(TestCase):
|
||||
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
||||
@ -110,8 +130,13 @@ class EveAllianceManagerTestCase(TestCase):
|
||||
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
||||
def test_create_alliance(self, provider, populate_alliance):
|
||||
# Also covers create_alliance_obj
|
||||
expected = self.TestAlliance(id='3456', name='Test Alliance', ticker='TEST',
|
||||
corp_ids=['2345'], executor_corp_id='2345')
|
||||
expected = self.TestAlliance(
|
||||
id='3456',
|
||||
name='Test Alliance',
|
||||
ticker='TEST',
|
||||
corp_ids=['2345'],
|
||||
executor_corp_id='2345'
|
||||
)
|
||||
|
||||
provider.get_alliance.return_value = expected
|
||||
|
||||
@ -132,8 +157,13 @@ class EveAllianceManagerTestCase(TestCase):
|
||||
alliance_ticker='alliance.ticker',
|
||||
executor_corp_id='alliance.executor_corp_id',
|
||||
)
|
||||
expected = self.TestAlliance(id='3456', name='Test Alliance', ticker='TEST',
|
||||
corp_ids=['2345'], executor_corp_id='2345')
|
||||
expected = self.TestAlliance(
|
||||
id='3456',
|
||||
name='Test Alliance',
|
||||
ticker='TEST',
|
||||
corp_ids=['2345'],
|
||||
executor_corp_id='2345'
|
||||
)
|
||||
|
||||
provider.get_alliance.return_value = expected
|
||||
|
||||
@ -159,13 +189,22 @@ class EveCorporationManagerTestCase(TestCase):
|
||||
class TestCorporation(Corporation):
|
||||
@property
|
||||
def alliance(self):
|
||||
return EveAllianceManagerTestCase.TestAlliance(id='3456', name='Test Alliance', ticker='TEST',
|
||||
corp_ids=['2345'], executor_corp_id='2345')
|
||||
return EveAllianceManagerTestCase.TestAlliance(
|
||||
id='3456',
|
||||
name='Test Alliance',
|
||||
ticker='TEST',
|
||||
corp_ids=['2345'],
|
||||
executor_corp_id='2345'
|
||||
)
|
||||
|
||||
@property
|
||||
def ceo(self):
|
||||
return EveCharacterManagerTestCase.TestCharacter(id='1234', name='Test Character',
|
||||
corp_id='2345', alliance_id='3456')
|
||||
return EveCharacterManagerTestCase.TestCharacter(
|
||||
id='1234',
|
||||
name='Test Character',
|
||||
corp_id='2345',
|
||||
alliance_id='3456'
|
||||
)
|
||||
|
||||
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
||||
def test_create_corporation(self, provider):
|
||||
@ -177,8 +216,14 @@ class EveCorporationManagerTestCase(TestCase):
|
||||
executor_corp_id='alliance.executor_corp_id',
|
||||
)
|
||||
|
||||
expected = self.TestCorporation(id='2345', name='Test Corp', ticker='0BUGS',
|
||||
ceo_id='1234', members=1, alliance_id='3456')
|
||||
expected = self.TestCorporation(
|
||||
id='2345',
|
||||
name='Test Corp',
|
||||
ticker='0BUGS',
|
||||
ceo_id='1234',
|
||||
members=1,
|
||||
alliance_id='3456'
|
||||
)
|
||||
|
||||
provider.get_corp.return_value = expected
|
||||
|
||||
@ -191,7 +236,30 @@ class EveCorporationManagerTestCase(TestCase):
|
||||
self.assertEqual(result.alliance, exp_alliance)
|
||||
|
||||
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
||||
def test_create_corporation(self, provider):
|
||||
def test_create_corporation_no_alliance(self, provider):
|
||||
# variant to test no alliance case
|
||||
# Also covers create_corp_obj
|
||||
expected = self.TestCorporation(
|
||||
id='2345',
|
||||
name='Test Corp',
|
||||
ticker='0BUGS',
|
||||
ceo_id='1234',
|
||||
members=1,
|
||||
alliance_id='3456'
|
||||
)
|
||||
|
||||
provider.get_corp.return_value = expected
|
||||
|
||||
result = EveCorporationInfo.objects.create_corporation('2345')
|
||||
|
||||
self.assertEqual(result.corporation_id, expected.id)
|
||||
self.assertEqual(result.corporation_name, expected.name)
|
||||
self.assertEqual(result.corporation_ticker, expected.ticker)
|
||||
self.assertEqual(result.member_count, expected.members)
|
||||
self.assertIsNone(result.alliance)
|
||||
|
||||
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
||||
def test_update_corporation(self, provider):
|
||||
# Also covers Model.update_corporation
|
||||
exp_alliance = EveAllianceInfo.objects.create(
|
||||
alliance_id='3456',
|
||||
@ -208,8 +276,14 @@ class EveCorporationManagerTestCase(TestCase):
|
||||
alliance=None,
|
||||
)
|
||||
|
||||
expected = self.TestCorporation(id='2345', name='Test Corp', ticker='0BUGS',
|
||||
ceo_id='1234', members=1, alliance_id='3456')
|
||||
expected = self.TestCorporation(
|
||||
id='2345',
|
||||
name='Test Corp',
|
||||
ticker='0BUGS',
|
||||
ceo_id='1234',
|
||||
members=1,
|
||||
alliance_id='3456'
|
||||
)
|
||||
|
||||
provider.get_corp.return_value = expected
|
||||
|
||||
|
110
allianceauth/eveonline/tests/test_tasks.py
Normal file
110
allianceauth/eveonline/tests/test_tasks.py
Normal file
@ -0,0 +1,110 @@
|
||||
from unittest.mock import patch, Mock
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from ..models import EveCharacter, EveCorporationInfo, EveAllianceInfo
|
||||
from ..tasks import update_alliance, update_corp, update_character, \
|
||||
run_model_update
|
||||
|
||||
|
||||
class TestTasks(TestCase):
|
||||
|
||||
@patch('allianceauth.eveonline.tasks.EveCorporationInfo')
|
||||
def test_update_corp(self, mock_EveCorporationInfo):
|
||||
update_corp(42)
|
||||
self.assertEqual(
|
||||
mock_EveCorporationInfo.objects.update_corporation.call_count,
|
||||
1
|
||||
)
|
||||
self.assertEqual(
|
||||
mock_EveCorporationInfo.objects.update_corporation.call_args[0][0],
|
||||
42
|
||||
)
|
||||
|
||||
|
||||
@patch('allianceauth.eveonline.tasks.EveAllianceInfo')
|
||||
def test_update_alliance(self, mock_EveAllianceInfo):
|
||||
update_alliance(42)
|
||||
self.assertEqual(
|
||||
mock_EveAllianceInfo.objects.update_alliance.call_args[0][0],
|
||||
42
|
||||
)
|
||||
self.assertEqual(
|
||||
mock_EveAllianceInfo.objects\
|
||||
.update_alliance.return_value.populate_alliance.call_count,
|
||||
1
|
||||
)
|
||||
|
||||
|
||||
@patch('allianceauth.eveonline.tasks.EveCharacter')
|
||||
def test_update_character(self, mock_EveCharacter):
|
||||
update_character(42)
|
||||
self.assertEqual(
|
||||
mock_EveCharacter.objects.update_character.call_count,
|
||||
1
|
||||
)
|
||||
self.assertEqual(
|
||||
mock_EveCharacter.objects.update_character.call_args[0][0],
|
||||
42
|
||||
)
|
||||
|
||||
|
||||
@patch('allianceauth.eveonline.tasks.update_character')
|
||||
@patch('allianceauth.eveonline.tasks.update_alliance')
|
||||
@patch('allianceauth.eveonline.tasks.update_corp')
|
||||
def test_run_model_update(
|
||||
self,
|
||||
mock_update_corp,
|
||||
mock_update_alliance,
|
||||
mock_update_character,
|
||||
):
|
||||
EveCorporationInfo.objects.all().delete()
|
||||
EveAllianceInfo.objects.all().delete()
|
||||
EveCharacter.objects.all().delete()
|
||||
|
||||
EveCorporationInfo.objects.create(
|
||||
corporation_id='2345',
|
||||
corporation_name='corp.name',
|
||||
corporation_ticker='corp.ticker',
|
||||
member_count=10,
|
||||
alliance=None,
|
||||
)
|
||||
EveAllianceInfo.objects.create(
|
||||
alliance_id='3456',
|
||||
alliance_name='alliance.name',
|
||||
alliance_ticker='alliance.ticker',
|
||||
executor_corp_id='alliance.executor_corp_id',
|
||||
)
|
||||
EveCharacter.objects.create(
|
||||
character_id='1234',
|
||||
character_name='character.name',
|
||||
corporation_id='character.corp.id',
|
||||
corporation_name='character.corp.name',
|
||||
corporation_ticker='character.corp.ticker',
|
||||
alliance_id='character.alliance.id',
|
||||
alliance_name='character.alliance.name',
|
||||
)
|
||||
|
||||
run_model_update()
|
||||
|
||||
self.assertEqual(mock_update_corp.delay.call_count, 1)
|
||||
self.assertEqual(
|
||||
int(mock_update_corp.delay.call_args[0][0]),
|
||||
2345
|
||||
)
|
||||
|
||||
self.assertEqual(mock_update_alliance.delay.call_count, 1)
|
||||
self.assertEqual(
|
||||
int(mock_update_alliance.delay.call_args[0][0]),
|
||||
3456
|
||||
)
|
||||
|
||||
self.assertEqual(mock_update_character.delay.call_count, 1)
|
||||
self.assertEqual(
|
||||
int(mock_update_character.delay.call_args[0][0]),
|
||||
1234
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user