mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-12 22:10:16 +02:00
Ensure populate alliance is called on create
This commit is contained in:
parent
941bcd3cd1
commit
d93f36a180
@ -46,7 +46,9 @@ class EveAllianceManager(models.Manager):
|
||||
provider = EveAllianceProviderManager()
|
||||
|
||||
def create_alliance(self, alliance_id):
|
||||
return self.create_alliance_obj(self.provider.get_alliance(alliance_id))
|
||||
obj = self.create_alliance_obj(self.provider.get_alliance(alliance_id))
|
||||
obj.populate_alliance()
|
||||
return obj
|
||||
|
||||
def create_alliance_obj(self, alliance: providers.Alliance):
|
||||
return self.create(
|
||||
|
@ -43,14 +43,13 @@ class EveAllianceInfo(models.Model):
|
||||
objects = EveAllianceManager()
|
||||
provider = EveAllianceProviderManager()
|
||||
|
||||
def populate_alliance(self, alliance_id):
|
||||
alliance_model = self.objects.get(alliance_id=alliance_id)
|
||||
alliance = self.objects.get_alliance(alliance_id)
|
||||
def populate_alliance(self):
|
||||
alliance = self.provider.get_alliance(self.alliance_id)
|
||||
for corp_id in alliance.corp_ids:
|
||||
if not EveCorporationInfo.objects.filter(corporation_id=corp_id).exists():
|
||||
EveCorporationInfo.objects.create_corporation(corp_id)
|
||||
EveCorporationInfo.objects.filter(corporation_id__in=alliance.corp_ids).update(alliance=alliance_model)
|
||||
EveCorporationInfo.objects.filter(alliance=alliance_model).exclude(corporation_id__in=alliance.corp_ids).update(
|
||||
EveCorporationInfo.objects.filter(corporation_id__in=alliance.corp_ids).update(alliance=self)
|
||||
EveCorporationInfo.objects.filter(alliance=self).exclude(corporation_id__in=alliance.corp_ids).update(
|
||||
alliance=None)
|
||||
|
||||
def update_alliance(self, alliance: providers.Alliance = None):
|
||||
|
@ -15,7 +15,7 @@ def update_corp(corp_id):
|
||||
|
||||
@app.task
|
||||
def update_alliance(alliance_id):
|
||||
EveAllianceInfo.objects.update_alliance(alliance_id).populate_alliance(alliance_id)
|
||||
EveAllianceInfo.objects.update_alliance(alliance_id).populate_alliance()
|
||||
|
||||
|
||||
@app.task
|
||||
|
@ -106,8 +106,9 @@ class EveAllianceManagerTestCase(TestCase):
|
||||
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):
|
||||
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')
|
||||
@ -120,6 +121,7 @@ class EveAllianceManagerTestCase(TestCase):
|
||||
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):
|
||||
|
Loading…
x
Reference in New Issue
Block a user