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.
Files changed (280) hide show
  1. {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/METADATA +6 -6
  2. aa_ledger-2.0.0.dist-info/RECORD +267 -0
  3. {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/WHEEL +1 -1
  4. ledger/__init__.py +2 -2
  5. ledger/admin.py +23 -18
  6. ledger/api/__init__.py +23 -7
  7. ledger/api/{ledger/admin.py → admin.py} +25 -31
  8. ledger/api/alliance.py +755 -0
  9. ledger/api/character.py +786 -0
  10. ledger/api/corporation.py +1141 -0
  11. ledger/api/{helpers.py → helpers/core.py} +33 -33
  12. ledger/api/helpers/icons.py +372 -0
  13. ledger/api/helpers/planetary_helper.py +354 -0
  14. ledger/api/planetary.py +354 -0
  15. ledger/api/schema.py +240 -15
  16. ledger/app_settings.py +18 -26
  17. ledger/auth_hooks.py +2 -2
  18. ledger/constants.py +50 -177
  19. ledger/decorators.py +2 -46
  20. ledger/forms.py +133 -39
  21. ledger/helpers/billboard.py +194 -144
  22. ledger/helpers/cache.py +105 -0
  23. ledger/helpers/discord.py +2 -4
  24. ledger/helpers/eveonline.py +160 -0
  25. ledger/helpers/ledger_data.py +23 -0
  26. ledger/helpers/ref_type.py +53 -78
  27. ledger/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  28. ledger/locale/cs_CZ/LC_MESSAGES/django.po +349 -193
  29. ledger/locale/de/LC_MESSAGES/django.mo +0 -0
  30. ledger/locale/de/LC_MESSAGES/django.po +528 -379
  31. ledger/locale/django.pot +717 -553
  32. ledger/locale/es/LC_MESSAGES/django.mo +0 -0
  33. ledger/locale/es/LC_MESSAGES/django.po +349 -194
  34. ledger/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  35. ledger/locale/fr_FR/LC_MESSAGES/django.po +349 -193
  36. ledger/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  37. ledger/locale/it_IT/LC_MESSAGES/django.po +349 -193
  38. ledger/locale/ja/LC_MESSAGES/django.mo +0 -0
  39. ledger/locale/ja/LC_MESSAGES/django.po +348 -193
  40. ledger/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  41. ledger/locale/ko_KR/LC_MESSAGES/django.po +349 -193
  42. ledger/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  43. ledger/locale/nl_NL/LC_MESSAGES/django.po +349 -193
  44. ledger/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  45. ledger/locale/pl_PL/LC_MESSAGES/django.po +350 -193
  46. ledger/locale/ru/LC_MESSAGES/django.mo +0 -0
  47. ledger/locale/ru/LC_MESSAGES/django.po +348 -193
  48. ledger/locale/sk/LC_MESSAGES/django.mo +0 -0
  49. ledger/locale/sk/LC_MESSAGES/django.po +348 -193
  50. ledger/locale/uk/LC_MESSAGES/django.mo +0 -0
  51. ledger/locale/uk/LC_MESSAGES/django.po +348 -193
  52. ledger/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  53. ledger/locale/zh_Hans/LC_MESSAGES/django.po +348 -193
  54. ledger/managers/character_audit_manager.py +28 -20
  55. ledger/managers/character_journal_manager.py +187 -358
  56. ledger/managers/character_mining_manager.py +64 -30
  57. ledger/managers/character_planetary_manager.py +185 -138
  58. ledger/managers/corporation_audit_manager.py +36 -27
  59. ledger/managers/corporation_journal_manager.py +94 -57
  60. ledger/managers/general_manager.py +12 -8
  61. ledger/migrations/0018_remove_characterplanet_ledger_char_planet__58a5b6_idx_and_more.py +44 -0
  62. ledger/migrations/0019_rename_characteraudit_characterowner_and_more.py +48 -0
  63. ledger/models/__init__.py +5 -11
  64. ledger/models/characteraudit.py +101 -109
  65. ledger/models/corporationaudit.py +94 -49
  66. ledger/models/general.py +105 -211
  67. ledger/models/helpers/update_manager.py +302 -0
  68. ledger/models/planetary.py +60 -205
  69. ledger/providers.py +101 -0
  70. ledger/static/ledger/css/{ledger.css → aa-ledger.css} +54 -28
  71. ledger/static/ledger/js/aa-ledger.js +124 -0
  72. ledger/static/ledger/js/charts.js +25 -1
  73. ledger/static/ledger/js/view-alliance-ledger.js +383 -0
  74. ledger/static/ledger/js/view-character-ledger.js +388 -0
  75. ledger/static/ledger/js/view-corporation-ledger.js +402 -0
  76. ledger/static/ledger/js/view-planetary.js +492 -0
  77. ledger/static/ledger/libs/amCharts/5.14.4/js/flow.js +2 -0
  78. ledger/static/ledger/libs/amCharts/5.14.4/js/index.js +2 -0
  79. ledger/static/ledger/libs/amCharts/5.14.4/js/percent.js +2 -0
  80. ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Animated.js +2 -0
  81. ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Dark.js +2 -0
  82. ledger/static/ledger/libs/amCharts/5.14.4/js/xy.js +2 -0
  83. ledger/static/ledger/libs/datatables/2.3.5/css/dataTables.bootstrap5.css +610 -0
  84. ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.bootstrap5.js +122 -0
  85. ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.js +14127 -0
  86. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.bootstrap5.css +516 -0
  87. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.dataTables.css +529 -0
  88. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/columnControl.bootstrap5.js +73 -0
  89. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/dataTables.columnControl.js +3090 -0
  90. ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/css/fixedHeader.bootstrap5.css +20 -0
  91. ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/dataTables.fixedHeader.js +1203 -0
  92. ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/fixedHeader.bootstrap5.js +59 -0
  93. ledger/tasks.py +157 -146
  94. ledger/templates/ledger/base.html +59 -21
  95. ledger/templates/ledger/bundles/aa-ledger-css.html +3 -0
  96. ledger/templates/ledger/bundles/aa-ledger-js.html +3 -0
  97. ledger/templates/ledger/bundles/view-alliance-ledger-js.html +14 -0
  98. ledger/templates/ledger/bundles/view-character-ledger-js.html +15 -0
  99. ledger/templates/ledger/bundles/view-character-planetary-css.html +3 -0
  100. ledger/templates/ledger/bundles/view-character-planetary-js.html +4 -0
  101. ledger/templates/ledger/bundles/view-corporation-ledger-js.html +15 -0
  102. ledger/templates/ledger/partials/modal/confirm.html +0 -1
  103. ledger/templates/ledger/partials/modal/request-accept-delete-alliance.html +38 -0
  104. ledger/templates/ledger/partials/modal/request-accept-delete-character.html +38 -0
  105. ledger/templates/ledger/partials/modal/request-accept-delete-corporation.html +38 -0
  106. ledger/templates/ledger/partials/modal/request-accept-switch-notification.html +38 -0
  107. ledger/templates/ledger/partials/modal/request-view-alliance-details.html +26 -0
  108. ledger/templates/ledger/partials/modal/request-view-character-details.html +26 -0
  109. ledger/templates/ledger/partials/modal/request-view-corporation-details.html +26 -0
  110. ledger/templates/ledger/partials/modal/request-view-extractor.html +32 -0
  111. ledger/templates/ledger/partials/modal/request-view-factory.html +31 -0
  112. ledger/templates/ledger/partials/{menu → navigation}/administration.html +8 -0
  113. ledger/templates/ledger/partials/{menu → navigation}/navigation.html +2 -2
  114. ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance_corporations.html +3 -3
  115. ledger/templates/ledger/partials/view-alliance-administration/dashboard.html +81 -0
  116. ledger/templates/ledger/partials/view-alliance-ledger/alliance-billboard.html +25 -0
  117. ledger/templates/ledger/partials/view-alliance-ledger/alliance-ledger-details.html +21 -0
  118. ledger/templates/ledger/partials/view-alliance-ledger/alliance-table.html +24 -0
  119. ledger/templates/ledger/partials/view-alliance-ledger/information/daily.html +18 -0
  120. ledger/templates/ledger/partials/view-alliance-ledger/information/hourly.html +18 -0
  121. ledger/templates/ledger/partials/view-alliance-ledger/information/summary.html +19 -0
  122. ledger/templates/ledger/partials/{administration → view-character-administration}/character.html +1 -9
  123. ledger/templates/ledger/partials/{administration → view-character-administration}/dashboard.html +0 -34
  124. ledger/templates/ledger/partials/view-character-ledger/character-billboard.html +25 -0
  125. ledger/templates/ledger/partials/view-character-ledger/character-ledger-details.html +21 -0
  126. ledger/templates/ledger/partials/view-character-ledger/character-table.html +25 -0
  127. ledger/templates/ledger/partials/view-character-ledger/information/daily.html +18 -0
  128. ledger/templates/ledger/partials/view-character-ledger/information/hourly.html +18 -0
  129. ledger/templates/ledger/partials/view-character-ledger/information/summary.html +19 -0
  130. ledger/templates/ledger/partials/view-character-planetary/extractor-table.html +24 -0
  131. ledger/templates/ledger/partials/view-character-planetary/factory-table.html +24 -0
  132. ledger/templates/ledger/partials/view-character-planetary/planetary-table.html +22 -0
  133. ledger/templates/ledger/partials/view-character-planetary/storage-table.html +23 -0
  134. ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation.html +5 -13
  135. ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation_characters.html +1 -1
  136. ledger/templates/ledger/partials/view-corporation-administration/dashboard.html +81 -0
  137. ledger/templates/ledger/partials/view-corporation-ledger/corporation-billboard.html +25 -0
  138. ledger/templates/ledger/partials/view-corporation-ledger/corporation-ledger-details.html +21 -0
  139. ledger/templates/ledger/partials/view-corporation-ledger/corporation-table.html +26 -0
  140. ledger/templates/ledger/partials/view-corporation-ledger/information/daily.html +18 -0
  141. ledger/templates/ledger/partials/view-corporation-ledger/information/hourly.html +18 -0
  142. ledger/templates/ledger/partials/view-corporation-ledger/information/summary.html +19 -0
  143. ledger/templates/ledger/view-administration.html +62 -0
  144. ledger/templates/ledger/view-alliance-administration.html +49 -0
  145. ledger/templates/ledger/view-alliance-ledger.html +72 -0
  146. ledger/templates/ledger/view-alliance-overview.html +131 -0
  147. ledger/templates/ledger/view-character-administration.html +42 -0
  148. ledger/templates/ledger/view-character-ledger.html +73 -0
  149. ledger/templates/ledger/view-character-overview.html +135 -0
  150. ledger/templates/ledger/view-character-planetary-overview.html +135 -0
  151. ledger/templates/ledger/view-character-planetary.html +73 -0
  152. ledger/templates/ledger/view-corporation-administration.html +42 -0
  153. ledger/templates/ledger/view-corporation-ledger.html +73 -0
  154. ledger/templates/ledger/view-corporation-overview.html +131 -0
  155. ledger/templatetags/ledger.py +3 -5
  156. ledger/tests/__init__.py +187 -0
  157. ledger/tests/test_admin.py +164 -68
  158. ledger/tests/test_auth_hook.py +31 -13
  159. ledger/tests/test_decarators.py +14 -79
  160. ledger/tests/test_discord_installed.py +0 -1
  161. ledger/tests/test_helpers/test_ledger_data.py +19 -0
  162. ledger/tests/test_managers/test_character_audit_manager.py +111 -69
  163. ledger/tests/test_managers/test_character_journal_manager.py +48 -208
  164. ledger/tests/test_managers/test_character_mining_manager.py +37 -16
  165. ledger/tests/test_managers/test_corporation_division_manager.py +66 -28
  166. ledger/tests/test_managers/test_corporation_journal_manager.py +39 -42
  167. ledger/tests/test_managers/test_general_manager.py +78 -18
  168. ledger/tests/test_managers/test_planetary_manager.py +73 -32
  169. ledger/tests/test_models/test_characteraudit.py +58 -74
  170. ledger/tests/test_models/test_characterminingledger.py +20 -26
  171. ledger/tests/test_models/test_characterwalletjournal.py +10 -33
  172. ledger/tests/test_models/test_corporationaudit.py +41 -35
  173. ledger/tests/test_models/test_corporationwalletjournal.py +35 -32
  174. ledger/tests/test_models/test_general.py +44 -11
  175. ledger/tests/test_models/test_planetary.py +14 -80
  176. ledger/tests/test_templatetags.py +2 -7
  177. ledger/tests/test_views/corporation/test_add_corp.py +16 -35
  178. ledger/tests/test_views/corporation/test_delete_corporation.py +66 -42
  179. ledger/tests/test_views/test_access.py +512 -545
  180. ledger/tests/test_views/test_add_ally.py +57 -46
  181. ledger/tests/test_views/test_add_char.py +21 -33
  182. ledger/tests/test_views/test_delete_character.py +24 -21
  183. ledger/tests/testdata/README_ESI_STUB.md +430 -0
  184. ledger/tests/testdata/esi_stub_openapi.py +511 -0
  185. ledger/tests/testdata/integrations/__init__.py +0 -0
  186. ledger/tests/testdata/{load_eveuniverse.py → integrations/eveuniverse.py} +0 -1
  187. ledger/tests/testdata/integrations/planetary.py +13 -0
  188. ledger/tests/testdata/json/factory.json +281 -0
  189. ledger/tests/testdata/json/inactive.json +281 -0
  190. ledger/tests/testdata/json/pins.json +175 -272
  191. ledger/tests/testdata/json/route.json +95 -528
  192. ledger/tests/testdata/test_esi_stub.py +468 -0
  193. ledger/tests/testdata/utils.py +601 -0
  194. ledger/thirdparty/charlink_hook.py +60 -30
  195. ledger/urls.py +0 -135
  196. ledger/views/alliance/add_ally.py +2 -4
  197. ledger/views/alliance/alliance_ledger.py +64 -147
  198. ledger/views/character/add_char.py +8 -10
  199. ledger/views/character/character_ledger.py +60 -126
  200. ledger/views/character/planetary.py +5 -98
  201. ledger/views/corporation/add_corp.py +10 -12
  202. ledger/views/corporation/corporation_ledger.py +65 -327
  203. ledger/views/index.py +92 -30
  204. aa_ledger-1.0.3.dist-info/RECORD +0 -236
  205. ledger/api/api_helper/planetary_helper.py +0 -107
  206. ledger/api/ledger/__init__.py +0 -7
  207. ledger/api/ledger/planetary.py +0 -231
  208. ledger/helpers/alliance.py +0 -317
  209. ledger/helpers/character.py +0 -251
  210. ledger/helpers/core.py +0 -665
  211. ledger/helpers/corporation.py +0 -427
  212. ledger/helpers/data_exporter.py +0 -452
  213. ledger/static/ledger/js/planetary-confirm.js +0 -66
  214. ledger/static/ledger/js/planetary.js +0 -143
  215. ledger/templates/ledger/admin.html +0 -43
  216. ledger/templates/ledger/allyledger/admin/alliance_administration.html +0 -46
  217. ledger/templates/ledger/allyledger/admin/alliance_overview.html +0 -108
  218. ledger/templates/ledger/allyledger/alliance_ledger.html +0 -86
  219. ledger/templates/ledger/bundles/character-ledger-bundles.html +0 -66
  220. ledger/templates/ledger/bundles/corporation-ledger-bundles.html +0 -75
  221. ledger/templates/ledger/bundles/ledger-bundles.html +0 -23
  222. ledger/templates/ledger/bundles/ledger-css.html +0 -3
  223. ledger/templates/ledger/bundles/planetary-bundles.html +0 -50
  224. ledger/templates/ledger/bundles/table-css.html +0 -3
  225. ledger/templates/ledger/charledger/admin/character_administration.html +0 -39
  226. ledger/templates/ledger/charledger/admin/character_overview.html +0 -106
  227. ledger/templates/ledger/charledger/character_ledger.html +0 -94
  228. ledger/templates/ledger/charledger/planetary/admin/planetary_overview.html +0 -123
  229. ledger/templates/ledger/charledger/planetary/planetary_ledger.html +0 -54
  230. ledger/templates/ledger/corpledger/admin/corporation_administration.html +0 -39
  231. ledger/templates/ledger/corpledger/admin/corporation_overview.html +0 -108
  232. ledger/templates/ledger/corpledger/corporation_ledger.html +0 -129
  233. ledger/templates/ledger/data-export.html +0 -78
  234. ledger/templates/ledger/error.html +0 -31
  235. ledger/templates/ledger/partials/form/error-message.html +0 -1
  236. ledger/templates/ledger/partials/information/daily.html +0 -56
  237. ledger/templates/ledger/partials/information/day.html +0 -48
  238. ledger/templates/ledger/partials/information/error.html +0 -8
  239. ledger/templates/ledger/partials/information/hourly.html +0 -53
  240. ledger/templates/ledger/partials/information/summary.html +0 -88
  241. ledger/templates/ledger/partials/information/view_character_content.html +0 -35
  242. ledger/templates/ledger/partials/modal/switchalarm_confirm.html +0 -39
  243. ledger/templates/ledger/partials/modal/view_extractor.html +0 -48
  244. ledger/templates/ledger/partials/modal/view_factory.html +0 -123
  245. ledger/templates/ledger/partials/table/char-ledger.html +0 -85
  246. ledger/templates/ledger/partials/table/corp-ledger.html +0 -66
  247. ledger/templates/ledger/partials/table/planetary.html +0 -18
  248. ledger/templates/ledger/partials/thirdparty/billboard.html +0 -22
  249. ledger/templates/ledger/partials/view/card.html +0 -160
  250. ledger/templates/ledger/permission.html +0 -2
  251. ledger/tests/test_helpers/test_billboard.py +0 -11
  252. ledger/tests/test_helpers/test_data_exporter.py +0 -207
  253. ledger/tests/test_tasks.py +0 -282
  254. ledger/tests/test_view_helpers/test_core.py +0 -47
  255. ledger/tests/test_views/corporation/test_corporation.py +0 -267
  256. ledger/tests/test_views/test_planetary.py +0 -137
  257. ledger/tests/testdata/esi_stub.py +0 -109
  258. ledger/tests/testdata/esi_stub_migration.py +0 -80
  259. ledger/tests/testdata/generate_characteraudit.py +0 -106
  260. ledger/tests/testdata/generate_corporationaudit.py +0 -74
  261. ledger/tests/testdata/generate_events.py +0 -31
  262. ledger/tests/testdata/generate_miningledger.py +0 -13
  263. ledger/tests/testdata/generate_planets.py +0 -48
  264. ledger/tests/testdata/generate_walletjournal.py +0 -42
  265. ledger/tests/testdata/json/czarno-pins.json +0 -240
  266. ledger/tests/testdata/json/czarno-routes.json +0 -165
  267. ledger/tests/testdata/json/pins2.json +0 -538
  268. {aa_ledger-1.0.3.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},