aa-killtracker 1.0.0__tar.gz → 1.1.0__tar.gz

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 (74) hide show
  1. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/PKG-INFO +2 -2
  2. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/__init__.py +1 -1
  3. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tasks.py +7 -7
  4. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/test_integration.py +1 -27
  5. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/test_tasks.py +0 -2
  6. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/pyproject.toml +1 -1
  7. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/LICENSE +0 -0
  8. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/README.md +0 -0
  9. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/admin.py +0 -0
  10. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/app_settings.py +0 -0
  11. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/apps.py +0 -0
  12. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/checks.py +0 -0
  13. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/constants.py +0 -0
  14. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/core/__init__.py +0 -0
  15. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/core/discord.py +0 -0
  16. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/core/helpers.py +0 -0
  17. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/core/trackers.py +0 -0
  18. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/core/workers.py +0 -0
  19. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/core/zkb.py +0 -0
  20. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/forms.py +0 -0
  21. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/management/commands/killtracker_load_eve.py +0 -0
  22. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/managers.py +0 -0
  23. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0001_initial_new.py +0 -0
  24. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0001_squashed_all.py +0 -0
  25. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0002_fix_webhook_notes_field.py +0 -0
  26. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0002_tracker_require_attackers_weapon_groups_and_more.py +0 -0
  27. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0003_add_state_clauses.py +0 -0
  28. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0003_optimize_tracker_form.py +0 -0
  29. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0004_add_faction_clauses.py +0 -0
  30. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0004_django4_update.py +0 -0
  31. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0005_add_final_blow_clause_and_more.py +0 -0
  32. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0006_evetypeplus.py +0 -0
  33. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0007_restructure_killsmails.py +0 -0
  34. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0008_copy_data_to_new_structure.py +0 -0
  35. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/0009_remove_old_models.py +0 -0
  36. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/migrations/__init__.py +0 -0
  37. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/models/__init__.py +0 -0
  38. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/models/killmails.py +0 -0
  39. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/models/trackers.py +0 -0
  40. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/models/webhooks.py +0 -0
  41. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/providers.py +0 -0
  42. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/signals.py +0 -0
  43. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/static/killtracker/killtracker_logo.png +0 -0
  44. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/static/killtracker/zkb_icon.png +0 -0
  45. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/templates/admin/killtracker/tracker/killmail_test.html +0 -0
  46. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/__init__.py +0 -0
  47. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/core/__init__.py +0 -0
  48. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/core/test_discord.py +0 -0
  49. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/core/test_helpers.py +0 -0
  50. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/core/test_tracker_1.py +0 -0
  51. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/core/test_tracker_2.py +0 -0
  52. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/core/test_workers.py +0 -0
  53. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/core/test_zkb.py +0 -0
  54. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/models/__init__.py +0 -0
  55. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/models/test_killmails.py +0 -0
  56. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/models/test_trackers_1.py +0 -0
  57. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/models/test_trackers_2.py +0 -0
  58. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/models/test_webhooks.py +0 -0
  59. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/test_admin.py +0 -0
  60. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/test_admin_2.py +0 -0
  61. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/test_utils.py +0 -0
  62. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/__init__.py +0 -0
  63. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/create_eveuniverse.py +0 -0
  64. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/evealliances.json +0 -0
  65. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/evecorporations.json +0 -0
  66. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/eveentities.json +0 -0
  67. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/eveuniverse.json +0 -0
  68. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/factories.py +0 -0
  69. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/helpers.py +0 -0
  70. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/killmails.json +0 -0
  71. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/testdata/load_eveuniverse.py +0 -0
  72. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tests/utils.py +0 -0
  73. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tools/drop_tables_killtracker.sql +0 -0
  74. {aa_killtracker-1.0.0 → aa_killtracker-1.1.0}/killtracker/tools/generate_conditions_text.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aa-killtracker
3
- Version: 1.0.0
3
+ Version: 1.1.0
4
4
  Summary: An app for running killmail trackers with Alliance Auth and Discord.
5
5
  Author-email: Erik Kalkoken <kalkoken87@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -20,7 +20,7 @@ Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Topic :: Internet :: WWW/HTTP
21
21
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
22
22
  License-File: LICENSE
23
- Requires-Dist: allianceauth-app-utils>=1.26
23
+ Requires-Dist: allianceauth-app-utils>=1.27
24
24
  Requires-Dist: allianceauth>=4,<5
25
25
  Requires-Dist: dacite
26
26
  Requires-Dist: dhooks-lite>=1.1
@@ -3,7 +3,7 @@
3
3
  # pylint: disable = invalid-name
4
4
  default_app_config = "killtracker.apps.KillmailsConfig"
5
5
 
6
- __version__ = "1.0.0"
6
+ __version__ = "1.1.0"
7
7
  __title__ = "Killtracker"
8
8
 
9
9
  APP_NAME = "aa-killtracker"
@@ -11,7 +11,7 @@ from eveuniverse.tasks import update_unresolved_eve_entities
11
11
 
12
12
  from allianceauth.services.hooks import get_extension_logger
13
13
  from allianceauth.services.tasks import QueueOnce
14
- from app_utils.esi import retry_task_if_esi_is_down
14
+ from app_utils.esi import retry_task_on_esi_error_and_offline
15
15
  from app_utils.logging import LoggerAddTag
16
16
 
17
17
  from killtracker import __title__
@@ -116,7 +116,6 @@ def run_tracker(
116
116
  self: Task, tracker_pk: int, killmail_id: int, ignore_max_age: bool = False
117
117
  ) -> None:
118
118
  """Run tracker for given killmail and trigger sending if needed."""
119
- retry_task_if_esi_is_down(self)
120
119
  tracker: Tracker = Tracker.objects.get_cached(
121
120
  pk=tracker_pk,
122
121
  select_related="webhook",
@@ -128,9 +127,11 @@ def run_tracker(
128
127
  logger.error("Aborting. %s", ex)
129
128
  return
130
129
 
131
- killmail_new = tracker.process_killmail(
132
- killmail=killmail, ignore_max_age=ignore_max_age
133
- )
130
+ with retry_task_on_esi_error_and_offline(self, f"Tracker {tracker}"):
131
+ killmail_new = tracker.process_killmail(
132
+ killmail=killmail, ignore_max_age=ignore_max_age
133
+ )
134
+
134
135
  if killmail_new:
135
136
  logger.info("%s: Killmail %d matches", tracker, killmail_id)
136
137
  killmail_new.save()
@@ -142,7 +143,6 @@ def run_tracker(
142
143
  @shared_task(bind=True, max_retries=None)
143
144
  def generate_killmail_message(self: Task, tracker_pk: int, killmail_id: int) -> None:
144
145
  """Generate and enqueue message from given killmail and start sending."""
145
- retry_task_if_esi_is_down(self)
146
146
  tracker: Tracker = Tracker.objects.get_cached(
147
147
  pk=tracker_pk,
148
148
  select_related="webhook",
@@ -166,7 +166,7 @@ def generate_killmail_message(self: Task, tracker_pk: int, killmail_id: int) ->
166
166
  )
167
167
  raise self.retry(
168
168
  max_retries=KILLTRACKER_GENERATE_MESSAGE_MAX_RETRIES,
169
- countdown=KILLTRACKER_GENERATE_MESSAGE_RETRY_COUNTDOWN,
169
+ retry_backoff=KILLTRACKER_GENERATE_MESSAGE_RETRY_COUNTDOWN,
170
170
  exc=ex,
171
171
  )
172
172
 
@@ -47,8 +47,7 @@ class TestTasksEnd2End(NoSocketsTestCase):
47
47
  def setUp(self):
48
48
  cache.clear()
49
49
 
50
- @patch(PACKAGE_PATH + ".tasks.retry_task_if_esi_is_down", lambda x: None)
51
- def test_normal_case(self, requests_mocker, mock_execute):
50
+ def test_normal_case(self, mock_execute, requests_mocker):
52
51
  # given
53
52
  mock_execute.return_value = dhooks_lite.WebhookResponse({}, status_code=200)
54
53
  requests_mocker.register_uri(
@@ -71,28 +70,3 @@ class TestTasksEnd2End(NoSocketsTestCase):
71
70
  _, kwargs = mock_execute.call_args_list[1]
72
71
  self.assertIn("My Tracker", kwargs["content"])
73
72
  self.assertIn("10000002", kwargs["embeds"][0].url)
74
-
75
- @patch(PACKAGE_PATH + ".tasks.retry_task_if_esi_is_down")
76
- def test_should_retry_when_esi_error_limit_reached(
77
- self, requests_mocker, mock_retry_task_if_esi_is_down, mock_execute
78
- ):
79
- def my_retry_task_if_esi_is_down(task):
80
- """Retry the task one time only."""
81
- if task.request.retries < 1:
82
- raise task.retry()
83
-
84
- # given
85
- mock_execute.return_value = dhooks_lite.WebhookResponse({}, status_code=200)
86
- mock_retry_task_if_esi_is_down.side_effect = my_retry_task_if_esi_is_down
87
- requests_mocker.register_uri(
88
- "GET",
89
- _ZKB_REDISQ_URL,
90
- [
91
- {"status_code": 200, "json": {"package": killmails_data()[10000001]}},
92
- {"status_code": 200, "json": {"package": None}},
93
- ],
94
- )
95
- # when
96
- tasks.run_killtracker.delay()
97
- # then
98
- self.assertEqual(mock_execute.call_count, 1)
@@ -205,7 +205,6 @@ class TestRunKilltracker(TestTrackerBase):
205
205
  self.assertFalse(mock_delete_stale_killmails.delay.called)
206
206
 
207
207
 
208
- @patch(MODULE_PATH + ".retry_task_if_esi_is_down", lambda x: None)
209
208
  @patch(MODULE_PATH + ".send_messages_to_webhook", spec=True)
210
209
  @patch(MODULE_PATH + ".generate_killmail_message", spec=True)
211
210
  class TestRunTracker(TestTrackerBase):
@@ -257,7 +256,6 @@ class TestRunTracker(TestTrackerBase):
257
256
  self.assertTrue(mock_send_messages_to_webhook.delay.called)
258
257
 
259
258
 
260
- @patch(MODULE_PATH + ".retry_task_if_esi_is_down", lambda x: None)
261
259
  @patch(MODULE_PATH + ".generate_killmail_message.retry", spec=True)
262
260
  @patch(MODULE_PATH + ".send_messages_to_webhook", spec=True)
263
261
  class TestGenerateKillmailMessage(TestTrackerBase):
@@ -26,7 +26,7 @@ classifiers = [
26
26
  "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
27
27
  ]
28
28
  dependencies = [
29
- "allianceauth-app-utils>=1.26",
29
+ "allianceauth-app-utils>=1.27",
30
30
  "allianceauth>=4,<5",
31
31
  "dacite",
32
32
  "dhooks-lite>=1.1",
File without changes
File without changes