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,36 @@
|
|
|
1
|
-
# Standard Library
|
|
2
|
-
from unittest.mock import PropertyMock, patch
|
|
3
|
-
|
|
4
1
|
# Django
|
|
5
|
-
from django.test import
|
|
2
|
+
from django.test import TestCase
|
|
6
3
|
from django.utils import timezone
|
|
7
4
|
|
|
8
5
|
# AA Ledger
|
|
9
|
-
from ledger.models.characteraudit import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
from ledger.models.characteraudit import (
|
|
7
|
+
CharacterOwner,
|
|
8
|
+
CharacterUpdateSection,
|
|
9
|
+
CharacterUpdateStatus,
|
|
10
|
+
)
|
|
11
|
+
from ledger.models.helpers.update_manager import UpdateStatus
|
|
12
|
+
from ledger.tests import LedgerTestCase
|
|
13
|
+
from ledger.tests.testdata.utils import (
|
|
14
|
+
create_owner_from_user,
|
|
13
15
|
create_update_status,
|
|
14
|
-
create_user_from_evecharacter_with_access,
|
|
15
16
|
)
|
|
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
17
|
|
|
20
18
|
MODULE_PATH = "ledger.models.characteraudit"
|
|
21
19
|
|
|
22
20
|
|
|
23
|
-
class TestCharacterWalletJournalModel(
|
|
21
|
+
class TestCharacterWalletJournalModel(LedgerTestCase):
|
|
24
22
|
@classmethod
|
|
25
23
|
def setUpClass(cls):
|
|
26
24
|
super().setUpClass()
|
|
27
|
-
load_allianceauth()
|
|
28
|
-
load_eveuniverse()
|
|
29
|
-
load_eveentity()
|
|
30
25
|
|
|
31
|
-
cls.
|
|
32
|
-
|
|
33
|
-
)
|
|
34
|
-
cls.audit = add_characteraudit_character_to_user(
|
|
35
|
-
cls.user, cls.character_ownership.character.character_id
|
|
36
|
-
)
|
|
37
|
-
sections = CharacterAudit.UpdateSection.get_sections()
|
|
26
|
+
cls.owner = create_owner_from_user(cls.user, owner_type="character")
|
|
27
|
+
sections = CharacterUpdateSection.get_sections()
|
|
38
28
|
for section in sections:
|
|
39
29
|
create_update_status(
|
|
40
|
-
cls.
|
|
30
|
+
owner=cls.owner,
|
|
41
31
|
section=section,
|
|
42
|
-
is_success=True,
|
|
43
32
|
error_message="",
|
|
33
|
+
is_success=True,
|
|
44
34
|
has_token_error=False,
|
|
45
35
|
last_run_at=timezone.now(),
|
|
46
36
|
last_run_finished_at=timezone.now(),
|
|
@@ -48,21 +38,27 @@ class TestCharacterWalletJournalModel(TestCase):
|
|
|
48
38
|
last_update_finished_at=timezone.now(),
|
|
49
39
|
)
|
|
50
40
|
cls.update_status_wallet = CharacterUpdateStatus.objects.get(
|
|
51
|
-
|
|
52
|
-
section=
|
|
41
|
+
owner=cls.owner,
|
|
42
|
+
section=CharacterUpdateSection.WALLET_JOURNAL,
|
|
53
43
|
)
|
|
54
44
|
cls.update_status_mining_ledger = CharacterUpdateStatus.objects.get(
|
|
55
|
-
|
|
56
|
-
section=
|
|
45
|
+
owner=cls.owner,
|
|
46
|
+
section=CharacterUpdateSection.MINING_LEDGER,
|
|
57
47
|
)
|
|
58
48
|
|
|
59
49
|
def test_str(self):
|
|
60
|
-
excepted_str =
|
|
61
|
-
self.assertEqual(self.
|
|
50
|
+
excepted_str = CharacterOwner.objects.get(id=self.owner.id)
|
|
51
|
+
self.assertEqual(self.owner, excepted_str)
|
|
62
52
|
|
|
63
53
|
def test_get_esi_scopes(self):
|
|
54
|
+
"""
|
|
55
|
+
Test retrieval of ESI scopes for CharacterOwner.
|
|
56
|
+
|
|
57
|
+
### Expected Result
|
|
58
|
+
- Correct list of ESI scopes is returned.
|
|
59
|
+
"""
|
|
64
60
|
self.assertEqual(
|
|
65
|
-
self.
|
|
61
|
+
self.owner.get_esi_scopes(),
|
|
66
62
|
[
|
|
67
63
|
# Mining Ledger
|
|
68
64
|
"esi-industry.read_character_mining.v1",
|
|
@@ -75,77 +71,65 @@ class TestCharacterWalletJournalModel(TestCase):
|
|
|
75
71
|
)
|
|
76
72
|
|
|
77
73
|
def test_get_status_states(self):
|
|
74
|
+
"""
|
|
75
|
+
Test various states of get_status property.
|
|
76
|
+
|
|
77
|
+
### Expected Results:
|
|
78
|
+
- OK
|
|
79
|
+
- DISABLED
|
|
80
|
+
- TOKEN_ERROR
|
|
81
|
+
- ERROR
|
|
82
|
+
- INCOMPLETE
|
|
83
|
+
"""
|
|
84
|
+
# Test Data - OK
|
|
78
85
|
update_status = self.update_status_wallet
|
|
79
|
-
audit = self.
|
|
86
|
+
audit = self.owner
|
|
80
87
|
|
|
88
|
+
# Expected Result
|
|
81
89
|
self.assertEqual(
|
|
82
|
-
self.
|
|
83
|
-
|
|
90
|
+
self.owner.get_status,
|
|
91
|
+
UpdateStatus.OK,
|
|
84
92
|
)
|
|
85
93
|
|
|
94
|
+
# Test Data - DISABLED
|
|
86
95
|
audit.active = False
|
|
87
96
|
audit.save()
|
|
88
97
|
|
|
98
|
+
# Expected Result
|
|
89
99
|
self.assertEqual(
|
|
90
|
-
self.
|
|
91
|
-
|
|
100
|
+
self.owner.get_status,
|
|
101
|
+
UpdateStatus.DISABLED,
|
|
92
102
|
)
|
|
93
103
|
|
|
104
|
+
# Test Data - TOKEN_ERROR
|
|
94
105
|
audit.active = True
|
|
95
106
|
audit.save()
|
|
96
107
|
update_status.is_success = False
|
|
97
108
|
update_status.has_token_error = True
|
|
98
109
|
update_status.save()
|
|
99
110
|
|
|
111
|
+
# Expected Result
|
|
100
112
|
self.assertEqual(
|
|
101
|
-
self.
|
|
102
|
-
|
|
113
|
+
self.owner.get_status,
|
|
114
|
+
UpdateStatus.TOKEN_ERROR,
|
|
103
115
|
)
|
|
104
116
|
|
|
117
|
+
# Test Data - ERROR
|
|
105
118
|
audit.active = True
|
|
106
119
|
audit.save()
|
|
107
120
|
update_status.is_success = False
|
|
108
121
|
update_status.has_token_error = False
|
|
109
122
|
update_status.save()
|
|
110
123
|
|
|
124
|
+
# Expected Result
|
|
111
125
|
self.assertEqual(
|
|
112
|
-
self.
|
|
113
|
-
|
|
126
|
+
self.owner.get_status,
|
|
127
|
+
UpdateStatus.ERROR,
|
|
114
128
|
)
|
|
115
|
-
|
|
116
129
|
update_status.delete()
|
|
117
130
|
|
|
131
|
+
# Test Data - INCOMPLETE
|
|
118
132
|
self.assertEqual(
|
|
119
|
-
self.
|
|
120
|
-
|
|
121
|
-
)
|
|
122
|
-
|
|
123
|
-
def test_reset_has_token_error(self):
|
|
124
|
-
audit = self.audit
|
|
125
|
-
|
|
126
|
-
self.assertEqual(
|
|
127
|
-
audit.reset_has_token_error(),
|
|
128
|
-
False,
|
|
129
|
-
)
|
|
130
|
-
|
|
131
|
-
self.update_status_mining_ledger.has_token_error = True
|
|
132
|
-
self.update_status_mining_ledger.save()
|
|
133
|
-
|
|
134
|
-
self.assertEqual(
|
|
135
|
-
audit.reset_has_token_error(),
|
|
136
|
-
True,
|
|
137
|
-
)
|
|
138
|
-
|
|
139
|
-
def test_reset_update_status(self):
|
|
140
|
-
# given
|
|
141
|
-
audit = self.audit
|
|
142
|
-
# when
|
|
143
|
-
update_status = audit.reset_update_status("mining_ledger")
|
|
144
|
-
# then
|
|
145
|
-
self.assertEqual(
|
|
146
|
-
update_status,
|
|
147
|
-
CharacterUpdateStatus.objects.get(
|
|
148
|
-
character=audit,
|
|
149
|
-
section="mining_ledger",
|
|
150
|
-
),
|
|
133
|
+
self.owner.get_status,
|
|
134
|
+
UpdateStatus.INCOMPLETE,
|
|
151
135
|
)
|
|
@@ -3,7 +3,6 @@ from types import SimpleNamespace
|
|
|
3
3
|
from unittest.mock import patch
|
|
4
4
|
|
|
5
5
|
# Django
|
|
6
|
-
from django.test import TestCase
|
|
7
6
|
from django.utils import timezone
|
|
8
7
|
|
|
9
8
|
# Alliance Auth (External Libs)
|
|
@@ -11,32 +10,20 @@ from eveuniverse.models import EveMarketPrice, EveSolarSystem, EveType
|
|
|
11
10
|
|
|
12
11
|
# AA Ledger
|
|
13
12
|
from ledger.models.characteraudit import CharacterMiningLedger
|
|
14
|
-
from ledger.tests
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
from ledger.tests import LedgerTestCase
|
|
14
|
+
from ledger.tests.testdata.utils import (
|
|
15
|
+
create_miningledger,
|
|
16
|
+
create_owner_from_user,
|
|
17
17
|
)
|
|
18
|
-
from ledger.tests.testdata.generate_miningledger import create_miningledger
|
|
19
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
20
|
-
from ledger.tests.testdata.load_eveentity import load_eveentity
|
|
21
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
22
18
|
|
|
23
19
|
MODULE_PATH = "ledger.models.characteraudit"
|
|
24
20
|
|
|
25
21
|
|
|
26
|
-
class TestCharacterMiningLedgerModel(
|
|
22
|
+
class TestCharacterMiningLedgerModel(LedgerTestCase):
|
|
27
23
|
@classmethod
|
|
28
24
|
def setUpClass(cls):
|
|
29
25
|
super().setUpClass()
|
|
30
|
-
|
|
31
|
-
load_eveuniverse()
|
|
32
|
-
load_eveentity()
|
|
33
|
-
|
|
34
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter_with_access(
|
|
35
|
-
1001,
|
|
36
|
-
)
|
|
37
|
-
cls.audit = add_characteraudit_character_to_user(
|
|
38
|
-
cls.user, cls.character_ownership.character.character_id
|
|
39
|
-
)
|
|
26
|
+
cls.audit = create_owner_from_user(cls.user, owner_type="character")
|
|
40
27
|
cls.eve_type = EveType.objects.get(id=17425)
|
|
41
28
|
cls.eve_system = EveSolarSystem.objects.get(id=30004783)
|
|
42
29
|
|
|
@@ -79,30 +66,37 @@ class TestCharacterMiningLedgerModel(TestCase):
|
|
|
79
66
|
)
|
|
80
67
|
|
|
81
68
|
def test_str(self):
|
|
69
|
+
"""Test string representation of CharacterMiningLedger."""
|
|
82
70
|
self.assertEqual(str(self.miningentry), f"{self.audit} 1")
|
|
83
71
|
|
|
84
72
|
def test_create_primary_key(self):
|
|
85
|
-
|
|
73
|
+
"""Test creation of primary key for CharacterMiningLedger."""
|
|
74
|
+
# Test Data
|
|
86
75
|
primary_key = CharacterMiningLedger.create_primary_key(
|
|
87
76
|
self.audit.eve_character.character_id, self.miningrecord
|
|
88
77
|
)
|
|
89
|
-
#
|
|
78
|
+
# Expected Result
|
|
90
79
|
self.assertEqual(primary_key, "20240101-1-1001-1")
|
|
91
80
|
|
|
92
81
|
def test_get_npc_price(self):
|
|
93
|
-
|
|
82
|
+
"""Test retrieval of NPC price for CharacterMiningLedger."""
|
|
83
|
+
# Test Data
|
|
94
84
|
npc_price = self.miningentry2.get_npc_price()
|
|
95
|
-
|
|
85
|
+
|
|
86
|
+
# Expected Result
|
|
96
87
|
self.assertIsNotNone(npc_price)
|
|
97
88
|
self.assertEqual(npc_price, 100)
|
|
98
89
|
|
|
99
90
|
@patch(MODULE_PATH + ".cache.get", return_value=False)
|
|
100
91
|
@patch(MODULE_PATH + ".EveMarketPrice.objects.update_from_esi")
|
|
101
92
|
def test_update_evemarket_price(self, mock_market_price, mock_cache_get):
|
|
102
|
-
|
|
93
|
+
"""Test updating Eve market price for CharacterMiningLedger."""
|
|
94
|
+
# Test Data
|
|
103
95
|
mock_market_price.return_value = 1337
|
|
104
|
-
|
|
96
|
+
|
|
97
|
+
# Test Action
|
|
105
98
|
updated = self.miningentry.update_evemarket_price()
|
|
106
|
-
|
|
99
|
+
|
|
100
|
+
# Expected Result
|
|
107
101
|
self.assertTrue(mock_market_price.called)
|
|
108
102
|
self.assertEqual(updated, 1337)
|
|
@@ -1,51 +1,26 @@
|
|
|
1
|
-
# Standard Library
|
|
2
|
-
from unittest.mock import PropertyMock, patch
|
|
3
|
-
|
|
4
1
|
# Django
|
|
5
|
-
from django.contrib.auth.models import Permission
|
|
6
|
-
from django.test import TestCase
|
|
7
2
|
from django.utils import timezone
|
|
8
3
|
|
|
9
|
-
# Alliance Auth
|
|
10
|
-
from allianceauth.eveonline.models import EveCharacter
|
|
11
|
-
|
|
12
4
|
# AA Ledger
|
|
13
|
-
from ledger.models.corporationaudit import (
|
|
14
|
-
CorporationAudit,
|
|
15
|
-
)
|
|
16
5
|
from ledger.models.general import EveEntity
|
|
17
|
-
from ledger.tests
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
)
|
|
21
|
-
from ledger.tests.testdata.generate_walletjournal import (
|
|
6
|
+
from ledger.tests import LedgerTestCase
|
|
7
|
+
from ledger.tests.testdata.utils import (
|
|
8
|
+
create_owner_from_user,
|
|
22
9
|
create_wallet_journal_entry,
|
|
23
10
|
)
|
|
24
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
25
|
-
from ledger.tests.testdata.load_eveentity import load_eveentity
|
|
26
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
27
11
|
|
|
28
|
-
MODULE_PATH = "ledger.models.
|
|
12
|
+
MODULE_PATH = "ledger.models.characteraudit"
|
|
29
13
|
|
|
30
14
|
|
|
31
|
-
class TestCharacterWalletJournalModel(
|
|
15
|
+
class TestCharacterWalletJournalModel(LedgerTestCase):
|
|
32
16
|
@classmethod
|
|
33
17
|
def setUpClass(cls):
|
|
34
18
|
super().setUpClass()
|
|
35
|
-
|
|
36
|
-
load_eveuniverse()
|
|
37
|
-
load_eveentity()
|
|
38
|
-
|
|
39
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter_with_access(
|
|
40
|
-
1001,
|
|
41
|
-
)
|
|
42
|
-
cls.audit = add_characteraudit_character_to_user(
|
|
43
|
-
cls.user, cls.character_ownership.character.character_id
|
|
44
|
-
)
|
|
19
|
+
cls.audit = create_owner_from_user(cls.user, owner_type="character")
|
|
45
20
|
cls.eve_character_first_party = EveEntity.objects.get(eve_id=1001)
|
|
46
21
|
cls.eve_character_second_party = EveEntity.objects.get(eve_id=1002)
|
|
47
22
|
cls.journal_entry = create_wallet_journal_entry(
|
|
48
|
-
|
|
23
|
+
owner_type="character",
|
|
49
24
|
character=cls.audit,
|
|
50
25
|
entry_id=1,
|
|
51
26
|
amount=1000,
|
|
@@ -67,12 +42,14 @@ class TestCharacterWalletJournalModel(TestCase):
|
|
|
67
42
|
)
|
|
68
43
|
|
|
69
44
|
def test_str(self):
|
|
45
|
+
"""Test the string representation of CharacterWalletJournalEntry."""
|
|
70
46
|
self.assertEqual(
|
|
71
47
|
str(self.journal_entry),
|
|
72
48
|
f"Character Wallet Journal: RefType: test - {self.eve_character_first_party.name} -> {self.eve_character_second_party.name}: 1000 ISK",
|
|
73
49
|
)
|
|
74
50
|
|
|
75
|
-
def
|
|
51
|
+
def test_get_visible_should_get_list_with_entries(self):
|
|
52
|
+
"""Test get_visible method with entries."""
|
|
76
53
|
self.assertEqual(
|
|
77
54
|
list(self.journal_entry.get_visible(self.user)), [self.journal_entry]
|
|
78
55
|
)
|
|
@@ -1,43 +1,36 @@
|
|
|
1
|
-
# Django
|
|
2
|
-
from django.contrib.auth.models import Permission
|
|
3
|
-
from django.test import TestCase
|
|
4
|
-
|
|
5
|
-
# Alliance Auth
|
|
6
|
-
from allianceauth.tests.auth_utils import AuthUtils
|
|
7
|
-
|
|
8
1
|
# AA Ledger
|
|
9
|
-
from ledger.models.corporationaudit import
|
|
10
|
-
from ledger.tests
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
from ledger.models.corporationaudit import CorporationOwner
|
|
3
|
+
from ledger.tests import LedgerTestCase
|
|
4
|
+
from ledger.tests.testdata.utils import (
|
|
5
|
+
add_new_permission_to_user,
|
|
6
|
+
create_owner_from_user,
|
|
13
7
|
)
|
|
14
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
15
8
|
|
|
16
9
|
MODULE_PATH = "ledger.models.corporationaudit"
|
|
17
10
|
|
|
18
11
|
|
|
19
|
-
class TestCorporationAuditModel(
|
|
12
|
+
class TestCorporationAuditModel(LedgerTestCase):
|
|
20
13
|
@classmethod
|
|
21
14
|
def setUpClass(cls):
|
|
22
15
|
super().setUpClass()
|
|
23
|
-
load_allianceauth()
|
|
24
16
|
|
|
25
|
-
cls.user
|
|
26
|
-
|
|
27
|
-
)
|
|
28
|
-
cls.user2, cls.character_ownership2 = create_user_from_evecharacter(
|
|
29
|
-
1002, permissions=["ledger.basic_access"]
|
|
30
|
-
)
|
|
31
|
-
cls.audit = create_corporationaudit_from_user(cls.user)
|
|
32
|
-
cls.audit2 = create_corporationaudit_from_user(cls.user2)
|
|
17
|
+
cls.owner = create_owner_from_user(user=cls.user, owner_type="corporation")
|
|
18
|
+
cls.owner2 = create_owner_from_user(user=cls.user2, owner_type="corporation")
|
|
33
19
|
|
|
34
20
|
def test_str(self):
|
|
35
|
-
|
|
36
|
-
|
|
21
|
+
"""Test the string representation of CorporationOwner."""
|
|
22
|
+
expected_str = CorporationOwner.objects.get(id=self.owner.pk)
|
|
23
|
+
self.assertEqual(self.owner, expected_str)
|
|
37
24
|
|
|
38
25
|
def test_get_esi_scopes(self):
|
|
26
|
+
"""
|
|
27
|
+
Test the ESI scopes for CorporationOwner.
|
|
28
|
+
|
|
29
|
+
### Expected Result
|
|
30
|
+
- Correct list of ESI scopes is returned.
|
|
31
|
+
"""
|
|
39
32
|
self.assertEqual(
|
|
40
|
-
self.
|
|
33
|
+
self.owner.get_esi_scopes(),
|
|
41
34
|
[
|
|
42
35
|
# General
|
|
43
36
|
"esi-search.search_structures.v1",
|
|
@@ -53,16 +46,29 @@ class TestCorporationAuditModel(TestCase):
|
|
|
53
46
|
],
|
|
54
47
|
)
|
|
55
48
|
|
|
56
|
-
def
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
def test_visible_to_should_not_include_any_corporations(self):
|
|
50
|
+
"""
|
|
51
|
+
Test access permissions for CorporationOwner without permissions.
|
|
52
|
+
|
|
53
|
+
### Expected Result
|
|
54
|
+
- User without permissions cannot access any corporations.
|
|
55
|
+
"""
|
|
56
|
+
corporation = CorporationOwner.objects.visible_to(self.user)
|
|
57
|
+
self.assertNotIn(self.owner, corporation)
|
|
58
|
+
self.assertNotIn(self.owner2, corporation)
|
|
59
|
+
|
|
60
|
+
def test_visible_to_should_include_own_corporation_only(self):
|
|
61
|
+
"""
|
|
62
|
+
Test access permissions for CorporationOwner with own corporation permission.
|
|
60
63
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
### Expected Result
|
|
65
|
+
- User with own corporation permission can access their own corporation only.
|
|
66
|
+
- User can not access other corporations.
|
|
67
|
+
"""
|
|
68
|
+
self.user = add_new_permission_to_user(
|
|
69
|
+
user=self.user, permission_name="ledger.advanced_access"
|
|
64
70
|
)
|
|
65
71
|
self.user.refresh_from_db()
|
|
66
|
-
corporation =
|
|
67
|
-
self.assertIn(self.
|
|
68
|
-
self.assertNotIn(self.
|
|
72
|
+
corporation = CorporationOwner.objects.visible_to(self.user)
|
|
73
|
+
self.assertIn(self.owner, corporation)
|
|
74
|
+
self.assertNotIn(self.owner2, corporation)
|
|
@@ -1,54 +1,33 @@
|
|
|
1
|
-
# Standard Library
|
|
2
|
-
from unittest.mock import PropertyMock, patch
|
|
3
|
-
|
|
4
1
|
# Django
|
|
5
|
-
from django.contrib.auth.models import Permission
|
|
6
|
-
from django.test import TestCase
|
|
7
2
|
from django.utils import timezone
|
|
8
3
|
|
|
9
|
-
# Alliance Auth
|
|
10
|
-
from allianceauth.eveonline.models import EveCharacter
|
|
11
|
-
|
|
12
4
|
# AA Ledger
|
|
13
|
-
from ledger.models.corporationaudit import (
|
|
14
|
-
CorporationAudit,
|
|
15
|
-
)
|
|
16
5
|
from ledger.models.general import EveEntity
|
|
17
|
-
from ledger.tests
|
|
18
|
-
from ledger.tests.testdata.
|
|
19
|
-
|
|
20
|
-
create_user_from_evecharacter,
|
|
21
|
-
)
|
|
22
|
-
from ledger.tests.testdata.generate_walletjournal import (
|
|
6
|
+
from ledger.tests import LedgerTestCase
|
|
7
|
+
from ledger.tests.testdata.utils import (
|
|
8
|
+
add_new_permission_to_user,
|
|
23
9
|
create_division,
|
|
10
|
+
create_owner_from_user,
|
|
24
11
|
create_wallet_journal_entry,
|
|
25
12
|
)
|
|
26
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
27
|
-
from ledger.tests.testdata.load_eveentity import load_eveentity
|
|
28
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
29
13
|
|
|
30
14
|
MODULE_PATH = "ledger.models.corporationaudit"
|
|
31
15
|
|
|
32
16
|
|
|
33
|
-
class TestCorporationWalletJournalModel(
|
|
17
|
+
class TestCorporationWalletJournalModel(LedgerTestCase):
|
|
34
18
|
@classmethod
|
|
35
19
|
def setUpClass(cls):
|
|
36
20
|
super().setUpClass()
|
|
37
|
-
|
|
38
|
-
load_eveuniverse()
|
|
39
|
-
load_eveentity()
|
|
40
|
-
|
|
41
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter(
|
|
42
|
-
1001, permissions=["ledger.basic_access"]
|
|
43
|
-
)
|
|
44
|
-
cls.audit = create_corporationaudit_from_user(cls.user)
|
|
21
|
+
cls.owner = create_owner_from_user(cls.user, owner_type="corporation")
|
|
45
22
|
cls.division = create_division(
|
|
46
|
-
corporation=cls.
|
|
23
|
+
corporation=cls.owner, name="MEGA KONTO", balance=1000000, division_id=1
|
|
47
24
|
)
|
|
25
|
+
|
|
48
26
|
cls.eve_character_first_party = EveEntity.objects.get(eve_id=1001)
|
|
49
27
|
cls.eve_character_second_party = EveEntity.objects.get(eve_id=1002)
|
|
28
|
+
|
|
50
29
|
cls.journal_entry = create_wallet_journal_entry(
|
|
51
|
-
|
|
30
|
+
owner_type="corporation",
|
|
52
31
|
division=cls.division,
|
|
53
32
|
entry_id=1,
|
|
54
33
|
amount=1000,
|
|
@@ -70,10 +49,34 @@ class TestCorporationWalletJournalModel(TestCase):
|
|
|
70
49
|
)
|
|
71
50
|
|
|
72
51
|
def test_str(self):
|
|
52
|
+
"""Test the string representation of CorporationWalletJournalEntry."""
|
|
73
53
|
self.assertEqual(
|
|
74
54
|
str(self.journal_entry),
|
|
75
55
|
f"Corporation Wallet Journal: RefType: test - {self.eve_character_first_party.name} -> {self.eve_character_second_party.name}: 1000 ISK",
|
|
76
56
|
)
|
|
77
57
|
|
|
78
|
-
def
|
|
58
|
+
def test_get_visible_with_permission(self):
|
|
59
|
+
"""
|
|
60
|
+
Test get_visible method with permissions.
|
|
61
|
+
|
|
62
|
+
### Expected Result
|
|
63
|
+
- User with permissions can access journal entries.
|
|
64
|
+
"""
|
|
65
|
+
# Test Data
|
|
66
|
+
self.user = add_new_permission_to_user(
|
|
67
|
+
user=self.user, permission_name="ledger.advanced_access"
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
# Expected Result
|
|
71
|
+
self.assertEqual(
|
|
72
|
+
list(self.journal_entry.get_visible(self.user)), [self.journal_entry]
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
def test_get_visible_without_permission(self):
|
|
76
|
+
"""
|
|
77
|
+
Test get_visible method without permissions.
|
|
78
|
+
|
|
79
|
+
### Expected Result
|
|
80
|
+
- User without permissions cannot access any journal entries.
|
|
81
|
+
"""
|
|
79
82
|
self.assertEqual(list(self.journal_entry.get_visible(self.user)), [])
|