mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 04:20:17 +02:00
295 lines
9.8 KiB
Python
295 lines
9.8 KiB
Python
from unittest import mock
|
|
|
|
from django.test import TestCase
|
|
|
|
from ..models import EveAllianceInfo, EveCharacter, EveCorporationInfo
|
|
from ..providers import Alliance, Character, Corporation
|
|
|
|
|
|
class EveCharacterProviderManagerTestCase(TestCase):
|
|
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
|
def test_get_character(self, provider):
|
|
expected = Character()
|
|
provider.get_character.return_value = expected
|
|
|
|
result = EveCharacter.provider.get_character(1234)
|
|
|
|
self.assertEqual(expected, result)
|
|
|
|
|
|
class EveCharacterManagerTestCase(TestCase):
|
|
|
|
class TestCharacter(Character):
|
|
@property
|
|
def alliance(self):
|
|
return Alliance(id=3456, name='Test Alliance')
|
|
|
|
@property
|
|
def corp(self):
|
|
return Corporation(
|
|
id=2345,
|
|
name='Test Corp',
|
|
alliance_id=3456,
|
|
ticker='0BUGS' #lies, blatant lies!
|
|
)
|
|
|
|
@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
|
|
)
|
|
|
|
provider.get_character.return_value = expected
|
|
|
|
result = EveCharacter.objects.create_character(1234)
|
|
|
|
self.assertEqual(result.character_id, expected.id)
|
|
self.assertEqual(result.character_name, expected.name)
|
|
self.assertEqual(result.corporation_id, expected.corp.id)
|
|
self.assertEqual(result.corporation_name, expected.corp.name)
|
|
self.assertEqual(result.corporation_ticker, expected.corp.ticker)
|
|
self.assertEqual(result.alliance_id, expected.alliance.id)
|
|
self.assertEqual(result.alliance_name, expected.alliance.name)
|
|
|
|
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
|
def test_update_character(self, provider):
|
|
# Also covers Model.update_character
|
|
EveCharacter.objects.create(
|
|
character_id=1234,
|
|
character_name='character.name',
|
|
corporation_id=23457,
|
|
corporation_name='character.corp.name',
|
|
corporation_ticker='cc1',
|
|
alliance_id=34567,
|
|
alliance_name='character.alliance.name',
|
|
)
|
|
|
|
expected = self.TestCharacter(
|
|
id=1234,
|
|
name='Test Character',
|
|
corp_id=2345,
|
|
alliance_id=3456
|
|
)
|
|
provider.get_character.return_value = expected
|
|
|
|
result = EveCharacter.objects.update_character(1234)
|
|
|
|
self.assertEqual(result.character_id, expected.id)
|
|
self.assertEqual(result.character_name, expected.name)
|
|
self.assertEqual(result.corporation_id, expected.corp.id)
|
|
self.assertEqual(result.corporation_name, expected.corp.name)
|
|
self.assertEqual(result.corporation_ticker, expected.corp.ticker)
|
|
self.assertEqual(result.alliance_id, expected.alliance.id)
|
|
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',
|
|
corporation_id=2345,
|
|
corporation_name='character.corp.name',
|
|
corporation_ticker='cc1',
|
|
alliance_id=3456,
|
|
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')
|
|
def test_get_alliance(self, provider):
|
|
expected = Alliance()
|
|
provider.get_alliance.return_value = expected
|
|
|
|
result = EveAllianceInfo.provider.get_alliance(1234)
|
|
|
|
self.assertEqual(expected, result)
|
|
|
|
|
|
class EveAllianceManagerTestCase(TestCase):
|
|
|
|
class TestAlliance(Alliance):
|
|
def corp(self, id):
|
|
return self._corps[id]
|
|
|
|
@mock.patch('allianceauth.eveonline.models.EveAllianceInfo.populate_alliance')
|
|
@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
|
|
)
|
|
|
|
provider.get_alliance.return_value = expected
|
|
|
|
result = EveAllianceInfo.objects.create_alliance(3456)
|
|
|
|
self.assertEqual(result.alliance_id, expected.id)
|
|
self.assertEqual(result.alliance_name, expected.name)
|
|
self.assertEqual(result.alliance_ticker, expected.ticker)
|
|
self.assertEqual(result.executor_corp_id, expected.executor_corp_id)
|
|
self.assertTrue(populate_alliance.called)
|
|
|
|
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
|
def test_update_alliance(self, provider):
|
|
# Also covers Model.update_alliance
|
|
EveAllianceInfo.objects.create(
|
|
alliance_id=3456,
|
|
alliance_name='alliance.name',
|
|
alliance_ticker='at1',
|
|
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
|
|
|
|
result = EveAllianceInfo.objects.update_alliance(3456)
|
|
|
|
# This is the only thing ever updated in code
|
|
self.assertEqual(result.executor_corp_id, expected.executor_corp_id)
|
|
|
|
|
|
class EveCorporationProviderManagerTestCase(TestCase):
|
|
@mock.patch('allianceauth.eveonline.managers.providers.provider')
|
|
def test_get_corporation(self, provider):
|
|
expected = Corporation()
|
|
provider.get_corp.return_value = expected
|
|
|
|
result = EveCorporationInfo.provider.get_corporation(2345)
|
|
|
|
self.assertEqual(expected, result)
|
|
|
|
|
|
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
|
|
)
|
|
|
|
@property
|
|
def ceo(self):
|
|
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):
|
|
# Also covers create_corp_obj
|
|
exp_alliance = EveAllianceInfo.objects.create(
|
|
alliance_id=3456,
|
|
alliance_name='alliance.name',
|
|
alliance_ticker='99bug',
|
|
executor_corp_id=2345,
|
|
)
|
|
|
|
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.assertEqual(result.alliance, exp_alliance)
|
|
|
|
@mock.patch('allianceauth.eveonline.managers.providers.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,
|
|
alliance_name='alliance.name',
|
|
alliance_ticker='at1',
|
|
executor_corp_id=2345,
|
|
)
|
|
|
|
EveCorporationInfo.objects.create(
|
|
corporation_id=2345,
|
|
corporation_name='corp.name',
|
|
corporation_ticker='cc1',
|
|
member_count=10,
|
|
alliance=None,
|
|
)
|
|
|
|
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.update_corporation('2345')
|
|
|
|
self.assertEqual(result.corporation_id, expected.id)
|
|
# These are the only updated props
|
|
self.assertEqual(result.member_count, expected.members)
|
|
self.assertEqual(result.alliance, exp_alliance)
|