aa-ledger 1.0.3__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.3.dist-info → aa_ledger-2.0.0.dist-info}/METADATA +6 -6
- aa_ledger-2.0.0.dist-info/RECORD +267 -0
- {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/WHEEL +1 -1
- 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 +18 -26
- 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 +717 -553
- 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 +187 -358
- ledger/managers/character_mining_manager.py +64 -30
- ledger/managers/character_planetary_manager.py +185 -138
- ledger/managers/corporation_audit_manager.py +36 -27
- ledger/managers/corporation_journal_manager.py +94 -57
- ledger/managers/general_manager.py +12 -8
- 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 -146
- 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.3.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.3.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
|
@@ -5,8 +5,7 @@ from http import HTTPStatus
|
|
|
5
5
|
from unittest.mock import Mock, patch
|
|
6
6
|
|
|
7
7
|
# Django
|
|
8
|
-
from django.
|
|
9
|
-
from django.test import RequestFactory, TestCase, override_settings
|
|
8
|
+
from django.test import override_settings
|
|
10
9
|
from django.urls import reverse
|
|
11
10
|
|
|
12
11
|
# Alliance Auth
|
|
@@ -14,33 +13,22 @@ from allianceauth.eveonline.models import EveAllianceInfo
|
|
|
14
13
|
from allianceauth.eveonline.providers import Alliance, ObjectNotFound
|
|
15
14
|
|
|
16
15
|
# AA Ledger
|
|
17
|
-
from ledger.tests
|
|
18
|
-
|
|
16
|
+
from ledger.tests import LedgerTestCase
|
|
17
|
+
from ledger.tests.testdata.utils import (
|
|
18
|
+
add_new_permission_to_user,
|
|
19
19
|
)
|
|
20
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
21
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
22
|
-
from ledger.views.alliance.add_ally import add_ally
|
|
23
20
|
|
|
24
21
|
MODULE_PATH = "ledger.views.alliance.add_ally"
|
|
25
22
|
|
|
26
23
|
|
|
27
24
|
@patch(MODULE_PATH + ".messages")
|
|
28
25
|
@override_settings(CELERY_ALWAYS_EAGER=True, CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
|
|
29
|
-
class TestAddAllyView(
|
|
26
|
+
class TestAddAllyView(LedgerTestCase):
|
|
27
|
+
"""Test Add Ally View."""
|
|
28
|
+
|
|
30
29
|
@classmethod
|
|
31
30
|
def setUpClass(cls):
|
|
32
31
|
super().setUpClass()
|
|
33
|
-
load_allianceauth()
|
|
34
|
-
load_eveuniverse()
|
|
35
|
-
|
|
36
|
-
cls.factory = RequestFactory()
|
|
37
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter(
|
|
38
|
-
1001,
|
|
39
|
-
permissions=[
|
|
40
|
-
"ledger.basic_access",
|
|
41
|
-
"ledger.advanced_access",
|
|
42
|
-
],
|
|
43
|
-
)
|
|
44
32
|
cls.alliance = Alliance(
|
|
45
33
|
id=3005,
|
|
46
34
|
name="Test Alliance",
|
|
@@ -50,22 +38,24 @@ class TestAddAllyView(TestCase):
|
|
|
50
38
|
faction_id=None,
|
|
51
39
|
)
|
|
52
40
|
|
|
53
|
-
def _add_alliance(self, user, token):
|
|
54
|
-
request = self.factory.get(reverse("ledger:add_ally"))
|
|
55
|
-
request.user = user
|
|
56
|
-
request.token = token
|
|
57
|
-
middleware = SessionMiddleware(Mock())
|
|
58
|
-
middleware.process_request(request)
|
|
59
|
-
orig_view = add_ally.__wrapped__.__wrapped__.__wrapped__
|
|
60
|
-
return orig_view(request, token)
|
|
61
|
-
|
|
62
41
|
def test_add_ally_already_exist(self, mock_messages):
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
42
|
+
"""
|
|
43
|
+
Test adding an ally that already exists in the system.
|
|
44
|
+
|
|
45
|
+
This test ensures that when an ally that already exists in the system is
|
|
46
|
+
added again, the system correctly identifies it and provides appropriate
|
|
47
|
+
feedback to the user without attempting to create a duplicate entry.
|
|
48
|
+
|
|
49
|
+
## Results: Redirects to alliance ledger with info message.
|
|
50
|
+
"""
|
|
51
|
+
# Test Data
|
|
52
|
+
self.user = add_new_permission_to_user(self.user, "ledger.advanced_access")
|
|
53
|
+
token = self.user.token_set.get(character_id=1001)
|
|
54
|
+
|
|
55
|
+
# Test Action
|
|
56
|
+
response = self._add_alliance(self.user, token)
|
|
57
|
+
|
|
58
|
+
# Expected Results
|
|
69
59
|
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
70
60
|
self.assertEqual(response.url, reverse("ledger:alliance_ledger", args=[3001]))
|
|
71
61
|
self.assertEqual(mock_messages.info.call_count, 1)
|
|
@@ -76,7 +66,17 @@ class TestAddAllyView(TestCase):
|
|
|
76
66
|
def test_add_ally_does_not_exist(
|
|
77
67
|
self, mock_get, mock_get_or_create, mock_provider, mock_messages
|
|
78
68
|
):
|
|
79
|
-
|
|
69
|
+
"""
|
|
70
|
+
Test adding an ally that does not exist in the system.
|
|
71
|
+
|
|
72
|
+
This test verifies that when an ally that does not exist in the system is
|
|
73
|
+
added, the system successfully creates a new entry and provides appropriate
|
|
74
|
+
feedback to the user.
|
|
75
|
+
|
|
76
|
+
## Results: Ally is added successfully.
|
|
77
|
+
"""
|
|
78
|
+
# Test Data
|
|
79
|
+
self.user = add_new_permission_to_user(self.user, "ledger.advanced_access")
|
|
80
80
|
mock_get.side_effect = EveAllianceInfo.DoesNotExist
|
|
81
81
|
mock_provider.get_alliance.return_value = self.alliance
|
|
82
82
|
|
|
@@ -87,11 +87,12 @@ class TestAddAllyView(TestCase):
|
|
|
87
87
|
mock_ally.alliance_ticker = "T.E.S.T"
|
|
88
88
|
mock_ally.executor_corp_id = 2001
|
|
89
89
|
mock_get_or_create.return_value = (mock_ally, True)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
#
|
|
93
|
-
response = self._add_alliance(user, token)
|
|
94
|
-
|
|
90
|
+
token = self.user.token_set.get(character_id=1001)
|
|
91
|
+
|
|
92
|
+
# Test Action
|
|
93
|
+
response = self._add_alliance(self.user, token)
|
|
94
|
+
|
|
95
|
+
# Expected Results
|
|
95
96
|
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
96
97
|
self.assertEqual(response.url, reverse("ledger:alliance_ledger", args=[3005]))
|
|
97
98
|
self.assertEqual(mock_messages.success.call_count, 1)
|
|
@@ -105,15 +106,25 @@ class TestAddAllyView(TestCase):
|
|
|
105
106
|
def test_add_ally_does_not_exist_object_not_found(
|
|
106
107
|
self, mock_get, mock_get_or_create, mock_provider, mock_messages
|
|
107
108
|
):
|
|
108
|
-
|
|
109
|
+
"""
|
|
110
|
+
Test adding an ally that does not exist and is not found by the provider.
|
|
111
|
+
|
|
112
|
+
This test ensures that when an ally that does not exist in the system is
|
|
113
|
+
attempted to be added but is not found by the external provider, the system
|
|
114
|
+
|
|
115
|
+
## Results: Redirects to alliance ledger with warning message.
|
|
116
|
+
"""
|
|
117
|
+
# Test Data
|
|
118
|
+
self.user = add_new_permission_to_user(self.user, "ledger.advanced_access")
|
|
109
119
|
mock_get.side_effect = EveAllianceInfo.DoesNotExist
|
|
110
120
|
mock_provider.get_alliance.side_effect = ObjectNotFound(3001, "alliance")
|
|
111
121
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
#
|
|
115
|
-
response = self._add_alliance(user, token)
|
|
116
|
-
|
|
122
|
+
token = self.user.token_set.get(character_id=1001)
|
|
123
|
+
|
|
124
|
+
# Test Action
|
|
125
|
+
response = self._add_alliance(self.user, token)
|
|
126
|
+
|
|
127
|
+
# Expected Results
|
|
117
128
|
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
118
129
|
self.assertEqual(response.url, reverse("ledger:alliance_ledger", args=[3001]))
|
|
119
130
|
self.assertEqual(mock_messages.warning.call_count, 1)
|
|
@@ -2,21 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
# Standard Library
|
|
4
4
|
from http import HTTPStatus
|
|
5
|
-
from unittest.mock import
|
|
5
|
+
from unittest.mock import patch
|
|
6
6
|
|
|
7
7
|
# Django
|
|
8
|
-
from django.
|
|
9
|
-
from django.test import RequestFactory, TestCase, override_settings
|
|
8
|
+
from django.test import override_settings
|
|
10
9
|
from django.urls import reverse
|
|
11
10
|
|
|
12
11
|
# AA Ledger
|
|
13
|
-
from ledger.models.characteraudit import
|
|
14
|
-
from ledger.tests
|
|
15
|
-
create_user_from_evecharacter_with_access,
|
|
16
|
-
)
|
|
17
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
18
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
19
|
-
from ledger.views.character.add_char import add_char
|
|
12
|
+
from ledger.models.characteraudit import CharacterOwner
|
|
13
|
+
from ledger.tests import LedgerTestCase
|
|
20
14
|
|
|
21
15
|
MODULE_PATH = "ledger.views.character.add_char"
|
|
22
16
|
|
|
@@ -24,38 +18,32 @@ MODULE_PATH = "ledger.views.character.add_char"
|
|
|
24
18
|
@patch(MODULE_PATH + ".messages")
|
|
25
19
|
@patch(MODULE_PATH + ".tasks")
|
|
26
20
|
@override_settings(CELERY_ALWAYS_EAGER=True, CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
|
|
27
|
-
class TestAddCharView(
|
|
21
|
+
class TestAddCharView(LedgerTestCase):
|
|
28
22
|
@classmethod
|
|
29
23
|
def setUpClass(cls):
|
|
30
24
|
super().setUpClass()
|
|
31
|
-
load_allianceauth()
|
|
32
|
-
load_eveuniverse()
|
|
33
25
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
)
|
|
26
|
+
def test_add_char(self, mock_tasks, mock_messages):
|
|
27
|
+
"""
|
|
28
|
+
Test adding a character that does not exist in the system.
|
|
38
29
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
request.token = token
|
|
43
|
-
middleware = SessionMiddleware(Mock())
|
|
44
|
-
middleware.process_request(request)
|
|
45
|
-
orig_view = add_char.__wrapped__.__wrapped__.__wrapped__
|
|
46
|
-
return orig_view(request, token)
|
|
30
|
+
This test verifies that when a character that does not exist in the system is
|
|
31
|
+
added, the system successfully creates a new entry and provides appropriate
|
|
32
|
+
feedback to the user.
|
|
47
33
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
token = user.token_set.get(character_id=1001)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
34
|
+
## Results: Character is added successfully.
|
|
35
|
+
"""
|
|
36
|
+
# Test Data
|
|
37
|
+
token = self.user.token_set.get(character_id=1001)
|
|
38
|
+
|
|
39
|
+
# Test Action
|
|
40
|
+
response = self._add_character(self.user, token)
|
|
41
|
+
|
|
42
|
+
# Expected Results
|
|
55
43
|
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
56
44
|
self.assertEqual(response.url, reverse("ledger:character_ledger", args=[1001]))
|
|
57
45
|
self.assertTrue(mock_tasks.update_character.apply_async.called)
|
|
58
46
|
self.assertTrue(mock_messages.info.called)
|
|
59
47
|
self.assertTrue(
|
|
60
|
-
|
|
48
|
+
CharacterOwner.objects.filter(eve_character__character_id=1001).exists()
|
|
61
49
|
)
|
|
@@ -5,40 +5,34 @@ import json
|
|
|
5
5
|
from http import HTTPStatus
|
|
6
6
|
|
|
7
7
|
# Django
|
|
8
|
-
from django.test import RequestFactory, TestCase
|
|
9
8
|
from django.urls import reverse
|
|
10
9
|
|
|
11
10
|
# AA Ledger
|
|
12
|
-
from ledger.tests
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
from ledger.tests import LedgerTestCase
|
|
12
|
+
from ledger.tests.testdata.utils import (
|
|
13
|
+
create_owner_from_user,
|
|
15
14
|
)
|
|
16
|
-
|
|
17
|
-
# AA Skillfarm
|
|
18
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
19
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
20
15
|
from ledger.views.character.character_ledger import character_delete
|
|
21
16
|
|
|
22
17
|
MODULE_PATH = "ledger.views.character.character_ledger"
|
|
23
18
|
|
|
24
19
|
|
|
25
|
-
class TestDeleteCharacterView(
|
|
20
|
+
class TestDeleteCharacterView(LedgerTestCase):
|
|
26
21
|
@classmethod
|
|
27
22
|
def setUpClass(cls):
|
|
28
23
|
super().setUpClass()
|
|
29
|
-
|
|
30
|
-
load_eveuniverse()
|
|
31
|
-
|
|
32
|
-
cls.factory = RequestFactory()
|
|
33
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter_with_access(
|
|
34
|
-
1001
|
|
35
|
-
)
|
|
36
|
-
cls.audit = add_characteraudit_character_to_user(cls.user, 1001)
|
|
37
|
-
cls.no_audit_user, cls.character_ownership = (
|
|
38
|
-
create_user_from_evecharacter_with_access(1002)
|
|
39
|
-
)
|
|
24
|
+
cls.audit = create_owner_from_user(cls.user, owner_type="character")
|
|
40
25
|
|
|
41
26
|
def test_delete_character(self):
|
|
27
|
+
"""
|
|
28
|
+
Test deleting a character that the user has permission to delete.
|
|
29
|
+
|
|
30
|
+
This test verifies that when a user with the appropriate permissions
|
|
31
|
+
attempts to delete a character they own, the system successfully deletes
|
|
32
|
+
the character and provides appropriate feedback.
|
|
33
|
+
|
|
34
|
+
## Results: Character is deleted successfully.
|
|
35
|
+
"""
|
|
42
36
|
character_id = self.audit.eve_character.character_id
|
|
43
37
|
|
|
44
38
|
request = self.factory.post(reverse("ledger:delete_char", args=[character_id]))
|
|
@@ -53,8 +47,17 @@ class TestDeleteCharacterView(TestCase):
|
|
|
53
47
|
self.assertEqual(response_data["message"], "Gneuten successfully deleted")
|
|
54
48
|
|
|
55
49
|
def test_delete_character_no_permission(self):
|
|
50
|
+
"""
|
|
51
|
+
Test deleting a character that the user does not have permission to delete.
|
|
52
|
+
|
|
53
|
+
This test verifies that when a user without the appropriate permissions
|
|
54
|
+
attempts to delete a character they do not own, the system prevents the
|
|
55
|
+
deletion and provides an appropriate error message.
|
|
56
|
+
|
|
57
|
+
## Results: Permission Denied error is returned.
|
|
58
|
+
"""
|
|
56
59
|
request = self.factory.post(reverse("ledger:delete_char", args=[1001]))
|
|
57
|
-
request.user = self.
|
|
60
|
+
request.user = self.user2
|
|
58
61
|
|
|
59
62
|
response = character_delete(request, character_id=1001)
|
|
60
63
|
|