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
ledger/tests/test_tasks.py
DELETED
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
# Standard Library
|
|
2
|
-
import logging
|
|
3
|
-
from unittest.mock import patch
|
|
4
|
-
|
|
5
|
-
# Django
|
|
6
|
-
from django.test import TestCase
|
|
7
|
-
from django.test.utils import override_settings
|
|
8
|
-
from django.utils import timezone
|
|
9
|
-
|
|
10
|
-
# AA Ledger
|
|
11
|
-
from ledger import tasks
|
|
12
|
-
from ledger.app_settings import LEDGER_CACHE_KEY
|
|
13
|
-
from ledger.models.planetary import CharacterPlanetDetails
|
|
14
|
-
from ledger.tests.testdata.generate_characteraudit import (
|
|
15
|
-
create_characteraudit_from_evecharacter,
|
|
16
|
-
create_update_status,
|
|
17
|
-
)
|
|
18
|
-
from ledger.tests.testdata.generate_corporationaudit import (
|
|
19
|
-
create_corporation_update_status,
|
|
20
|
-
create_corporationaudit_from_evecharacter,
|
|
21
|
-
)
|
|
22
|
-
from ledger.tests.testdata.generate_planets import (
|
|
23
|
-
_planetary_data,
|
|
24
|
-
create_character_planet,
|
|
25
|
-
create_character_planet_details,
|
|
26
|
-
)
|
|
27
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
28
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
29
|
-
|
|
30
|
-
TASK_PATH = "ledger.tasks"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
@patch(TASK_PATH + ".update_character", spec=True)
|
|
34
|
-
class TestUpdateAllCharacters(TestCase):
|
|
35
|
-
@classmethod
|
|
36
|
-
def setUpClass(cls):
|
|
37
|
-
super().setUpClass()
|
|
38
|
-
load_allianceauth()
|
|
39
|
-
|
|
40
|
-
cls.audit = create_characteraudit_from_evecharacter(1001)
|
|
41
|
-
|
|
42
|
-
def test_should_update_all_characters(self, mock_update_character):
|
|
43
|
-
# when
|
|
44
|
-
tasks.update_all_characters()
|
|
45
|
-
# then
|
|
46
|
-
self.assertTrue(mock_update_character.apply_async.called)
|
|
47
|
-
|
|
48
|
-
def test_should_update_subset_characters(self, mock_update_character):
|
|
49
|
-
# when
|
|
50
|
-
tasks.update_subset_characters()
|
|
51
|
-
# then
|
|
52
|
-
self.assertTrue(mock_update_character.apply_async.called)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
@patch(TASK_PATH + ".chain", spec=True)
|
|
56
|
-
@patch(TASK_PATH + ".logger", spec=True)
|
|
57
|
-
class TestUpdateCharacter(TestCase):
|
|
58
|
-
@classmethod
|
|
59
|
-
def setUpClass(cls):
|
|
60
|
-
super().setUpClass()
|
|
61
|
-
load_allianceauth()
|
|
62
|
-
|
|
63
|
-
cls.audit = create_characteraudit_from_evecharacter(1001)
|
|
64
|
-
|
|
65
|
-
def test_update_character_should_no_updated(self, mock_logger, __):
|
|
66
|
-
# given
|
|
67
|
-
for section in self.audit.UpdateSection.get_sections():
|
|
68
|
-
create_update_status(
|
|
69
|
-
self.audit,
|
|
70
|
-
section=section,
|
|
71
|
-
is_success=True,
|
|
72
|
-
error_message="",
|
|
73
|
-
has_token_error=False,
|
|
74
|
-
last_run_at=timezone.now(),
|
|
75
|
-
last_run_finished_at=timezone.now(),
|
|
76
|
-
last_update_at=timezone.now(),
|
|
77
|
-
last_update_finished_at=timezone.now(),
|
|
78
|
-
)
|
|
79
|
-
|
|
80
|
-
# when
|
|
81
|
-
tasks.update_character(self.audit.pk)
|
|
82
|
-
# then
|
|
83
|
-
mock_logger.info.assert_called_once_with(
|
|
84
|
-
"No updates needed for %s",
|
|
85
|
-
self.audit.eve_character.character_name,
|
|
86
|
-
)
|
|
87
|
-
|
|
88
|
-
def test_update_character_should_update(self, mock_logger, mock_chain):
|
|
89
|
-
# given
|
|
90
|
-
create_update_status(
|
|
91
|
-
self.audit,
|
|
92
|
-
section=self.audit.UpdateSection.WALLET_JOURNAL,
|
|
93
|
-
is_success=True,
|
|
94
|
-
error_message="",
|
|
95
|
-
has_token_error=False,
|
|
96
|
-
last_run_at=None,
|
|
97
|
-
last_run_finished_at=None,
|
|
98
|
-
last_update_at=None,
|
|
99
|
-
last_update_finished_at=None,
|
|
100
|
-
)
|
|
101
|
-
|
|
102
|
-
# when
|
|
103
|
-
tasks.update_character(self.audit.pk)
|
|
104
|
-
# then
|
|
105
|
-
mock_chain.assert_called_once()
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
@patch(TASK_PATH + ".update_corporation", spec=True)
|
|
109
|
-
class TestUpdateAllCorporations(TestCase):
|
|
110
|
-
@classmethod
|
|
111
|
-
def setUpClass(cls):
|
|
112
|
-
super().setUpClass()
|
|
113
|
-
load_allianceauth()
|
|
114
|
-
|
|
115
|
-
cls.audit = create_corporationaudit_from_evecharacter(1001)
|
|
116
|
-
|
|
117
|
-
def test_should_update_all_corporations(self, mock_update_corporation):
|
|
118
|
-
# when
|
|
119
|
-
tasks.update_all_corporations()
|
|
120
|
-
# then
|
|
121
|
-
self.assertTrue(mock_update_corporation.apply_async.called)
|
|
122
|
-
|
|
123
|
-
def test_should_update_subset_corporation(self, mock_update_corporation):
|
|
124
|
-
# when
|
|
125
|
-
tasks.update_subset_corporations()
|
|
126
|
-
# then
|
|
127
|
-
self.assertTrue(mock_update_corporation.apply_async.called)
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
@patch(TASK_PATH + ".chain", spec=True)
|
|
131
|
-
@patch(TASK_PATH + ".logger", spec=True)
|
|
132
|
-
class TestUpdateCorporation(TestCase):
|
|
133
|
-
@classmethod
|
|
134
|
-
def setUpClass(cls):
|
|
135
|
-
super().setUpClass()
|
|
136
|
-
load_allianceauth()
|
|
137
|
-
|
|
138
|
-
cls.audit = create_corporationaudit_from_evecharacter(1001)
|
|
139
|
-
|
|
140
|
-
def test_update_corporation_should_no_updated(self, mock_logger, __):
|
|
141
|
-
# given
|
|
142
|
-
for section in self.audit.UpdateSection.get_sections():
|
|
143
|
-
create_corporation_update_status(
|
|
144
|
-
self.audit,
|
|
145
|
-
section=section,
|
|
146
|
-
is_success=True,
|
|
147
|
-
error_message="",
|
|
148
|
-
has_token_error=False,
|
|
149
|
-
last_run_at=timezone.now(),
|
|
150
|
-
last_run_finished_at=timezone.now(),
|
|
151
|
-
last_update_at=timezone.now(),
|
|
152
|
-
last_update_finished_at=timezone.now(),
|
|
153
|
-
)
|
|
154
|
-
# when
|
|
155
|
-
tasks.update_corporation(self.audit.pk)
|
|
156
|
-
# then
|
|
157
|
-
mock_logger.info.assert_called_once_with(
|
|
158
|
-
"No updates needed for %s",
|
|
159
|
-
self.audit.corporation.corporation_name,
|
|
160
|
-
)
|
|
161
|
-
|
|
162
|
-
def test_update_corporation_should_update(self, mock_logger, mock_chain):
|
|
163
|
-
# given
|
|
164
|
-
create_corporation_update_status(
|
|
165
|
-
self.audit,
|
|
166
|
-
section=self.audit.UpdateSection.WALLET_JOURNAL,
|
|
167
|
-
is_success=True,
|
|
168
|
-
error_message="",
|
|
169
|
-
has_token_error=False,
|
|
170
|
-
last_run_at=None,
|
|
171
|
-
last_run_finished_at=None,
|
|
172
|
-
last_update_at=None,
|
|
173
|
-
last_update_finished_at=None,
|
|
174
|
-
)
|
|
175
|
-
|
|
176
|
-
# when
|
|
177
|
-
tasks.update_corporation(self.audit.pk)
|
|
178
|
-
# then
|
|
179
|
-
mock_chain.assert_called_once()
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
@override_settings(
|
|
183
|
-
CELERY_ALWAYS_EAGER=True,
|
|
184
|
-
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
|
|
185
|
-
APP_UTILS_OBJECT_CACHE_DISABLED=True,
|
|
186
|
-
)
|
|
187
|
-
@patch(TASK_PATH + ".logger", spec=True)
|
|
188
|
-
class TestClearEtag(TestCase):
|
|
189
|
-
@classmethod
|
|
190
|
-
def setUpClass(cls):
|
|
191
|
-
super().setUpClass()
|
|
192
|
-
load_allianceauth()
|
|
193
|
-
|
|
194
|
-
def test_clear_all_etag_return_no_etags(self, mock_logger):
|
|
195
|
-
# when
|
|
196
|
-
tasks.clear_all_etags()
|
|
197
|
-
|
|
198
|
-
# then
|
|
199
|
-
mock_logger.info.assert_any_call("Deleting %s etag keys", 0)
|
|
200
|
-
mock_logger.info.assert_any_call("No etag keys to delete")
|
|
201
|
-
|
|
202
|
-
def test_clear_all_etag_return_etags(self, mock_logger):
|
|
203
|
-
# given
|
|
204
|
-
# pylint: disable=import-outside-toplevel
|
|
205
|
-
# Third Party
|
|
206
|
-
from django_redis import get_redis_connection
|
|
207
|
-
|
|
208
|
-
_client = get_redis_connection("default")
|
|
209
|
-
keys = _client.keys(f":?:{LEDGER_CACHE_KEY}-*")
|
|
210
|
-
|
|
211
|
-
# when
|
|
212
|
-
tasks.clear_all_etags()
|
|
213
|
-
|
|
214
|
-
# then
|
|
215
|
-
mock_logger.info.assert_any_call("Deleting %s etag keys", len(keys))
|
|
216
|
-
mock_logger.info.assert_any_call("Deleted %s etag keys", len(keys))
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
@override_settings(
|
|
220
|
-
CELERY_ALWAYS_EAGER=True,
|
|
221
|
-
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True,
|
|
222
|
-
APP_UTILS_OBJECT_CACHE_DISABLED=True,
|
|
223
|
-
)
|
|
224
|
-
class TestCheckPlanetaryNotification(TestCase):
|
|
225
|
-
@classmethod
|
|
226
|
-
def setUpClass(cls):
|
|
227
|
-
super().setUpClass()
|
|
228
|
-
load_allianceauth()
|
|
229
|
-
load_eveuniverse()
|
|
230
|
-
|
|
231
|
-
cls.planet_params = {
|
|
232
|
-
"upgrade_level": 5,
|
|
233
|
-
"num_pins": 5,
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
cls.planetdetails_params = {
|
|
237
|
-
"pin_id": 1,
|
|
238
|
-
"pin_type": "Extractor",
|
|
239
|
-
"status": "Active",
|
|
240
|
-
"last_update": None,
|
|
241
|
-
"last_update_finished_at": None,
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
cls.audit = create_characteraudit_from_evecharacter(1001)
|
|
245
|
-
|
|
246
|
-
cls.audit2 = create_characteraudit_from_evecharacter(1002)
|
|
247
|
-
|
|
248
|
-
cls.planet_1 = create_character_planet(
|
|
249
|
-
cls.audit, planet_id=4001, **cls.planet_params
|
|
250
|
-
)
|
|
251
|
-
|
|
252
|
-
cls.planet_2 = create_character_planet(
|
|
253
|
-
cls.audit2, planet_id=4001, **cls.planet_params
|
|
254
|
-
)
|
|
255
|
-
|
|
256
|
-
cls.planet_3 = create_character_planet(
|
|
257
|
-
cls.audit2, planet_id=4002, **cls.planet_params
|
|
258
|
-
)
|
|
259
|
-
|
|
260
|
-
cls.planetdetails_1 = create_character_planet_details(
|
|
261
|
-
cls.planet_1, notification=True, **_planetary_data
|
|
262
|
-
)
|
|
263
|
-
|
|
264
|
-
cls.planetdetails_2 = create_character_planet_details(
|
|
265
|
-
cls.planet_2,
|
|
266
|
-
notification=True,
|
|
267
|
-
)
|
|
268
|
-
|
|
269
|
-
cls.planetdetails_3 = create_character_planet_details(
|
|
270
|
-
cls.planet_3, notification=True, **_planetary_data
|
|
271
|
-
)
|
|
272
|
-
|
|
273
|
-
def test_check_planetary_notification(self):
|
|
274
|
-
# when
|
|
275
|
-
tasks.check_planetary_alarms()
|
|
276
|
-
# then
|
|
277
|
-
self.assertEqual(
|
|
278
|
-
CharacterPlanetDetails.objects.filter(
|
|
279
|
-
notification_sent=True,
|
|
280
|
-
).count(),
|
|
281
|
-
2,
|
|
282
|
-
)
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Django
|
|
2
|
-
from django.test import RequestFactory, TestCase
|
|
3
|
-
|
|
4
|
-
# AA Ledger
|
|
5
|
-
from ledger.helpers.core import (
|
|
6
|
-
add_info_to_context,
|
|
7
|
-
)
|
|
8
|
-
from ledger.tests.testdata.generate_corporationaudit import (
|
|
9
|
-
add_corporationaudit_corporation_to_user,
|
|
10
|
-
create_user_from_evecharacter,
|
|
11
|
-
)
|
|
12
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
13
|
-
from ledger.tests.testdata.load_eveentity import load_eveentity
|
|
14
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
15
|
-
|
|
16
|
-
MODULE_PATH = "ledger.view_helpers.core"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class TestViewHelpers(TestCase):
|
|
20
|
-
@classmethod
|
|
21
|
-
def setUpClass(cls):
|
|
22
|
-
super().setUpClass()
|
|
23
|
-
load_allianceauth()
|
|
24
|
-
load_eveuniverse()
|
|
25
|
-
load_eveentity()
|
|
26
|
-
|
|
27
|
-
cls.factory = RequestFactory()
|
|
28
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter(
|
|
29
|
-
1001, permissions=["ledger.basic_access"]
|
|
30
|
-
)
|
|
31
|
-
cls.audit = add_corporationaudit_corporation_to_user(
|
|
32
|
-
cls.user, cls.character_ownership.character.character_id
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
def test_add_info_to_context(self):
|
|
36
|
-
# given
|
|
37
|
-
request = self.factory.get("/")
|
|
38
|
-
request.user = self.user
|
|
39
|
-
|
|
40
|
-
context = {
|
|
41
|
-
"theme": None,
|
|
42
|
-
"issues": [],
|
|
43
|
-
}
|
|
44
|
-
# when
|
|
45
|
-
result = add_info_to_context(request, context)
|
|
46
|
-
# then
|
|
47
|
-
self.assertEqual(result, context)
|
|
@@ -1,267 +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, override_settings
|
|
10
|
-
from django.urls import reverse
|
|
11
|
-
from django.utils import timezone
|
|
12
|
-
|
|
13
|
-
# AA Ledger
|
|
14
|
-
from ledger.models.general import EveEntity
|
|
15
|
-
from ledger.tests.testdata.generate_corporationaudit import (
|
|
16
|
-
create_corporationaudit_from_user,
|
|
17
|
-
create_user_from_evecharacter,
|
|
18
|
-
)
|
|
19
|
-
from ledger.tests.testdata.generate_walletjournal import (
|
|
20
|
-
create_division,
|
|
21
|
-
create_wallet_journal_entry,
|
|
22
|
-
)
|
|
23
|
-
from ledger.tests.testdata.load_allianceauth import load_allianceauth
|
|
24
|
-
from ledger.tests.testdata.load_eveentity import load_eveentity
|
|
25
|
-
from ledger.tests.testdata.load_eveuniverse import load_eveuniverse
|
|
26
|
-
from ledger.views.corporation.corporation_ledger import (
|
|
27
|
-
corporation_data_export_generate,
|
|
28
|
-
corporation_data_export_run_update,
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
MODULE_PATH = "ledger.views.corporation.corporation_ledger"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
@patch(MODULE_PATH + ".messages")
|
|
35
|
-
@patch(MODULE_PATH + ".tasks")
|
|
36
|
-
@override_settings(CELERY_ALWAYS_EAGER=True, CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
|
|
37
|
-
class TestCorporationLedgerView(TestCase):
|
|
38
|
-
@classmethod
|
|
39
|
-
def setUpClass(cls):
|
|
40
|
-
super().setUpClass()
|
|
41
|
-
load_allianceauth()
|
|
42
|
-
load_eveuniverse()
|
|
43
|
-
load_eveentity()
|
|
44
|
-
|
|
45
|
-
cls.factory = RequestFactory()
|
|
46
|
-
cls.user, cls.character_ownership = create_user_from_evecharacter(
|
|
47
|
-
1001,
|
|
48
|
-
permissions=[
|
|
49
|
-
"ledger.basic_access",
|
|
50
|
-
"ledger.advanced_access",
|
|
51
|
-
"ledger.manage_access",
|
|
52
|
-
],
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
cls.user_no_permissions, cls.character_ownership = (
|
|
56
|
-
create_user_from_evecharacter(
|
|
57
|
-
1002,
|
|
58
|
-
permissions=[
|
|
59
|
-
"ledger.basic_access",
|
|
60
|
-
"ledger.advanced_access",
|
|
61
|
-
"ledger.manage_access",
|
|
62
|
-
],
|
|
63
|
-
)
|
|
64
|
-
)
|
|
65
|
-
cls.audit = create_corporationaudit_from_user(cls.user)
|
|
66
|
-
|
|
67
|
-
cls.eve_character_first_party = EveEntity.objects.get(eve_id=2001)
|
|
68
|
-
cls.eve_character_second_party = EveEntity.objects.get(eve_id=1001)
|
|
69
|
-
|
|
70
|
-
cls.division = create_division(
|
|
71
|
-
corporation=cls.audit, name="MEGA KONTO", balance=1000000, division_id=1
|
|
72
|
-
)
|
|
73
|
-
|
|
74
|
-
cls.journal_entry = create_wallet_journal_entry(
|
|
75
|
-
journal_type="corporation",
|
|
76
|
-
division=cls.division,
|
|
77
|
-
context_id=1,
|
|
78
|
-
entry_id=10,
|
|
79
|
-
amount=1000,
|
|
80
|
-
balance=2000,
|
|
81
|
-
date=timezone.datetime.replace(
|
|
82
|
-
timezone.now(),
|
|
83
|
-
year=2016,
|
|
84
|
-
month=10,
|
|
85
|
-
day=29,
|
|
86
|
-
hour=0,
|
|
87
|
-
minute=0,
|
|
88
|
-
second=0,
|
|
89
|
-
microsecond=0,
|
|
90
|
-
),
|
|
91
|
-
description="Test Journal",
|
|
92
|
-
first_party=cls.eve_character_first_party,
|
|
93
|
-
second_party=cls.eve_character_second_party,
|
|
94
|
-
ref_type="player_donation",
|
|
95
|
-
)
|
|
96
|
-
|
|
97
|
-
def test_corporation_data_export_generate(self, mock_tasks, mock_messages):
|
|
98
|
-
"""Test should generate corporation data export"""
|
|
99
|
-
corporation_id = self.audit.corporation.corporation_id
|
|
100
|
-
mock_tasks.export_data_ledger.apply_async = Mock()
|
|
101
|
-
|
|
102
|
-
form_data = {
|
|
103
|
-
"year": "2016",
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
request = self.factory.post(
|
|
107
|
-
reverse("ledger:corporation_data_export_generate", args=[corporation_id]),
|
|
108
|
-
data=form_data,
|
|
109
|
-
)
|
|
110
|
-
|
|
111
|
-
request.user = self.user
|
|
112
|
-
|
|
113
|
-
response = corporation_data_export_generate(
|
|
114
|
-
request, corporation_id=corporation_id
|
|
115
|
-
)
|
|
116
|
-
|
|
117
|
-
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
118
|
-
mock_messages.info.assert_called_once_with(
|
|
119
|
-
request,
|
|
120
|
-
f"Data export for {corporation_id} has been started. This can take a couple of minutes. You will get a notification once it is completed.",
|
|
121
|
-
)
|
|
122
|
-
mock_tasks.export_data_ledger.apply_async.assert_called_once()
|
|
123
|
-
|
|
124
|
-
def test_corporation_data_export_generate_no_permission(
|
|
125
|
-
self, mock_tasks, mock_messages
|
|
126
|
-
):
|
|
127
|
-
"""Test should not generate corporation data export due to no permission"""
|
|
128
|
-
corporation_id = self.audit.corporation.corporation_id
|
|
129
|
-
mock_tasks.export_data_ledger.apply_async = Mock()
|
|
130
|
-
|
|
131
|
-
form_data = {
|
|
132
|
-
"year": "2016",
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
request = self.factory.post(
|
|
136
|
-
reverse("ledger:corporation_data_export_generate", args=[corporation_id]),
|
|
137
|
-
data=form_data,
|
|
138
|
-
)
|
|
139
|
-
|
|
140
|
-
request.user = self.user_no_permissions
|
|
141
|
-
|
|
142
|
-
response = corporation_data_export_generate(
|
|
143
|
-
request, corporation_id=corporation_id
|
|
144
|
-
)
|
|
145
|
-
|
|
146
|
-
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
147
|
-
mock_messages.error.assert_called_once_with(request, "Permission Denied")
|
|
148
|
-
mock_tasks.export_data_ledger.apply_async.assert_not_called()
|
|
149
|
-
|
|
150
|
-
def test_corporation_data_export_generate_corporation_not_found(
|
|
151
|
-
self, mock_tasks, mock_messages
|
|
152
|
-
):
|
|
153
|
-
"""Test should not generate corporation data export due to corporation not found"""
|
|
154
|
-
corporation_id = 9999 # Non-existent corporation ID
|
|
155
|
-
mock_tasks.export_data_ledger.apply_async = Mock()
|
|
156
|
-
|
|
157
|
-
form_data = {
|
|
158
|
-
"year": "2016",
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
request = self.factory.post(
|
|
162
|
-
reverse("ledger:corporation_data_export_generate", args=[corporation_id]),
|
|
163
|
-
data=form_data,
|
|
164
|
-
)
|
|
165
|
-
|
|
166
|
-
request.user = self.user
|
|
167
|
-
|
|
168
|
-
response = corporation_data_export_generate(
|
|
169
|
-
request, corporation_id=corporation_id
|
|
170
|
-
)
|
|
171
|
-
|
|
172
|
-
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
173
|
-
mock_messages.info.assert_called_once_with(request, "Corporation not found")
|
|
174
|
-
mock_tasks.export_data_ledger.apply_async.assert_not_called()
|
|
175
|
-
|
|
176
|
-
def test_corporation_data_export_generate_invalid_form(
|
|
177
|
-
self, mock_tasks, mock_messages
|
|
178
|
-
):
|
|
179
|
-
"""Test should not generate corporation data export due to invalid form"""
|
|
180
|
-
corporation_id = self.audit.corporation.corporation_id
|
|
181
|
-
mock_tasks.export_data_ledger.apply_async = Mock()
|
|
182
|
-
|
|
183
|
-
form_data = {
|
|
184
|
-
"year": "invalid_year", # Invalid year
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
request = self.factory.post(
|
|
188
|
-
reverse("ledger:corporation_data_export_generate", args=[corporation_id]),
|
|
189
|
-
data=form_data,
|
|
190
|
-
)
|
|
191
|
-
|
|
192
|
-
request.user = self.user
|
|
193
|
-
|
|
194
|
-
response = corporation_data_export_generate(
|
|
195
|
-
request, corporation_id=corporation_id
|
|
196
|
-
)
|
|
197
|
-
|
|
198
|
-
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
199
|
-
mock_messages.error.assert_called_once_with(request, "Invalid form submission.")
|
|
200
|
-
mock_tasks.export_data_ledger.apply_async.assert_not_called()
|
|
201
|
-
|
|
202
|
-
@patch(MODULE_PATH + ".data_exporter.LedgerCSVExporter.decoder")
|
|
203
|
-
def test_corporation_data_export_run_update(
|
|
204
|
-
self, mock_decoder, mock_tasks, mock_messages
|
|
205
|
-
):
|
|
206
|
-
"""Test should run corporation data export update task"""
|
|
207
|
-
corporation_id = self.audit.corporation.corporation_id
|
|
208
|
-
hashcode = "testhashcode"
|
|
209
|
-
mock_tasks.export_data_ledger.apply_async = Mock()
|
|
210
|
-
mock_decoder.return_value = (2001, 1, 2016, 1)
|
|
211
|
-
|
|
212
|
-
request = self.factory.get(
|
|
213
|
-
reverse("ledger:corporation_data_export_run_update", args=[hashcode]),
|
|
214
|
-
)
|
|
215
|
-
|
|
216
|
-
request.user = self.user
|
|
217
|
-
|
|
218
|
-
response = corporation_data_export_run_update(request, hash_code=hashcode)
|
|
219
|
-
|
|
220
|
-
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
221
|
-
mock_messages.info.assert_called_once_with(
|
|
222
|
-
request,
|
|
223
|
-
f"Data export for {corporation_id} has been started. This can take a couple of minutes. You will get a notification once it is completed.",
|
|
224
|
-
)
|
|
225
|
-
mock_tasks.export_data_ledger.apply_async.assert_called_once()
|
|
226
|
-
|
|
227
|
-
@patch(MODULE_PATH + ".data_exporter.LedgerCSVExporter.decoder")
|
|
228
|
-
def test_corporation_data_export_run_update_no_permission(
|
|
229
|
-
self, mock_decoder, mock_tasks, mock_messages
|
|
230
|
-
):
|
|
231
|
-
"""Test should not run corporation data export update task due to no permission"""
|
|
232
|
-
hashcode = "testhashcode"
|
|
233
|
-
mock_tasks.export_data_ledger.apply_async = Mock()
|
|
234
|
-
mock_decoder.return_value = (2001, 1, 2016, 1)
|
|
235
|
-
|
|
236
|
-
request = self.factory.get(
|
|
237
|
-
reverse("ledger:corporation_data_export_run_update", args=[hashcode]),
|
|
238
|
-
)
|
|
239
|
-
|
|
240
|
-
request.user = self.user_no_permissions
|
|
241
|
-
|
|
242
|
-
response = corporation_data_export_run_update(request, hash_code=hashcode)
|
|
243
|
-
|
|
244
|
-
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
245
|
-
mock_messages.error.assert_called_once_with(request, "Permission Denied")
|
|
246
|
-
mock_tasks.export_data_ledger.apply_async.assert_not_called()
|
|
247
|
-
|
|
248
|
-
@patch(MODULE_PATH + ".data_exporter.LedgerCSVExporter.decoder")
|
|
249
|
-
def test_corporation_data_export_run_update_corporation_not_found(
|
|
250
|
-
self, mock_decoder, mock_tasks, mock_messages
|
|
251
|
-
):
|
|
252
|
-
"""Test should not run corporation data export update task due to corporation not found"""
|
|
253
|
-
hashcode = "testhashcode"
|
|
254
|
-
mock_tasks.export_data_ledger.apply_async = Mock()
|
|
255
|
-
mock_decoder.return_value = (9999, 1, 2016, 1)
|
|
256
|
-
|
|
257
|
-
request = self.factory.get(
|
|
258
|
-
reverse("ledger:corporation_data_export_run_update", args=[hashcode]),
|
|
259
|
-
)
|
|
260
|
-
|
|
261
|
-
request.user = self.user
|
|
262
|
-
|
|
263
|
-
response = corporation_data_export_run_update(request, hash_code=hashcode)
|
|
264
|
-
|
|
265
|
-
self.assertEqual(response.status_code, HTTPStatus.FOUND)
|
|
266
|
-
mock_messages.info.assert_called_once_with(request, "Corporation not found")
|
|
267
|
-
mock_tasks.export_data_ledger.apply_async.assert_not_called()
|