aa-ledger 1.0.4__py3-none-any.whl → 2.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aa_ledger-1.0.4.dist-info → aa_ledger-2.0.0.dist-info}/METADATA +5 -6
- aa_ledger-2.0.0.dist-info/RECORD +267 -0
- ledger/__init__.py +2 -2
- ledger/admin.py +23 -18
- ledger/api/__init__.py +23 -7
- ledger/api/{ledger/admin.py → admin.py} +25 -31
- ledger/api/alliance.py +755 -0
- ledger/api/character.py +786 -0
- ledger/api/corporation.py +1141 -0
- ledger/api/{helpers.py → helpers/core.py} +33 -33
- ledger/api/helpers/icons.py +372 -0
- ledger/api/helpers/planetary_helper.py +354 -0
- ledger/api/planetary.py +354 -0
- ledger/api/schema.py +240 -15
- ledger/app_settings.py +11 -27
- ledger/auth_hooks.py +2 -2
- ledger/constants.py +50 -177
- ledger/decorators.py +2 -46
- ledger/forms.py +133 -39
- ledger/helpers/billboard.py +194 -144
- ledger/helpers/cache.py +105 -0
- ledger/helpers/discord.py +2 -4
- ledger/helpers/eveonline.py +160 -0
- ledger/helpers/ledger_data.py +23 -0
- ledger/helpers/ref_type.py +53 -78
- ledger/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- ledger/locale/cs_CZ/LC_MESSAGES/django.po +349 -193
- ledger/locale/de/LC_MESSAGES/django.mo +0 -0
- ledger/locale/de/LC_MESSAGES/django.po +528 -379
- ledger/locale/django.pot +721 -546
- ledger/locale/es/LC_MESSAGES/django.mo +0 -0
- ledger/locale/es/LC_MESSAGES/django.po +349 -194
- ledger/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- ledger/locale/fr_FR/LC_MESSAGES/django.po +349 -193
- ledger/locale/it_IT/LC_MESSAGES/django.mo +0 -0
- ledger/locale/it_IT/LC_MESSAGES/django.po +349 -193
- ledger/locale/ja/LC_MESSAGES/django.mo +0 -0
- ledger/locale/ja/LC_MESSAGES/django.po +348 -193
- ledger/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
- ledger/locale/ko_KR/LC_MESSAGES/django.po +349 -193
- ledger/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
- ledger/locale/nl_NL/LC_MESSAGES/django.po +349 -193
- ledger/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- ledger/locale/pl_PL/LC_MESSAGES/django.po +350 -193
- ledger/locale/ru/LC_MESSAGES/django.mo +0 -0
- ledger/locale/ru/LC_MESSAGES/django.po +348 -193
- ledger/locale/sk/LC_MESSAGES/django.mo +0 -0
- ledger/locale/sk/LC_MESSAGES/django.po +348 -193
- ledger/locale/uk/LC_MESSAGES/django.mo +0 -0
- ledger/locale/uk/LC_MESSAGES/django.po +348 -193
- ledger/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- ledger/locale/zh_Hans/LC_MESSAGES/django.po +348 -193
- ledger/managers/character_audit_manager.py +28 -20
- ledger/managers/character_journal_manager.py +185 -357
- ledger/managers/character_mining_manager.py +52 -26
- ledger/managers/character_planetary_manager.py +178 -136
- ledger/managers/corporation_audit_manager.py +36 -27
- ledger/managers/corporation_journal_manager.py +92 -56
- ledger/managers/general_manager.py +8 -7
- ledger/migrations/0018_remove_characterplanet_ledger_char_planet__58a5b6_idx_and_more.py +44 -0
- ledger/migrations/0019_rename_characteraudit_characterowner_and_more.py +48 -0
- ledger/models/__init__.py +5 -11
- ledger/models/characteraudit.py +101 -109
- ledger/models/corporationaudit.py +94 -49
- ledger/models/general.py +105 -211
- ledger/models/helpers/update_manager.py +302 -0
- ledger/models/planetary.py +60 -205
- ledger/providers.py +101 -0
- ledger/static/ledger/css/{ledger.css → aa-ledger.css} +54 -28
- ledger/static/ledger/js/aa-ledger.js +124 -0
- ledger/static/ledger/js/charts.js +25 -1
- ledger/static/ledger/js/view-alliance-ledger.js +383 -0
- ledger/static/ledger/js/view-character-ledger.js +388 -0
- ledger/static/ledger/js/view-corporation-ledger.js +402 -0
- ledger/static/ledger/js/view-planetary.js +492 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/flow.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/index.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/percent.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Animated.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Dark.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/xy.js +2 -0
- ledger/static/ledger/libs/datatables/2.3.5/css/dataTables.bootstrap5.css +610 -0
- ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.bootstrap5.js +122 -0
- ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.js +14127 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.bootstrap5.css +516 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.dataTables.css +529 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/columnControl.bootstrap5.js +73 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/dataTables.columnControl.js +3090 -0
- ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/css/fixedHeader.bootstrap5.css +20 -0
- ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/dataTables.fixedHeader.js +1203 -0
- ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/fixedHeader.bootstrap5.js +59 -0
- ledger/tasks.py +157 -141
- ledger/templates/ledger/base.html +59 -21
- ledger/templates/ledger/bundles/aa-ledger-css.html +3 -0
- ledger/templates/ledger/bundles/aa-ledger-js.html +3 -0
- ledger/templates/ledger/bundles/view-alliance-ledger-js.html +14 -0
- ledger/templates/ledger/bundles/view-character-ledger-js.html +15 -0
- ledger/templates/ledger/bundles/view-character-planetary-css.html +3 -0
- ledger/templates/ledger/bundles/view-character-planetary-js.html +4 -0
- ledger/templates/ledger/bundles/view-corporation-ledger-js.html +15 -0
- ledger/templates/ledger/partials/modal/confirm.html +0 -1
- ledger/templates/ledger/partials/modal/request-accept-delete-alliance.html +38 -0
- ledger/templates/ledger/partials/modal/request-accept-delete-character.html +38 -0
- ledger/templates/ledger/partials/modal/request-accept-delete-corporation.html +38 -0
- ledger/templates/ledger/partials/modal/request-accept-switch-notification.html +38 -0
- ledger/templates/ledger/partials/modal/request-view-alliance-details.html +26 -0
- ledger/templates/ledger/partials/modal/request-view-character-details.html +26 -0
- ledger/templates/ledger/partials/modal/request-view-corporation-details.html +26 -0
- ledger/templates/ledger/partials/modal/request-view-extractor.html +32 -0
- ledger/templates/ledger/partials/modal/request-view-factory.html +31 -0
- ledger/templates/ledger/partials/{menu → navigation}/administration.html +8 -0
- ledger/templates/ledger/partials/{menu → navigation}/navigation.html +2 -2
- ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance_corporations.html +3 -3
- ledger/templates/ledger/partials/view-alliance-administration/dashboard.html +81 -0
- ledger/templates/ledger/partials/view-alliance-ledger/alliance-billboard.html +25 -0
- ledger/templates/ledger/partials/view-alliance-ledger/alliance-ledger-details.html +21 -0
- ledger/templates/ledger/partials/view-alliance-ledger/alliance-table.html +24 -0
- ledger/templates/ledger/partials/view-alliance-ledger/information/daily.html +18 -0
- ledger/templates/ledger/partials/view-alliance-ledger/information/hourly.html +18 -0
- ledger/templates/ledger/partials/view-alliance-ledger/information/summary.html +19 -0
- ledger/templates/ledger/partials/{administration → view-character-administration}/character.html +1 -9
- ledger/templates/ledger/partials/{administration → view-character-administration}/dashboard.html +0 -34
- ledger/templates/ledger/partials/view-character-ledger/character-billboard.html +25 -0
- ledger/templates/ledger/partials/view-character-ledger/character-ledger-details.html +21 -0
- ledger/templates/ledger/partials/view-character-ledger/character-table.html +25 -0
- ledger/templates/ledger/partials/view-character-ledger/information/daily.html +18 -0
- ledger/templates/ledger/partials/view-character-ledger/information/hourly.html +18 -0
- ledger/templates/ledger/partials/view-character-ledger/information/summary.html +19 -0
- ledger/templates/ledger/partials/view-character-planetary/extractor-table.html +24 -0
- ledger/templates/ledger/partials/view-character-planetary/factory-table.html +24 -0
- ledger/templates/ledger/partials/view-character-planetary/planetary-table.html +22 -0
- ledger/templates/ledger/partials/view-character-planetary/storage-table.html +23 -0
- ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation.html +5 -13
- ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation_characters.html +1 -1
- ledger/templates/ledger/partials/view-corporation-administration/dashboard.html +81 -0
- ledger/templates/ledger/partials/view-corporation-ledger/corporation-billboard.html +25 -0
- ledger/templates/ledger/partials/view-corporation-ledger/corporation-ledger-details.html +21 -0
- ledger/templates/ledger/partials/view-corporation-ledger/corporation-table.html +26 -0
- ledger/templates/ledger/partials/view-corporation-ledger/information/daily.html +18 -0
- ledger/templates/ledger/partials/view-corporation-ledger/information/hourly.html +18 -0
- ledger/templates/ledger/partials/view-corporation-ledger/information/summary.html +19 -0
- ledger/templates/ledger/view-administration.html +62 -0
- ledger/templates/ledger/view-alliance-administration.html +49 -0
- ledger/templates/ledger/view-alliance-ledger.html +72 -0
- ledger/templates/ledger/view-alliance-overview.html +131 -0
- ledger/templates/ledger/view-character-administration.html +42 -0
- ledger/templates/ledger/view-character-ledger.html +73 -0
- ledger/templates/ledger/view-character-overview.html +135 -0
- ledger/templates/ledger/view-character-planetary-overview.html +135 -0
- ledger/templates/ledger/view-character-planetary.html +73 -0
- ledger/templates/ledger/view-corporation-administration.html +42 -0
- ledger/templates/ledger/view-corporation-ledger.html +73 -0
- ledger/templates/ledger/view-corporation-overview.html +131 -0
- ledger/templatetags/ledger.py +3 -5
- ledger/tests/__init__.py +187 -0
- ledger/tests/test_admin.py +164 -68
- ledger/tests/test_auth_hook.py +31 -13
- ledger/tests/test_decarators.py +14 -79
- ledger/tests/test_discord_installed.py +0 -1
- ledger/tests/test_helpers/test_ledger_data.py +19 -0
- ledger/tests/test_managers/test_character_audit_manager.py +111 -69
- ledger/tests/test_managers/test_character_journal_manager.py +48 -208
- ledger/tests/test_managers/test_character_mining_manager.py +37 -16
- ledger/tests/test_managers/test_corporation_division_manager.py +66 -28
- ledger/tests/test_managers/test_corporation_journal_manager.py +39 -42
- ledger/tests/test_managers/test_general_manager.py +78 -18
- ledger/tests/test_managers/test_planetary_manager.py +73 -32
- ledger/tests/test_models/test_characteraudit.py +58 -74
- ledger/tests/test_models/test_characterminingledger.py +20 -26
- ledger/tests/test_models/test_characterwalletjournal.py +10 -33
- ledger/tests/test_models/test_corporationaudit.py +41 -35
- ledger/tests/test_models/test_corporationwalletjournal.py +35 -32
- ledger/tests/test_models/test_general.py +44 -11
- ledger/tests/test_models/test_planetary.py +14 -80
- ledger/tests/test_templatetags.py +2 -7
- ledger/tests/test_views/corporation/test_add_corp.py +16 -35
- ledger/tests/test_views/corporation/test_delete_corporation.py +66 -42
- ledger/tests/test_views/test_access.py +512 -545
- ledger/tests/test_views/test_add_ally.py +57 -46
- ledger/tests/test_views/test_add_char.py +21 -33
- ledger/tests/test_views/test_delete_character.py +24 -21
- ledger/tests/testdata/README_ESI_STUB.md +430 -0
- ledger/tests/testdata/esi_stub_openapi.py +511 -0
- ledger/tests/testdata/integrations/__init__.py +0 -0
- ledger/tests/testdata/{load_eveuniverse.py → integrations/eveuniverse.py} +0 -1
- ledger/tests/testdata/integrations/planetary.py +13 -0
- ledger/tests/testdata/json/factory.json +281 -0
- ledger/tests/testdata/json/inactive.json +281 -0
- ledger/tests/testdata/json/pins.json +175 -272
- ledger/tests/testdata/json/route.json +95 -528
- ledger/tests/testdata/test_esi_stub.py +468 -0
- ledger/tests/testdata/utils.py +601 -0
- ledger/thirdparty/charlink_hook.py +60 -30
- ledger/urls.py +0 -135
- ledger/views/alliance/add_ally.py +2 -4
- ledger/views/alliance/alliance_ledger.py +64 -147
- ledger/views/character/add_char.py +8 -10
- ledger/views/character/character_ledger.py +60 -126
- ledger/views/character/planetary.py +5 -98
- ledger/views/corporation/add_corp.py +10 -12
- ledger/views/corporation/corporation_ledger.py +65 -327
- ledger/views/index.py +92 -30
- aa_ledger-1.0.4.dist-info/RECORD +0 -236
- ledger/api/api_helper/planetary_helper.py +0 -107
- ledger/api/ledger/__init__.py +0 -7
- ledger/api/ledger/planetary.py +0 -231
- ledger/helpers/alliance.py +0 -317
- ledger/helpers/character.py +0 -251
- ledger/helpers/core.py +0 -665
- ledger/helpers/corporation.py +0 -427
- ledger/helpers/data_exporter.py +0 -452
- ledger/static/ledger/js/planetary-confirm.js +0 -66
- ledger/static/ledger/js/planetary.js +0 -143
- ledger/templates/ledger/admin.html +0 -43
- ledger/templates/ledger/allyledger/admin/alliance_administration.html +0 -46
- ledger/templates/ledger/allyledger/admin/alliance_overview.html +0 -108
- ledger/templates/ledger/allyledger/alliance_ledger.html +0 -86
- ledger/templates/ledger/bundles/character-ledger-bundles.html +0 -66
- ledger/templates/ledger/bundles/corporation-ledger-bundles.html +0 -75
- ledger/templates/ledger/bundles/ledger-bundles.html +0 -23
- ledger/templates/ledger/bundles/ledger-css.html +0 -3
- ledger/templates/ledger/bundles/planetary-bundles.html +0 -50
- ledger/templates/ledger/bundles/table-css.html +0 -3
- ledger/templates/ledger/charledger/admin/character_administration.html +0 -39
- ledger/templates/ledger/charledger/admin/character_overview.html +0 -106
- ledger/templates/ledger/charledger/character_ledger.html +0 -94
- ledger/templates/ledger/charledger/planetary/admin/planetary_overview.html +0 -123
- ledger/templates/ledger/charledger/planetary/planetary_ledger.html +0 -54
- ledger/templates/ledger/corpledger/admin/corporation_administration.html +0 -39
- ledger/templates/ledger/corpledger/admin/corporation_overview.html +0 -108
- ledger/templates/ledger/corpledger/corporation_ledger.html +0 -129
- ledger/templates/ledger/data-export.html +0 -78
- ledger/templates/ledger/error.html +0 -31
- ledger/templates/ledger/partials/form/error-message.html +0 -1
- ledger/templates/ledger/partials/information/daily.html +0 -56
- ledger/templates/ledger/partials/information/day.html +0 -48
- ledger/templates/ledger/partials/information/error.html +0 -8
- ledger/templates/ledger/partials/information/hourly.html +0 -53
- ledger/templates/ledger/partials/information/summary.html +0 -88
- ledger/templates/ledger/partials/information/view_character_content.html +0 -35
- ledger/templates/ledger/partials/modal/switchalarm_confirm.html +0 -39
- ledger/templates/ledger/partials/modal/view_extractor.html +0 -48
- ledger/templates/ledger/partials/modal/view_factory.html +0 -123
- ledger/templates/ledger/partials/table/char-ledger.html +0 -85
- ledger/templates/ledger/partials/table/corp-ledger.html +0 -66
- ledger/templates/ledger/partials/table/planetary.html +0 -18
- ledger/templates/ledger/partials/thirdparty/billboard.html +0 -22
- ledger/templates/ledger/partials/view/card.html +0 -160
- ledger/templates/ledger/permission.html +0 -2
- ledger/tests/test_helpers/test_billboard.py +0 -11
- ledger/tests/test_helpers/test_data_exporter.py +0 -207
- ledger/tests/test_tasks.py +0 -282
- ledger/tests/test_view_helpers/test_core.py +0 -47
- ledger/tests/test_views/corporation/test_corporation.py +0 -267
- ledger/tests/test_views/test_planetary.py +0 -137
- ledger/tests/testdata/esi_stub.py +0 -109
- ledger/tests/testdata/esi_stub_migration.py +0 -80
- ledger/tests/testdata/generate_characteraudit.py +0 -106
- ledger/tests/testdata/generate_corporationaudit.py +0 -74
- ledger/tests/testdata/generate_events.py +0 -31
- ledger/tests/testdata/generate_miningledger.py +0 -13
- ledger/tests/testdata/generate_planets.py +0 -48
- ledger/tests/testdata/generate_walletjournal.py +0 -42
- ledger/tests/testdata/json/czarno-pins.json +0 -240
- ledger/tests/testdata/json/czarno-routes.json +0 -165
- ledger/tests/testdata/json/pins2.json +0 -538
- {aa_ledger-1.0.4.dist-info → aa_ledger-2.0.0.dist-info}/WHEEL +0 -0
- {aa_ledger-1.0.4.dist-info → aa_ledger-2.0.0.dist-info}/licenses/LICENSE +0 -0
- /ledger/{tests/test_view_helpers → api/helpers}/__init__.py +0 -0
- /ledger/templates/ledger/bundles/{ally-administration-bundles.html → view-alliance-administration-js.html} +0 -0
- /ledger/templates/ledger/bundles/{char-administration-bundles.html → view-character-administration-js.html} +0 -0
- /ledger/templates/ledger/bundles/{corp-administration-bundles.html → view-corporation-administration-js.html} +0 -0
- /ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance.html +0 -0
- /ledger/tests/testdata/{esi.json → esi_test_data.json} +0 -0
- /ledger/tests/testdata/{allianceauth.json → integrations/allianceauth.json} +0 -0
- /ledger/tests/testdata/{load_allianceauth.py → integrations/allianceauth.py} +0 -0
- /ledger/tests/testdata/{eveentity.json → integrations/eveentity.json} +0 -0
- /ledger/tests/testdata/{load_eveentity.py → integrations/eveentity.py} +0 -0
- /ledger/tests/testdata/{eveuniverse.json → integrations/eveuniverse.json} +0 -0
- /ledger/tests/testdata/{planetary.json → integrations/planetary.json} +0 -0
|
@@ -1,46 +1,67 @@
|
|
|
1
1
|
# Standard Library
|
|
2
|
-
from unittest.mock import patch
|
|
2
|
+
from unittest.mock import MagicMock, patch
|
|
3
3
|
|
|
4
4
|
# Django
|
|
5
5
|
from django.test import override_settings
|
|
6
6
|
|
|
7
7
|
# Alliance Auth (External Libs)
|
|
8
|
-
from app_utils.testing import NoSocketsTestCase
|
|
9
8
|
from eveuniverse.models import EveSolarSystem, EveType
|
|
10
9
|
|
|
11
10
|
# AA Ledger
|
|
12
|
-
from ledger.tests
|
|
13
|
-
from ledger.tests.testdata.
|
|
14
|
-
|
|
11
|
+
from ledger.tests import LedgerTestCase
|
|
12
|
+
from ledger.tests.testdata.esi_stub_openapi import EsiEndpoint, create_esi_client_stub
|
|
13
|
+
from ledger.tests.testdata.utils import (
|
|
14
|
+
create_owner_from_user,
|
|
15
15
|
)
|
|
16
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
17
|
-
from ledger.tests.testdata.load_eveentity import load_eveentity
|
|
18
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
19
16
|
|
|
20
17
|
MODULE_PATH = "ledger.managers.character_mining_manager"
|
|
18
|
+
CHARACTEROWNER_PATH = "ledger.models.characteraudit.CharacterMiningLedger"
|
|
19
|
+
LEDGER_CHARACTER_MINING_LEDGER_ENDPOINTS = [
|
|
20
|
+
EsiEndpoint(
|
|
21
|
+
"Industry",
|
|
22
|
+
"GetCharactersCharacterIdMining",
|
|
23
|
+
"character_id",
|
|
24
|
+
),
|
|
25
|
+
]
|
|
21
26
|
|
|
22
27
|
|
|
23
28
|
@override_settings(CELERY_ALWAYS_EAGER=True, CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
|
|
24
29
|
@patch(MODULE_PATH + ".esi")
|
|
25
30
|
@patch(MODULE_PATH + ".EveType.objects.bulk_get_or_create_esi")
|
|
26
|
-
@patch("
|
|
27
|
-
class TestCharacterMiningManager(
|
|
31
|
+
@patch(CHARACTEROWNER_PATH + ".update_evemarket_price")
|
|
32
|
+
class TestCharacterMiningManager(LedgerTestCase):
|
|
28
33
|
@classmethod
|
|
29
34
|
def setUpClass(cls):
|
|
30
35
|
super().setUpClass()
|
|
31
|
-
|
|
32
|
-
load_eveuniverse()
|
|
33
|
-
load_eveentity()
|
|
34
|
-
cls.audit = create_characteraudit_from_evecharacter(1001)
|
|
36
|
+
cls.audit = create_owner_from_user(user=cls.user)
|
|
35
37
|
|
|
36
38
|
cls.eve_type = EveType.objects.get(id=17425)
|
|
37
39
|
cls.eve_system = EveSolarSystem.objects.get(id=30004783)
|
|
38
40
|
|
|
41
|
+
cls.token = cls.user_character.user.token_set.first()
|
|
42
|
+
cls.audit.get_token = MagicMock(return_value=cls.token)
|
|
43
|
+
|
|
39
44
|
def test_update_mining_ledger(self, _, __, mock_esi):
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
"""
|
|
46
|
+
Test updating the character mining ledger.
|
|
47
|
+
|
|
48
|
+
This test verifies that the mining ledger entries are correctly updated
|
|
49
|
+
from ESI data. It checks that the entries have the expected quantity, system_id,
|
|
50
|
+
and type_id.
|
|
51
|
+
|
|
52
|
+
### Expected Result
|
|
53
|
+
- Mining ledger entries are updated correctly.
|
|
54
|
+
- Entries have correct quantity, system_id, and type_id.
|
|
55
|
+
"""
|
|
56
|
+
# Test Data
|
|
57
|
+
mock_esi.client = create_esi_client_stub(
|
|
58
|
+
endpoints=LEDGER_CHARACTER_MINING_LEDGER_ENDPOINTS,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
# Test Action
|
|
42
62
|
self.audit.update_mining_ledger(force_refresh=False)
|
|
43
63
|
|
|
64
|
+
# Excepted Results
|
|
44
65
|
obj = self.audit.ledger_character_mining.filter(
|
|
45
66
|
date__contains="2014-10-29"
|
|
46
67
|
).first()
|
|
@@ -1,77 +1,115 @@
|
|
|
1
1
|
# Standard Library
|
|
2
|
-
from unittest.mock import patch
|
|
2
|
+
from unittest.mock import MagicMock, patch
|
|
3
3
|
|
|
4
4
|
# Django
|
|
5
5
|
from django.test import override_settings
|
|
6
6
|
|
|
7
|
-
# Alliance Auth (External Libs)
|
|
8
|
-
from app_utils.testing import NoSocketsTestCase, create_user_from_evecharacter
|
|
9
|
-
|
|
10
7
|
# AA Ledger
|
|
11
|
-
|
|
12
|
-
from ledger.tests.testdata.
|
|
13
|
-
from ledger.tests.testdata.
|
|
14
|
-
|
|
8
|
+
from ledger.tests import LedgerTestCase
|
|
9
|
+
from ledger.tests.testdata.esi_stub_openapi import EsiEndpoint, create_esi_client_stub
|
|
10
|
+
from ledger.tests.testdata.utils import (
|
|
11
|
+
create_owner_from_user,
|
|
15
12
|
)
|
|
16
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
17
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
18
13
|
|
|
19
14
|
MODULE_PATH = "ledger.managers.corporation_journal_manager"
|
|
20
15
|
|
|
16
|
+
LEDGER_CORPORATION_DIVISION_ENDPOINTS = [
|
|
17
|
+
EsiEndpoint(
|
|
18
|
+
"Wallet",
|
|
19
|
+
"GetCorporationsCorporationIdWalletsDivisionJournal",
|
|
20
|
+
"corporation_id",
|
|
21
|
+
"division",
|
|
22
|
+
),
|
|
23
|
+
EsiEndpoint(
|
|
24
|
+
"Wallet",
|
|
25
|
+
"GetCorporationsCorporationIdWallets",
|
|
26
|
+
"corporation_id",
|
|
27
|
+
),
|
|
28
|
+
EsiEndpoint(
|
|
29
|
+
"Corporation",
|
|
30
|
+
"GetCorporationsCorporationIdDivisions",
|
|
31
|
+
"corporation_id",
|
|
32
|
+
),
|
|
33
|
+
]
|
|
34
|
+
|
|
21
35
|
|
|
22
36
|
@override_settings(CELERY_ALWAYS_EAGER=True, CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
|
|
23
37
|
@patch(MODULE_PATH + ".esi")
|
|
24
|
-
class TestDivisionManager(
|
|
38
|
+
class TestDivisionManager(LedgerTestCase):
|
|
25
39
|
"""Test Division Manager for Corporation Divisions."""
|
|
26
40
|
|
|
27
41
|
@classmethod
|
|
28
42
|
def setUpClass(cls):
|
|
29
43
|
super().setUpClass()
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter(
|
|
34
|
-
1001,
|
|
35
|
-
)
|
|
36
|
-
cls.audit = create_corporationaudit_from_user(cls.user)
|
|
44
|
+
cls.audit = create_owner_from_user(user=cls.user, owner_type="corporation")
|
|
45
|
+
cls.token = cls.user_character.user.token_set.first()
|
|
46
|
+
cls.audit.get_token = MagicMock(return_value=cls.token)
|
|
37
47
|
|
|
38
48
|
def test_update_division_names(self, mock_esi):
|
|
39
|
-
|
|
40
|
-
|
|
49
|
+
"""Test updating the corporation division names.
|
|
50
|
+
|
|
51
|
+
This test verifies that the division names for a corporation are correctly updated
|
|
52
|
+
from ESI data.
|
|
53
|
+
|
|
54
|
+
### Expected Result
|
|
55
|
+
- Division names are updated correctly.
|
|
56
|
+
- Divisions have correct names.
|
|
57
|
+
"""
|
|
58
|
+
# Test Data
|
|
59
|
+
mock_esi.client = create_esi_client_stub(
|
|
60
|
+
endpoints=LEDGER_CORPORATION_DIVISION_ENDPOINTS
|
|
61
|
+
)
|
|
41
62
|
|
|
63
|
+
# Test Action
|
|
42
64
|
self.audit.update_wallet_division_names(force_refresh=False)
|
|
43
65
|
|
|
66
|
+
# Expected Results
|
|
44
67
|
obj = self.audit.ledger_corporation_division.get(
|
|
45
|
-
|
|
68
|
+
corporation__eve_corporation__corporation_id=2001, division_id=2
|
|
46
69
|
)
|
|
47
70
|
self.assertEqual(obj.name, "Rechnungen")
|
|
48
71
|
|
|
49
72
|
obj = self.audit.ledger_corporation_division.get(
|
|
50
|
-
|
|
73
|
+
corporation__eve_corporation__corporation_id=2001, division_id=4
|
|
51
74
|
)
|
|
52
75
|
self.assertEqual(obj.name, "Ship Replacment Abteilung")
|
|
53
76
|
|
|
54
77
|
obj = self.audit.ledger_corporation_division.get(
|
|
55
|
-
|
|
78
|
+
corporation__eve_corporation__corporation_id=2001, division_id=6
|
|
56
79
|
)
|
|
57
80
|
self.assertEqual(obj.name, "Partner")
|
|
58
81
|
|
|
59
82
|
def test_update_division(self, mock_esi):
|
|
60
|
-
|
|
61
|
-
|
|
83
|
+
"""
|
|
84
|
+
Test updating the corporation division balances.
|
|
85
|
+
|
|
86
|
+
This test verifies that the division balances for a corporation are correctly updated
|
|
87
|
+
from ESI data.
|
|
88
|
+
|
|
89
|
+
### Expected Result
|
|
90
|
+
- Division balances are updated correctly.
|
|
91
|
+
- Divisions have correct balances.
|
|
92
|
+
"""
|
|
93
|
+
# Test Data
|
|
94
|
+
mock_esi.client = create_esi_client_stub(
|
|
95
|
+
endpoints=LEDGER_CORPORATION_DIVISION_ENDPOINTS
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
# Test Action
|
|
62
99
|
self.audit.update_wallet_division(force_refresh=False)
|
|
63
100
|
|
|
101
|
+
# Expected Results
|
|
64
102
|
obj = self.audit.ledger_corporation_division.get(
|
|
65
|
-
|
|
103
|
+
corporation__eve_corporation__corporation_id=2001, division_id=2
|
|
66
104
|
)
|
|
67
105
|
self.assertEqual(obj.balance, 0)
|
|
68
106
|
|
|
69
107
|
obj = self.audit.ledger_corporation_division.get(
|
|
70
|
-
|
|
108
|
+
corporation__eve_corporation__corporation_id=2001, division_id=4
|
|
71
109
|
)
|
|
72
110
|
self.assertEqual(obj.balance, 1600000000)
|
|
73
111
|
|
|
74
112
|
obj = self.audit.ledger_corporation_division.get(
|
|
75
|
-
|
|
113
|
+
corporation__eve_corporation__corporation_id=2001, division_id=6
|
|
76
114
|
)
|
|
77
115
|
self.assertEqual(obj.balance, 0)
|
|
@@ -5,41 +5,36 @@ from unittest.mock import MagicMock, patch
|
|
|
5
5
|
from django.test import override_settings
|
|
6
6
|
from django.utils import timezone
|
|
7
7
|
|
|
8
|
-
# Alliance Auth (External Libs)
|
|
9
|
-
from app_utils.testing import NoSocketsTestCase
|
|
10
|
-
|
|
11
8
|
# AA Ledger
|
|
12
9
|
from ledger.models.general import EveEntity
|
|
13
|
-
from ledger.tests
|
|
14
|
-
from ledger.tests.testdata.
|
|
15
|
-
|
|
16
|
-
create_user_from_evecharacter,
|
|
17
|
-
)
|
|
18
|
-
from ledger.tests.testdata.generate_walletjournal import (
|
|
10
|
+
from ledger.tests import LedgerTestCase
|
|
11
|
+
from ledger.tests.testdata.esi_stub_openapi import EsiEndpoint, create_esi_client_stub
|
|
12
|
+
from ledger.tests.testdata.utils import (
|
|
19
13
|
create_division,
|
|
14
|
+
create_owner_from_user,
|
|
20
15
|
create_wallet_journal_entry,
|
|
21
16
|
)
|
|
22
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
23
|
-
from ledger.tests.testdata.load_eveentity import load_eveentity
|
|
24
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
25
17
|
|
|
26
18
|
MODULE_PATH = "ledger.managers.corporation_journal_manager"
|
|
27
19
|
|
|
20
|
+
LEDGER_CORPORATION_JOURNAL_ENDPOINTS = [
|
|
21
|
+
EsiEndpoint(
|
|
22
|
+
"Wallet",
|
|
23
|
+
"GetCorporationsCorporationIdWalletsDivisionJournal",
|
|
24
|
+
"corporation_id",
|
|
25
|
+
"division",
|
|
26
|
+
),
|
|
27
|
+
]
|
|
28
|
+
|
|
28
29
|
|
|
29
30
|
@override_settings(CELERY_ALWAYS_EAGER=True, CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
|
|
30
31
|
@patch(MODULE_PATH + ".esi")
|
|
31
32
|
@patch("ledger.models.general.EveEntity")
|
|
32
|
-
class TestCharacterJournalManager(
|
|
33
|
+
class TestCharacterJournalManager(LedgerTestCase):
|
|
33
34
|
@classmethod
|
|
34
35
|
def setUpClass(cls):
|
|
35
36
|
super().setUpClass()
|
|
36
|
-
|
|
37
|
-
load_eveuniverse()
|
|
38
|
-
load_eveentity()
|
|
39
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter(
|
|
40
|
-
1001,
|
|
41
|
-
)
|
|
42
|
-
cls.audit = create_corporationaudit_from_user(cls.user)
|
|
37
|
+
cls.audit = create_owner_from_user(user=cls.user, owner_type="corporation")
|
|
43
38
|
|
|
44
39
|
cls.eve_character_first_party = EveEntity.objects.get(eve_id=2001)
|
|
45
40
|
cls.eve_character_second_party = EveEntity.objects.get(eve_id=1001)
|
|
@@ -49,7 +44,7 @@ class TestCharacterJournalManager(NoSocketsTestCase):
|
|
|
49
44
|
)
|
|
50
45
|
|
|
51
46
|
cls.journal_entry = create_wallet_journal_entry(
|
|
52
|
-
|
|
47
|
+
owner_type="corporation",
|
|
53
48
|
division=cls.division,
|
|
54
49
|
context_id=1,
|
|
55
50
|
entry_id=10,
|
|
@@ -70,12 +65,24 @@ class TestCharacterJournalManager(NoSocketsTestCase):
|
|
|
70
65
|
second_party=cls.eve_character_second_party,
|
|
71
66
|
ref_type="player_donation",
|
|
72
67
|
)
|
|
73
|
-
cls.token = cls.
|
|
68
|
+
cls.token = cls.user_character.user.token_set.first()
|
|
74
69
|
cls.audit.get_token = MagicMock(return_value=cls.token)
|
|
75
70
|
|
|
76
71
|
def test_update_wallet_journal(self, mock_eveentity, mock_esi):
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
"""
|
|
73
|
+
Test updating the wallet journal for a corporation.
|
|
74
|
+
|
|
75
|
+
This test verifies that the wallet journal entries for a corporation division
|
|
76
|
+
are correctly updated from ESI data.
|
|
77
|
+
|
|
78
|
+
### Expected Result
|
|
79
|
+
- Wallet journal entries are updated correctly.
|
|
80
|
+
- Entries have correct amounts and parties.
|
|
81
|
+
"""
|
|
82
|
+
# Test Data
|
|
83
|
+
mock_esi.client = create_esi_client_stub(
|
|
84
|
+
endpoints=LEDGER_CORPORATION_JOURNAL_ENDPOINTS
|
|
85
|
+
)
|
|
79
86
|
|
|
80
87
|
mock_eveentity.objects.create_bulk_from_esi.return_value = True
|
|
81
88
|
|
|
@@ -83,8 +90,10 @@ class TestCharacterJournalManager(NoSocketsTestCase):
|
|
|
83
90
|
eve_id=9998, name="Test Character 2", category="character"
|
|
84
91
|
)
|
|
85
92
|
|
|
93
|
+
# Test Action
|
|
86
94
|
self.audit.update_wallet_journal(force_refresh=False)
|
|
87
95
|
|
|
96
|
+
# Expected Results
|
|
88
97
|
self.assertSetEqual(
|
|
89
98
|
set(
|
|
90
99
|
self.division.ledger_corporation_journal.values_list(
|
|
@@ -106,17 +115,11 @@ class TestCharacterJournalManager(NoSocketsTestCase):
|
|
|
106
115
|
self.assertEqual(obj.amount, 10000)
|
|
107
116
|
|
|
108
117
|
|
|
109
|
-
class TestCorporationJournalManagerAnnotations(
|
|
118
|
+
class TestCorporationJournalManagerAnnotations(LedgerTestCase):
|
|
110
119
|
@classmethod
|
|
111
120
|
def setUpClass(cls):
|
|
112
121
|
super().setUpClass()
|
|
113
|
-
|
|
114
|
-
load_eveuniverse()
|
|
115
|
-
load_eveentity()
|
|
116
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter(
|
|
117
|
-
1001,
|
|
118
|
-
)
|
|
119
|
-
cls.audit = create_corporationaudit_from_user(cls.user)
|
|
122
|
+
cls.audit = create_owner_from_user(user=cls.user, owner_type="corporation")
|
|
120
123
|
|
|
121
124
|
cls.eve_character_first_party = EveEntity.objects.get(eve_id=2001)
|
|
122
125
|
cls.eve_character_second_party = EveEntity.objects.get(eve_id=1001)
|
|
@@ -126,7 +129,7 @@ class TestCorporationJournalManagerAnnotations(NoSocketsTestCase):
|
|
|
126
129
|
)
|
|
127
130
|
|
|
128
131
|
cls.journal_entry = create_wallet_journal_entry(
|
|
129
|
-
|
|
132
|
+
owner_type="corporation",
|
|
130
133
|
division=cls.division,
|
|
131
134
|
context_id=1,
|
|
132
135
|
entry_id=10,
|
|
@@ -185,17 +188,11 @@ class TestCorporationJournalManagerAnnotations(NoSocketsTestCase):
|
|
|
185
188
|
self.assertEqual(obj.costs, 0)
|
|
186
189
|
|
|
187
190
|
|
|
188
|
-
class TestCorporationJournalManagerAggregate(
|
|
191
|
+
class TestCorporationJournalManagerAggregate(LedgerTestCase):
|
|
189
192
|
@classmethod
|
|
190
193
|
def setUpClass(cls):
|
|
191
194
|
super().setUpClass()
|
|
192
|
-
|
|
193
|
-
load_eveuniverse()
|
|
194
|
-
load_eveentity()
|
|
195
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter(
|
|
196
|
-
1001,
|
|
197
|
-
)
|
|
198
|
-
cls.audit = create_corporationaudit_from_user(cls.user)
|
|
195
|
+
cls.audit = create_owner_from_user(user=cls.user, owner_type="corporation")
|
|
199
196
|
|
|
200
197
|
cls.eve_character_first_party = EveEntity.objects.get(eve_id=2001)
|
|
201
198
|
cls.eve_character_second_party = EveEntity.objects.get(eve_id=1001)
|
|
@@ -205,7 +202,7 @@ class TestCorporationJournalManagerAggregate(NoSocketsTestCase):
|
|
|
205
202
|
)
|
|
206
203
|
|
|
207
204
|
cls.journal_entry = create_wallet_journal_entry(
|
|
208
|
-
|
|
205
|
+
owner_type="corporation",
|
|
209
206
|
division=cls.division,
|
|
210
207
|
context_id=1,
|
|
211
208
|
entry_id=10,
|
|
@@ -1,59 +1,119 @@
|
|
|
1
1
|
# Standard Library
|
|
2
2
|
from unittest.mock import patch
|
|
3
3
|
|
|
4
|
-
# Django
|
|
5
|
-
from django.test import TestCase
|
|
6
|
-
|
|
7
|
-
# Alliance Auth (External Libs)
|
|
8
|
-
from app_utils.testing import NoSocketsTestCase
|
|
9
|
-
|
|
10
4
|
# AA Ledger
|
|
11
5
|
from ledger.models.general import EveEntity
|
|
12
|
-
from ledger.tests
|
|
13
|
-
from ledger.tests.testdata.
|
|
14
|
-
from ledger.tests.testdata.load_eveentity import load_eveentity
|
|
15
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
6
|
+
from ledger.tests import LedgerTestCase
|
|
7
|
+
from ledger.tests.testdata.esi_stub_openapi import EsiEndpoint, create_esi_client_stub
|
|
16
8
|
|
|
17
9
|
MODULE_PATH = "ledger.managers.general_manager"
|
|
18
10
|
|
|
11
|
+
LEDGER_EVE_ENTITY_ENDPOINTS = [
|
|
12
|
+
EsiEndpoint("Universe", "PostUniverseNames", "ids"),
|
|
13
|
+
EsiEndpoint("Universe", "GetUniverseNames", "ids"),
|
|
14
|
+
]
|
|
15
|
+
|
|
19
16
|
|
|
20
|
-
class TestGeneralManager(
|
|
17
|
+
class TestGeneralManager(LedgerTestCase):
|
|
21
18
|
@classmethod
|
|
22
19
|
def setUpClass(cls):
|
|
23
20
|
super().setUpClass()
|
|
24
|
-
load_allianceauth()
|
|
25
|
-
load_eveuniverse()
|
|
26
|
-
load_eveentity()
|
|
27
|
-
|
|
28
21
|
cls.manager = EveEntity.objects
|
|
29
22
|
|
|
30
23
|
@patch("ledger.managers.general_manager.esi")
|
|
31
24
|
def test_get_or_create_esi_existing(self, mock_esi):
|
|
25
|
+
"""
|
|
26
|
+
Test retrieving an existing EveEntity from the database.
|
|
27
|
+
|
|
28
|
+
This test verifies that an existing EveEntity is correctly retrieved
|
|
29
|
+
from the database without making an ESI API call. It checks that the
|
|
30
|
+
entity has the expected eve_id and that the created flag is set to False.
|
|
31
|
+
|
|
32
|
+
### Expected Result
|
|
33
|
+
- EveEntity is retrieved correctly.
|
|
34
|
+
- Entity has correct eve_id.
|
|
35
|
+
- Created flag is False.
|
|
36
|
+
"""
|
|
37
|
+
# Test Data
|
|
32
38
|
entity = EveEntity.objects.get(eve_id=1001)
|
|
39
|
+
|
|
40
|
+
# Test Action
|
|
33
41
|
result, created = self.manager.get_or_create_esi(eve_id=1001)
|
|
42
|
+
|
|
43
|
+
# Expected Results
|
|
34
44
|
self.assertEqual(result, entity)
|
|
35
45
|
self.assertFalse(created)
|
|
36
46
|
|
|
37
47
|
@patch("ledger.managers.general_manager.esi")
|
|
38
48
|
def test_get_or_create_esi_new(self, mock_esi):
|
|
39
|
-
|
|
49
|
+
"""
|
|
50
|
+
Test creating a new EveEntity from ESI data.
|
|
51
|
+
|
|
52
|
+
This test verifies that a new EveEntity is correctly created
|
|
53
|
+
based on data fetched from the ESI API. It checks that the entity has the
|
|
54
|
+
expected eve_id and name, and that the created flag is set to True.
|
|
55
|
+
|
|
56
|
+
### Expected Result
|
|
57
|
+
- EveEntity is created correctly.
|
|
58
|
+
- Entity has correct eve_id and name.
|
|
59
|
+
- Created flag is True.
|
|
60
|
+
"""
|
|
61
|
+
# Test Data
|
|
62
|
+
mock_esi.client = create_esi_client_stub(endpoints=LEDGER_EVE_ENTITY_ENDPOINTS)
|
|
63
|
+
|
|
64
|
+
# Test Action
|
|
40
65
|
result, created = self.manager.get_or_create_esi(eve_id=9996)
|
|
66
|
+
|
|
67
|
+
# Expected Results
|
|
41
68
|
self.assertEqual(result.eve_id, 9996)
|
|
42
69
|
self.assertEqual(result.name, "Create Character")
|
|
43
70
|
self.assertTrue(created)
|
|
44
71
|
|
|
45
72
|
@patch("ledger.managers.general_manager.esi")
|
|
46
73
|
def test_create_bulk_from_esi(self, mock_esi):
|
|
47
|
-
|
|
74
|
+
"""
|
|
75
|
+
Test bulk creation of EveEntity objects from ESI data.
|
|
76
|
+
|
|
77
|
+
This test verifies that multiple EveEntity objects are correctly created
|
|
78
|
+
based on data fetched from the ESI API. It checks that the entities with
|
|
79
|
+
the specified eve_ids exist in the database after the operation.
|
|
80
|
+
|
|
81
|
+
### Expected Result
|
|
82
|
+
- Multiple EveEntity objects are created correctly.
|
|
83
|
+
- Entities with specified eve_ids exist in the database.
|
|
84
|
+
"""
|
|
85
|
+
# Test Data
|
|
86
|
+
mock_esi.client = create_esi_client_stub(endpoints=LEDGER_EVE_ENTITY_ENDPOINTS)
|
|
87
|
+
|
|
88
|
+
# Test Action
|
|
48
89
|
result = self.manager.create_bulk_from_esi([9997, 9998])
|
|
90
|
+
|
|
91
|
+
# Expected Results
|
|
49
92
|
self.assertTrue(result)
|
|
50
93
|
self.assertTrue(EveEntity.objects.filter(eve_id=9997).exists())
|
|
51
94
|
self.assertTrue(EveEntity.objects.filter(eve_id=9998).exists())
|
|
52
95
|
|
|
53
96
|
@patch("ledger.managers.general_manager.esi")
|
|
54
97
|
def test_update_or_create_esi(self, mock_esi):
|
|
55
|
-
|
|
98
|
+
"""
|
|
99
|
+
Test updating or creating an EveEntity from ESI data.
|
|
100
|
+
|
|
101
|
+
This test verifies that the EveEntity is correctly updated or created
|
|
102
|
+
based on data fetched from the ESI API. It checks that the entity has the
|
|
103
|
+
expected eve_id and name, and that the created flag is set to True.
|
|
104
|
+
|
|
105
|
+
### Expected Result
|
|
106
|
+
- EveEntity is updated or created correctly.
|
|
107
|
+
- Entity has correct eve_id and name.
|
|
108
|
+
- Created flag is True.
|
|
109
|
+
"""
|
|
110
|
+
# Test Data
|
|
111
|
+
mock_esi.client = create_esi_client_stub(endpoints=LEDGER_EVE_ENTITY_ENDPOINTS)
|
|
112
|
+
|
|
113
|
+
# Test Action
|
|
56
114
|
result, created = self.manager.update_or_create_esi(eve_id=9999)
|
|
115
|
+
|
|
116
|
+
# Expected Results
|
|
57
117
|
self.assertEqual(result.eve_id, 9999)
|
|
58
118
|
self.assertEqual(result.name, "New Test Character")
|
|
59
119
|
self.assertTrue(created)
|
|
@@ -1,54 +1,79 @@
|
|
|
1
1
|
# Standard Library
|
|
2
2
|
from sys import audit
|
|
3
|
-
from unittest.mock import
|
|
3
|
+
from unittest.mock import MagicMock, patch
|
|
4
4
|
|
|
5
5
|
# Django
|
|
6
6
|
from django.test import override_settings
|
|
7
7
|
|
|
8
8
|
# Alliance Auth (External Libs)
|
|
9
|
-
from
|
|
9
|
+
from eveuniverse.models import EveType
|
|
10
10
|
|
|
11
11
|
# AA Ledger
|
|
12
|
-
from ledger.tests
|
|
13
|
-
from ledger.tests.testdata.
|
|
14
|
-
|
|
15
|
-
)
|
|
16
|
-
from ledger.tests.testdata.generate_planets import create_character_planet
|
|
17
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
18
|
-
from ledger.tests.testdata.load_eveentity import load_eveentity
|
|
19
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
12
|
+
from ledger.tests import LedgerTestCase
|
|
13
|
+
from ledger.tests.testdata.esi_stub_openapi import EsiEndpoint, create_esi_client_stub
|
|
14
|
+
from ledger.tests.testdata.utils import create_character_planet, create_owner_from_user
|
|
20
15
|
|
|
21
16
|
MODULE_PATH = "ledger.managers.character_planetary_manager"
|
|
22
17
|
|
|
18
|
+
LEDGER_CHARACTER_PLANETARY_ENDPOINTS = [
|
|
19
|
+
EsiEndpoint(
|
|
20
|
+
"Planetary_Interaction", "GetCharactersCharacterIdPlanets", "character_id"
|
|
21
|
+
),
|
|
22
|
+
EsiEndpoint(
|
|
23
|
+
"Planetary_Interaction",
|
|
24
|
+
"GetCharactersCharacterIdPlanetsPlanetId",
|
|
25
|
+
"character_id",
|
|
26
|
+
"planet_id",
|
|
27
|
+
),
|
|
28
|
+
]
|
|
29
|
+
|
|
23
30
|
|
|
24
31
|
@override_settings(CELERY_ALWAYS_EAGER=True, CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
|
|
25
32
|
@patch(MODULE_PATH + ".esi")
|
|
26
|
-
class TestPlanetaryManager(
|
|
33
|
+
class TestPlanetaryManager(LedgerTestCase):
|
|
27
34
|
@classmethod
|
|
28
35
|
def setUpClass(cls):
|
|
29
36
|
super().setUpClass()
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
cls.audit = create_characteraudit_from_evecharacter(1001)
|
|
37
|
+
cls.audit = create_owner_from_user(user=cls.user)
|
|
38
|
+
cls.token = cls.user_character.user.token_set.first()
|
|
39
|
+
cls.audit.get_token = MagicMock(return_value=cls.token)
|
|
34
40
|
|
|
35
41
|
def test_update_planets(self, mock_esi):
|
|
36
|
-
|
|
37
|
-
|
|
42
|
+
"""
|
|
43
|
+
Test updating the character planetary data.
|
|
44
|
+
|
|
45
|
+
This test verifies that the planetary data for a character is correctly updated
|
|
46
|
+
from ESI data. It checks that the planets have the expected upgrade levels and
|
|
47
|
+
number of pins.
|
|
48
|
+
|
|
49
|
+
### Expected Result
|
|
50
|
+
- Planetary data is updated correctly.
|
|
51
|
+
- Planets have correct upgrade levels and number of pins.
|
|
52
|
+
"""
|
|
53
|
+
# Test Data
|
|
54
|
+
mock_esi.client = create_esi_client_stub(
|
|
55
|
+
endpoints=LEDGER_CHARACTER_PLANETARY_ENDPOINTS
|
|
56
|
+
)
|
|
38
57
|
|
|
58
|
+
# Test Action
|
|
39
59
|
self.audit.update_planets(force_refresh=False)
|
|
40
60
|
|
|
61
|
+
# Excepted Results
|
|
41
62
|
self.assertSetEqual(
|
|
42
|
-
set(
|
|
63
|
+
set(
|
|
64
|
+
self.audit.ledger_character_planet.values_list(
|
|
65
|
+
"eve_planet_id", flat=True
|
|
66
|
+
)
|
|
67
|
+
),
|
|
43
68
|
{4001, 4002},
|
|
44
69
|
)
|
|
45
|
-
obj = self.audit.ledger_character_planet.get(
|
|
46
|
-
self.assertEqual(obj.
|
|
70
|
+
obj = self.audit.ledger_character_planet.get(eve_planet_id=4001)
|
|
71
|
+
self.assertEqual(obj.eve_planet_id, 4001)
|
|
47
72
|
self.assertEqual(obj.upgrade_level, 5)
|
|
48
73
|
self.assertEqual(obj.num_pins, 5)
|
|
49
74
|
|
|
50
|
-
obj = self.audit.ledger_character_planet.get(
|
|
51
|
-
self.assertEqual(obj.
|
|
75
|
+
obj = self.audit.ledger_character_planet.get(eve_planet_id=4002)
|
|
76
|
+
self.assertEqual(obj.eve_planet_id, 4002)
|
|
52
77
|
self.assertEqual(obj.upgrade_level, 5)
|
|
53
78
|
self.assertEqual(obj.num_pins, 5)
|
|
54
79
|
|
|
@@ -56,29 +81,45 @@ class TestPlanetaryManager(NoSocketsTestCase):
|
|
|
56
81
|
@override_settings(CELERY_ALWAYS_EAGER=True, CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
|
|
57
82
|
@patch(MODULE_PATH + ".EveType.objects.get_or_create_esi")
|
|
58
83
|
@patch(MODULE_PATH + ".esi")
|
|
59
|
-
class TestPlanetaryDetailsManager(
|
|
84
|
+
class TestPlanetaryDetailsManager(LedgerTestCase):
|
|
85
|
+
"""Test Planetary Details Manager for Character Planets."""
|
|
86
|
+
|
|
60
87
|
@classmethod
|
|
61
88
|
def setUpClass(cls):
|
|
62
89
|
super().setUpClass()
|
|
63
|
-
|
|
64
|
-
load_eveuniverse()
|
|
65
|
-
load_eveentity()
|
|
66
|
-
cls.audit = create_characteraudit_from_evecharacter(1001)
|
|
90
|
+
cls.audit = create_owner_from_user(user=cls.user)
|
|
67
91
|
cls.planet = create_character_planet(
|
|
68
|
-
|
|
92
|
+
owner=cls.audit, planet_id=4001, upgrade_level=5, num_pins=5
|
|
69
93
|
)
|
|
94
|
+
cls.token = cls.user_character.user.token_set.first()
|
|
95
|
+
cls.audit.get_token = MagicMock(return_value=cls.token)
|
|
70
96
|
|
|
71
97
|
def test_update_planets_details(self, mock_esi, mock_get_or_create_esi):
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
98
|
+
"""
|
|
99
|
+
Test updating the character planetary details.
|
|
100
|
+
|
|
101
|
+
This test verifies that the planetary details for a character's planet are correctly updated
|
|
102
|
+
from ESI data. It checks that the planet details are created with the expected planet IDs.
|
|
103
|
+
|
|
104
|
+
### Expected Result
|
|
105
|
+
- Planetary details are updated correctly.
|
|
106
|
+
- Planet details have correct planet IDs.
|
|
107
|
+
"""
|
|
108
|
+
# Test Data
|
|
109
|
+
mock_esi.client = create_esi_client_stub(
|
|
110
|
+
endpoints=LEDGER_CHARACTER_PLANETARY_ENDPOINTS
|
|
111
|
+
)
|
|
112
|
+
eve_type = EveType.objects.get(id=2268)
|
|
113
|
+
mock_get_or_create_esi.return_value = (eve_type, True)
|
|
75
114
|
|
|
115
|
+
# Test Action
|
|
76
116
|
self.audit.update_planets_details(force_refresh=False)
|
|
77
117
|
|
|
118
|
+
# Excepted Results
|
|
78
119
|
self.assertSetEqual(
|
|
79
120
|
set(
|
|
80
121
|
self.audit.ledger_character_planet_details.values_list(
|
|
81
|
-
"
|
|
122
|
+
"planet__eve_planet_id", flat=True
|
|
82
123
|
)
|
|
83
124
|
),
|
|
84
125
|
{4001},
|