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