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
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
"""TestView class."""
|
|
2
|
-
|
|
3
|
-
# Standard Library
|
|
4
|
-
from http import HTTPStatus
|
|
5
|
-
from unittest.mock import Mock, patch
|
|
6
|
-
|
|
7
|
-
# Django
|
|
8
|
-
from django.contrib.sessions.middleware import SessionMiddleware
|
|
9
|
-
from django.test import RequestFactory, TestCase
|
|
10
|
-
from django.urls import reverse
|
|
11
|
-
|
|
12
|
-
# AA Ledger
|
|
13
|
-
from ledger.tests.testdata.generate_characteraudit import (
|
|
14
|
-
add_characteraudit_character_to_user,
|
|
15
|
-
create_user_from_evecharacter_with_access,
|
|
16
|
-
)
|
|
17
|
-
from ledger.tests.testdata.generate_planets import (
|
|
18
|
-
_planetary_data,
|
|
19
|
-
create_character_planet,
|
|
20
|
-
create_character_planet_details,
|
|
21
|
-
)
|
|
22
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
23
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
24
|
-
from ledger.views.character import planetary
|
|
25
|
-
|
|
26
|
-
PLANETARY_PATH = "ledger.views.character.planetary"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
class TestViewSwitchAlarm(TestCase):
|
|
30
|
-
@classmethod
|
|
31
|
-
def setUpClass(cls):
|
|
32
|
-
super().setUpClass()
|
|
33
|
-
load_allianceauth()
|
|
34
|
-
load_eveuniverse()
|
|
35
|
-
|
|
36
|
-
cls.planet_params = {
|
|
37
|
-
"upgrade_level": 5,
|
|
38
|
-
"num_pins": 5,
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
cls.factory = RequestFactory()
|
|
42
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter_with_access(
|
|
43
|
-
1001
|
|
44
|
-
)
|
|
45
|
-
cls.user_nopermission, cls.character_ownership_no_pm = (
|
|
46
|
-
create_user_from_evecharacter_with_access(1002)
|
|
47
|
-
)
|
|
48
|
-
cls.audit = add_characteraudit_character_to_user(cls.user, 1001)
|
|
49
|
-
cls.planetary = create_character_planet(cls.audit, 4001, **cls.planet_params)
|
|
50
|
-
cls.planetarydetails = create_character_planet_details(
|
|
51
|
-
cls.planetary, **_planetary_data
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
def test_switch_alarm(self):
|
|
55
|
-
character_id = self.audit.eve_character.character_id
|
|
56
|
-
form_data = {
|
|
57
|
-
"character_id": character_id,
|
|
58
|
-
"planet_id": 4001,
|
|
59
|
-
"confirm": "yes",
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
request = self.factory.post(
|
|
63
|
-
reverse("ledger:switch_alarm"),
|
|
64
|
-
data=form_data,
|
|
65
|
-
)
|
|
66
|
-
request.user = self.user
|
|
67
|
-
|
|
68
|
-
response = planetary.switch_alarm(request)
|
|
69
|
-
|
|
70
|
-
self.assertEqual(response.status_code, HTTPStatus.OK)
|
|
71
|
-
|
|
72
|
-
def test_switch_alarm_all(self):
|
|
73
|
-
form_data = {
|
|
74
|
-
"character_id": 0,
|
|
75
|
-
"planet_id": 0,
|
|
76
|
-
"confirm": "yes",
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
request = self.factory.post(
|
|
80
|
-
reverse("ledger:switch_alarm"),
|
|
81
|
-
data=form_data,
|
|
82
|
-
)
|
|
83
|
-
request.user = self.user
|
|
84
|
-
|
|
85
|
-
response = planetary.switch_alarm(request)
|
|
86
|
-
|
|
87
|
-
self.assertEqual(response.status_code, HTTPStatus.OK)
|
|
88
|
-
|
|
89
|
-
@patch(PLANETARY_PATH + ".CharacterPlanetDetails.objects.filter")
|
|
90
|
-
def test_switch_alarm_doesnotexist(self, mock_planetdetails_filter):
|
|
91
|
-
form_data = {
|
|
92
|
-
"character_id": 1001,
|
|
93
|
-
"planet_id": 0,
|
|
94
|
-
"confirm": "yes",
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
mock_queryset = Mock()
|
|
98
|
-
mock_queryset.exists.return_value = False
|
|
99
|
-
mock_planetdetails_filter.return_value = mock_queryset
|
|
100
|
-
|
|
101
|
-
request = self.factory.post(
|
|
102
|
-
reverse("ledger:switch_alarm"),
|
|
103
|
-
data=form_data,
|
|
104
|
-
)
|
|
105
|
-
request.user = self.user
|
|
106
|
-
|
|
107
|
-
response = planetary.switch_alarm(request)
|
|
108
|
-
|
|
109
|
-
self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND)
|
|
110
|
-
mock_planetdetails_filter.assert_called_once()
|
|
111
|
-
|
|
112
|
-
def test_switch_alarm_no_permission(self):
|
|
113
|
-
form_data = {
|
|
114
|
-
"character_id": 1001,
|
|
115
|
-
"planet_id": 4001,
|
|
116
|
-
"confirm": "yes",
|
|
117
|
-
}
|
|
118
|
-
request = self.factory.post(
|
|
119
|
-
reverse("ledger:switch_alarm"),
|
|
120
|
-
data=form_data,
|
|
121
|
-
)
|
|
122
|
-
request.user = self.user_nopermission
|
|
123
|
-
|
|
124
|
-
response = planetary.switch_alarm(request)
|
|
125
|
-
|
|
126
|
-
self.assertEqual(response.status_code, HTTPStatus.FORBIDDEN)
|
|
127
|
-
|
|
128
|
-
def test_switch_alarm_invalid(self):
|
|
129
|
-
request = self.factory.post(
|
|
130
|
-
reverse("ledger:switch_alarm"),
|
|
131
|
-
data=None,
|
|
132
|
-
)
|
|
133
|
-
request.user = self.user
|
|
134
|
-
|
|
135
|
-
response = planetary.switch_alarm(request)
|
|
136
|
-
|
|
137
|
-
self.assertEqual(response.status_code, HTTPStatus.BAD_REQUEST)
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# Standard Library
|
|
2
|
-
import json
|
|
3
|
-
from pathlib import Path
|
|
4
|
-
|
|
5
|
-
# Alliance Auth (External Libs)
|
|
6
|
-
from app_utils.esi_testing import EsiClientStub
|
|
7
|
-
|
|
8
|
-
# AA Ledger
|
|
9
|
-
from ledger.tests.testdata.esi_stub_migration import EsiClientStubOpenApi, EsiEndpoint
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class CharacterJournalContext:
|
|
13
|
-
"""Context for character wallet journal ESI operations."""
|
|
14
|
-
|
|
15
|
-
amount: float
|
|
16
|
-
balance: float
|
|
17
|
-
context_id: int
|
|
18
|
-
context_id_type: str
|
|
19
|
-
date: str
|
|
20
|
-
description: str
|
|
21
|
-
first_party_id: int
|
|
22
|
-
id: int
|
|
23
|
-
reason: str
|
|
24
|
-
ref_type: str
|
|
25
|
-
second_party_id: int
|
|
26
|
-
tax: float
|
|
27
|
-
tax_receiver_id: int
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def load_test_data():
|
|
31
|
-
file_path = Path(__file__).parent / "esi.json"
|
|
32
|
-
with file_path.open("r", encoding="utf-8") as fp:
|
|
33
|
-
return json.load(fp)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
_esi_data = load_test_data()
|
|
37
|
-
|
|
38
|
-
_endpoints = [
|
|
39
|
-
EsiEndpoint(
|
|
40
|
-
"Character",
|
|
41
|
-
"GetCharactersCharacterIdRoles",
|
|
42
|
-
"character_id",
|
|
43
|
-
needs_token=False,
|
|
44
|
-
),
|
|
45
|
-
EsiEndpoint(
|
|
46
|
-
"Wallet",
|
|
47
|
-
"GetCharactersCharacterIdWalletJournal",
|
|
48
|
-
"character_id",
|
|
49
|
-
needs_token=False,
|
|
50
|
-
),
|
|
51
|
-
EsiEndpoint(
|
|
52
|
-
"Wallet",
|
|
53
|
-
"GetCharactersCharacterIdWallet",
|
|
54
|
-
"character_id",
|
|
55
|
-
needs_token=False,
|
|
56
|
-
),
|
|
57
|
-
EsiEndpoint(
|
|
58
|
-
"Corporation",
|
|
59
|
-
"GetCorporationsCorporationIdDivisions",
|
|
60
|
-
"corporation_id",
|
|
61
|
-
needs_token=False,
|
|
62
|
-
),
|
|
63
|
-
EsiEndpoint(
|
|
64
|
-
"Wallet",
|
|
65
|
-
"GetCorporationsCorporationIdWallets",
|
|
66
|
-
"corporation_id",
|
|
67
|
-
needs_token=False,
|
|
68
|
-
),
|
|
69
|
-
EsiEndpoint(
|
|
70
|
-
"Wallet",
|
|
71
|
-
"GetCorporationsCorporationIdWalletsDivisionJournal",
|
|
72
|
-
"corporation_id",
|
|
73
|
-
needs_token=False,
|
|
74
|
-
),
|
|
75
|
-
EsiEndpoint(
|
|
76
|
-
"Industry",
|
|
77
|
-
"GetCharactersCharacterIdMining",
|
|
78
|
-
"character_id",
|
|
79
|
-
needs_token=False,
|
|
80
|
-
),
|
|
81
|
-
EsiEndpoint(
|
|
82
|
-
"Planetary_Interaction",
|
|
83
|
-
"GetCharactersCharacterIdPlanets",
|
|
84
|
-
"character_id",
|
|
85
|
-
needs_token=False,
|
|
86
|
-
),
|
|
87
|
-
EsiEndpoint(
|
|
88
|
-
"Planetary_Interaction",
|
|
89
|
-
"GetCharactersCharacterIdPlanetsPlanetId",
|
|
90
|
-
("character_id", "planet_id"),
|
|
91
|
-
needs_token=False,
|
|
92
|
-
),
|
|
93
|
-
EsiEndpoint(
|
|
94
|
-
"Universe",
|
|
95
|
-
"PostUniverseNames",
|
|
96
|
-
"body",
|
|
97
|
-
needs_token=False,
|
|
98
|
-
),
|
|
99
|
-
EsiEndpoint(
|
|
100
|
-
"Universe",
|
|
101
|
-
"PostUniverseIds",
|
|
102
|
-
"body",
|
|
103
|
-
needs_token=False,
|
|
104
|
-
),
|
|
105
|
-
]
|
|
106
|
-
|
|
107
|
-
esi_client_stub = EsiClientStub(_esi_data, endpoints=_endpoints)
|
|
108
|
-
esi_client_stub_openapi = EsiClientStubOpenApi(_esi_data, endpoints=_endpoints)
|
|
109
|
-
esi_client_error_stub = EsiClientStub(_esi_data, endpoints=_endpoints, http_error=502)
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# Standard Library
|
|
2
|
-
from types import SimpleNamespace
|
|
3
|
-
from typing import Any
|
|
4
|
-
|
|
5
|
-
# Django
|
|
6
|
-
from django.utils import timezone
|
|
7
|
-
|
|
8
|
-
# Alliance Auth (External Libs)
|
|
9
|
-
from app_utils.esi_testing import (
|
|
10
|
-
BravadoOperationStub,
|
|
11
|
-
EsiClientStub,
|
|
12
|
-
EsiEndpoint,
|
|
13
|
-
_EsiMethod,
|
|
14
|
-
parse_datetime,
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class EsiEndpoint(EsiEndpoint):
|
|
19
|
-
def __init__(self, *args, return_response=False, **kwargs):
|
|
20
|
-
super().__init__(*args, **kwargs)
|
|
21
|
-
self.return_response = return_response
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class _EsiMethodOpenApi(_EsiMethod):
|
|
25
|
-
"""An ESI method that can be called from the ESI client using OpenAPI client."""
|
|
26
|
-
|
|
27
|
-
@staticmethod
|
|
28
|
-
def _convert_values(data) -> Any:
|
|
29
|
-
def convert_dict(item):
|
|
30
|
-
if isinstance(item, dict):
|
|
31
|
-
for key, value in item.items():
|
|
32
|
-
if isinstance(value, str):
|
|
33
|
-
try:
|
|
34
|
-
if parsed_datetime := parse_datetime(value):
|
|
35
|
-
item[key] = parsed_datetime.replace(tzinfo=timezone.utc)
|
|
36
|
-
except ValueError:
|
|
37
|
-
pass
|
|
38
|
-
|
|
39
|
-
def dict_to_obj(obj):
|
|
40
|
-
if isinstance(obj, dict):
|
|
41
|
-
return SimpleNamespace(**{k: dict_to_obj(v) for k, v in obj.items()})
|
|
42
|
-
elif isinstance(obj, list):
|
|
43
|
-
return [dict_to_obj(i) for i in obj]
|
|
44
|
-
else:
|
|
45
|
-
return obj
|
|
46
|
-
|
|
47
|
-
if isinstance(data, list):
|
|
48
|
-
for row in data:
|
|
49
|
-
convert_dict(row)
|
|
50
|
-
else:
|
|
51
|
-
convert_dict(data)
|
|
52
|
-
|
|
53
|
-
return dict_to_obj(data)
|
|
54
|
-
|
|
55
|
-
def call(self, **kwargs):
|
|
56
|
-
result_obj = super().call(**kwargs)
|
|
57
|
-
if self._endpoint.return_response:
|
|
58
|
-
return BravadoOperationStub(result_obj.result(), also_return_response=True)
|
|
59
|
-
return result_obj
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
class EsiClientStubOpenApi(EsiClientStub):
|
|
63
|
-
"""ESI Client Stub that uses OpenAPI generated client."""
|
|
64
|
-
|
|
65
|
-
def _add_endpoint(self, endpoint: EsiEndpoint):
|
|
66
|
-
if not hasattr(self, endpoint.category):
|
|
67
|
-
setattr(self, endpoint.category, type(endpoint.category, (object,), {}))
|
|
68
|
-
endpoint_category = getattr(self, endpoint.category)
|
|
69
|
-
if not hasattr(endpoint_category, endpoint.method):
|
|
70
|
-
setattr(
|
|
71
|
-
endpoint_category,
|
|
72
|
-
endpoint.method,
|
|
73
|
-
_EsiMethodOpenApi(
|
|
74
|
-
endpoint=endpoint,
|
|
75
|
-
testdata=self._testdata,
|
|
76
|
-
http_error=self._http_error,
|
|
77
|
-
).call,
|
|
78
|
-
)
|
|
79
|
-
else:
|
|
80
|
-
raise ValueError(f"Endpoint for {endpoint} already defined!")
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
# Django
|
|
2
|
-
from django.contrib.auth.models import User
|
|
3
|
-
|
|
4
|
-
# Alliance Auth
|
|
5
|
-
from allianceauth.authentication.backends import StateBackend
|
|
6
|
-
from allianceauth.authentication.models import CharacterOwnership
|
|
7
|
-
from allianceauth.eveonline.models import EveCharacter
|
|
8
|
-
from allianceauth.tests.auth_utils import AuthUtils
|
|
9
|
-
|
|
10
|
-
# Alliance Auth (External Libs)
|
|
11
|
-
from app_utils.testing import add_character_to_user
|
|
12
|
-
from eveuniverse.models import EveType
|
|
13
|
-
|
|
14
|
-
# AA Ledger
|
|
15
|
-
from ledger.models.characteraudit import CharacterAudit, CharacterUpdateStatus
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def create_character(eve_character: EveCharacter, **kwargs) -> CharacterAudit:
|
|
19
|
-
"""Create a Skillfarm Character from EveCharacter"""
|
|
20
|
-
params = {
|
|
21
|
-
"character_name": eve_character.character_name,
|
|
22
|
-
"eve_character": eve_character,
|
|
23
|
-
}
|
|
24
|
-
params.update(kwargs)
|
|
25
|
-
character = CharacterAudit(**params)
|
|
26
|
-
character.save()
|
|
27
|
-
return character
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def create_update_status(
|
|
31
|
-
character_audit: CharacterAudit, **kwargs
|
|
32
|
-
) -> CharacterUpdateStatus:
|
|
33
|
-
"""Create a Update Status for a Character Audit"""
|
|
34
|
-
params = {
|
|
35
|
-
"character": character_audit,
|
|
36
|
-
}
|
|
37
|
-
params.update(kwargs)
|
|
38
|
-
update_status = CharacterUpdateStatus(**params)
|
|
39
|
-
update_status.save()
|
|
40
|
-
return update_status
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def create_characteraudit_from_user(user: User, **kwargs) -> CharacterAudit:
|
|
44
|
-
"""Create a Character Audit from a user"""
|
|
45
|
-
eve_character = user.profile.main_character
|
|
46
|
-
if not eve_character:
|
|
47
|
-
raise ValueError("User needs to have a main character.")
|
|
48
|
-
|
|
49
|
-
kwargs.update({"eve_character": eve_character})
|
|
50
|
-
return create_character(**kwargs)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
def create_user_from_evecharacter_with_access(
|
|
54
|
-
character_id: int, disconnect_signals: bool = True
|
|
55
|
-
) -> tuple[User, CharacterOwnership]:
|
|
56
|
-
"""Create user with access from an existing eve character and use it as main."""
|
|
57
|
-
auth_character = EveCharacter.objects.get(character_id=character_id)
|
|
58
|
-
username = StateBackend.iterate_username(auth_character.character_name)
|
|
59
|
-
user = AuthUtils.create_user(username, disconnect_signals=disconnect_signals)
|
|
60
|
-
user = AuthUtils.add_permission_to_user_by_name(
|
|
61
|
-
"ledger.basic_access", user, disconnect_signals=disconnect_signals
|
|
62
|
-
)
|
|
63
|
-
character_ownership = add_character_to_user(
|
|
64
|
-
user,
|
|
65
|
-
auth_character,
|
|
66
|
-
is_main=True,
|
|
67
|
-
scopes=CharacterAudit.get_esi_scopes(),
|
|
68
|
-
disconnect_signals=disconnect_signals,
|
|
69
|
-
)
|
|
70
|
-
return user, character_ownership
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
def create_characteraudit_from_evecharacter(
|
|
74
|
-
character_id: int, **kwargs
|
|
75
|
-
) -> CharacterAudit:
|
|
76
|
-
"""Create a Audit Character from a existing EveCharacter"""
|
|
77
|
-
|
|
78
|
-
_, character_ownership = create_user_from_evecharacter_with_access(
|
|
79
|
-
character_id, disconnect_signals=True
|
|
80
|
-
)
|
|
81
|
-
return create_character(character_ownership.character, **kwargs)
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
def add_auth_character_to_user(
|
|
85
|
-
user: User, character_id: int, disconnect_signals: bool = True
|
|
86
|
-
) -> CharacterOwnership:
|
|
87
|
-
auth_character = EveCharacter.objects.get(character_id=character_id)
|
|
88
|
-
return add_character_to_user(
|
|
89
|
-
user,
|
|
90
|
-
auth_character,
|
|
91
|
-
is_main=False,
|
|
92
|
-
scopes=CharacterAudit.get_esi_scopes(),
|
|
93
|
-
disconnect_signals=disconnect_signals,
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
def add_characteraudit_character_to_user(
|
|
98
|
-
user: User, character_id: int, disconnect_signals: bool = True, **kwargs
|
|
99
|
-
) -> CharacterAudit:
|
|
100
|
-
"""Add a Character Audit Character to a user"""
|
|
101
|
-
character_ownership = add_auth_character_to_user(
|
|
102
|
-
user,
|
|
103
|
-
character_id,
|
|
104
|
-
disconnect_signals=disconnect_signals,
|
|
105
|
-
)
|
|
106
|
-
return create_character(character_ownership.character, **kwargs)
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# Django
|
|
2
|
-
from django.contrib.auth.models import User
|
|
3
|
-
|
|
4
|
-
# Alliance Auth
|
|
5
|
-
from allianceauth.eveonline.models import EveCharacter
|
|
6
|
-
|
|
7
|
-
# Alliance Auth (External Libs)
|
|
8
|
-
from app_utils.testing import (
|
|
9
|
-
create_user_from_evecharacter,
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
# AA Ledger
|
|
13
|
-
from ledger.models.corporationaudit import CorporationAudit, CorporationUpdateStatus
|
|
14
|
-
from ledger.tests.testdata.generate_characteraudit import (
|
|
15
|
-
add_auth_character_to_user,
|
|
16
|
-
create_user_from_evecharacter_with_access,
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def create_corporationaudit(eve_character: EveCharacter, **kwargs) -> CorporationAudit:
|
|
21
|
-
"""Create a LedgerAudit Corporation from EveCharacter"""
|
|
22
|
-
params = {
|
|
23
|
-
"corporation_name": eve_character.corporation_name,
|
|
24
|
-
"corporation": eve_character.corporation,
|
|
25
|
-
}
|
|
26
|
-
params.update(kwargs)
|
|
27
|
-
corporation = CorporationAudit(**params)
|
|
28
|
-
corporation.save()
|
|
29
|
-
return corporation
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def create_corporation_update_status(
|
|
33
|
-
corporation_audit: CorporationAudit, **kwargs
|
|
34
|
-
) -> CorporationUpdateStatus:
|
|
35
|
-
"""Create a Update Status for a Character Audit"""
|
|
36
|
-
params = {
|
|
37
|
-
"corporation": corporation_audit,
|
|
38
|
-
}
|
|
39
|
-
params.update(kwargs)
|
|
40
|
-
update_status = CorporationUpdateStatus(**params)
|
|
41
|
-
update_status.save()
|
|
42
|
-
return update_status
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def create_corporationaudit_from_user(user: User, **kwargs) -> CorporationAudit:
|
|
46
|
-
"""Create a Character Audit from a user"""
|
|
47
|
-
eve_character = user.profile.main_character
|
|
48
|
-
if not eve_character:
|
|
49
|
-
raise ValueError("User needs to have a main character.")
|
|
50
|
-
|
|
51
|
-
kwargs.update({"eve_character": eve_character})
|
|
52
|
-
return create_corporationaudit(**kwargs)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
def create_corporationaudit_from_evecharacter(
|
|
56
|
-
character_id: int, **kwargs
|
|
57
|
-
) -> CorporationAudit:
|
|
58
|
-
"""Create a Audit Character from a existing EveCharacter"""
|
|
59
|
-
|
|
60
|
-
_, character_ownership = create_user_from_evecharacter_with_access(
|
|
61
|
-
character_id, disconnect_signals=True
|
|
62
|
-
)
|
|
63
|
-
return create_corporationaudit(character_ownership.character, **kwargs)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
def add_corporationaudit_corporation_to_user(
|
|
67
|
-
user: User, character_id: int, disconnect_signals: bool = True, **kwargs
|
|
68
|
-
) -> CorporationAudit:
|
|
69
|
-
character_ownership = add_auth_character_to_user(
|
|
70
|
-
user,
|
|
71
|
-
character_id,
|
|
72
|
-
disconnect_signals=disconnect_signals,
|
|
73
|
-
)
|
|
74
|
-
return create_corporationaudit(character_ownership.character, **kwargs)
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# Django
|
|
2
|
-
from django.utils import timezone
|
|
3
|
-
|
|
4
|
-
# AA Ledger
|
|
5
|
-
from ledger.models.events import Events
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def create_event(char_ledger: bool, **kwargs) -> Events:
|
|
9
|
-
"""Create a Event for a Corporation"""
|
|
10
|
-
params = {
|
|
11
|
-
"char_ledger": char_ledger,
|
|
12
|
-
}
|
|
13
|
-
params.update(kwargs)
|
|
14
|
-
events = Events(**params)
|
|
15
|
-
events.save()
|
|
16
|
-
return events
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def create_event_1_day(
|
|
20
|
-
char_ledger: bool, date_start: timezone.datetime, **kwargs
|
|
21
|
-
) -> Events:
|
|
22
|
-
"""Create a Event for a Corporation"""
|
|
23
|
-
params = {
|
|
24
|
-
"char_ledger": char_ledger,
|
|
25
|
-
"date_start": date_start,
|
|
26
|
-
"date_end": date_start + timezone.timedelta(days=1),
|
|
27
|
-
}
|
|
28
|
-
params.update(kwargs)
|
|
29
|
-
events = Events(**params)
|
|
30
|
-
events.save()
|
|
31
|
-
return events
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# AA Ledger
|
|
2
|
-
from ledger.models.characteraudit import CharacterAudit, CharacterMiningLedger
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
def create_miningledger(character: CharacterAudit, **kwargs) -> CharacterMiningLedger:
|
|
6
|
-
"""Create a CorporationWalletDivision"""
|
|
7
|
-
params = {
|
|
8
|
-
"character": character,
|
|
9
|
-
}
|
|
10
|
-
params.update(kwargs)
|
|
11
|
-
division = CharacterMiningLedger(**params)
|
|
12
|
-
division.save()
|
|
13
|
-
return division
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"""Generate AllianceAuth test objects from allianceauth.json."""
|
|
2
|
-
|
|
3
|
-
# Standard Library
|
|
4
|
-
import json
|
|
5
|
-
from pathlib import Path
|
|
6
|
-
|
|
7
|
-
# Alliance Auth (External Libs)
|
|
8
|
-
from eveuniverse.models import EvePlanet
|
|
9
|
-
|
|
10
|
-
# AA Ledger
|
|
11
|
-
from ledger.models.characteraudit import CharacterAudit
|
|
12
|
-
from ledger.models.planetary import CharacterPlanet, CharacterPlanetDetails
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
def _load_planetary_data():
|
|
16
|
-
with open(Path(__file__).parent / "planetary.json", encoding="utf-8") as fp:
|
|
17
|
-
return json.load(fp)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
_planetary_data = _load_planetary_data()
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def create_character_planet(
|
|
24
|
-
characteraudit: CharacterAudit, planet_id: int, **kwargs
|
|
25
|
-
) -> CharacterPlanet:
|
|
26
|
-
"""Create a CharacterPlanet from CharacterAudit and planet_id."""
|
|
27
|
-
params = {
|
|
28
|
-
"character": characteraudit,
|
|
29
|
-
"planet": EvePlanet.objects.get(id=planet_id),
|
|
30
|
-
}
|
|
31
|
-
params.update(kwargs)
|
|
32
|
-
planet = CharacterPlanet(**params)
|
|
33
|
-
planet.save()
|
|
34
|
-
return planet
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
def create_character_planet_details(
|
|
38
|
-
characterplanet: CharacterPlanet, **kwargs
|
|
39
|
-
) -> CharacterPlanetDetails:
|
|
40
|
-
"""Create a CharacterPlanetDetails from CharacterPlanet."""
|
|
41
|
-
params = {
|
|
42
|
-
"character": characterplanet.character,
|
|
43
|
-
"planet": characterplanet,
|
|
44
|
-
}
|
|
45
|
-
params.update(kwargs)
|
|
46
|
-
planetdetails = CharacterPlanetDetails(**params)
|
|
47
|
-
planetdetails.save()
|
|
48
|
-
return planetdetails
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Alliance Auth
|
|
2
|
-
from allianceauth.eveonline.models import EveCharacter
|
|
3
|
-
|
|
4
|
-
# Alliance Auth (External Libs)
|
|
5
|
-
from app_utils.testing import (
|
|
6
|
-
create_user_from_evecharacter,
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
# AA Ledger
|
|
10
|
-
from ledger.models.characteraudit import CharacterWalletJournalEntry
|
|
11
|
-
from ledger.models.corporationaudit import (
|
|
12
|
-
CorporationAudit,
|
|
13
|
-
CorporationWalletDivision,
|
|
14
|
-
CorporationWalletJournalEntry,
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def create_division(
|
|
19
|
-
corporation: CorporationAudit, **kwargs
|
|
20
|
-
) -> CorporationWalletDivision:
|
|
21
|
-
"""Create a CorporationWalletDivision"""
|
|
22
|
-
params = {
|
|
23
|
-
"corporation": corporation,
|
|
24
|
-
}
|
|
25
|
-
params.update(kwargs)
|
|
26
|
-
division = CorporationWalletDivision(**params)
|
|
27
|
-
division.save()
|
|
28
|
-
return division
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def create_wallet_journal_entry(
|
|
32
|
-
journal_type: str, **kwargs
|
|
33
|
-
) -> CorporationWalletJournalEntry | CharacterWalletJournalEntry:
|
|
34
|
-
"""Create a CorporationWalletJournalEntry"""
|
|
35
|
-
params = {}
|
|
36
|
-
params.update(kwargs)
|
|
37
|
-
if journal_type == "corporation":
|
|
38
|
-
journal_entry = CorporationWalletJournalEntry(**params)
|
|
39
|
-
else:
|
|
40
|
-
journal_entry = CharacterWalletJournalEntry(**params)
|
|
41
|
-
journal_entry.save()
|
|
42
|
-
return journal_entry
|