Skip to content

Commit

Permalink
adjust how base class is passed to export_task_in_background
Browse files Browse the repository at this point in the history
  • Loading branch information
RuthShryock committed Nov 1, 2024
1 parent bf1aafd commit 571097c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion kobo/apps/project_views/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ def export(self, request, uid, obj_type):
export_task_in_background.delay(
export_task_uid=export_task.uid,
username=user.username,
export_task_class=ProjectViewExportTask,
export_task_name="ProjectViewExportTask",
)

return Response({'status': export_task.status})
Expand Down
8 changes: 4 additions & 4 deletions kpi/tasks.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# coding: utf-8
import time
from typing import Type

import constance
import requests
from django.apps import apps
from django.conf import settings
from django.core import mail
from django.core.management import call_command
Expand All @@ -14,7 +14,7 @@
from kpi.constants import LIMIT_HOURS_23
from kpi.maintenance_tasks import remove_old_asset_snapshots, remove_old_import_tasks
from kpi.models.asset import Asset
from kpi.models.import_export_task import ExportTask, ImportExportTask, ImportTask
from kpi.models.import_export_task import ExportTask, ImportTask


@celery_app.task
Expand All @@ -31,10 +31,10 @@ def export_in_background(export_task_uid):

@celery_app.task
def export_task_in_background(
export_task_uid: str, username: str, export_task_class: Type[ImportExportTask]
export_task_uid: str, username: str, export_task_name: str
) -> None:
user = User.objects.get(username=username)

export_task_class = apps.get_model(f'kpi.{export_task_name}')
export_task = export_task_class.objects.get(uid=export_task_uid)
export = export_task.run()
if export.status == 'complete' and export.result:
Expand Down
10 changes: 5 additions & 5 deletions kpi/tests/test_export_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def test_export_task_success(self, mock_get_project_view, mock_send_mail):
self.task.run = Mock(return_value=self.task)

export_task_in_background(
self.task.uid, self.user.username, ProjectViewExportTask
self.task.uid, self.user.username, 'ProjectViewExportTask'
)

self.task.refresh_from_db()
Expand Down Expand Up @@ -61,7 +61,7 @@ def test_invalid_export_task_uid(self, mock_get_project_view, mock_send_mail):
ObjectDoesNotExist, 'ProjectViewExportTask matching query does not exist.'
):
export_task_in_background(
'invalid_uid', self.user.username, ProjectViewExportTask
'invalid_uid', self.user.username, 'ProjectViewExportTask'
)

mock_send_mail.assert_not_called()
Expand All @@ -73,7 +73,7 @@ def test_invalid_username(self, mock_get_project_view, mock_send_mail):
ObjectDoesNotExist, 'User matching query does not exist.'
):
export_task_in_background(
self.task.uid, 'invalid_username', ProjectViewExportTask
self.task.uid, 'invalid_username', 'ProjectViewExportTask'
)

mock_send_mail.assert_not_called()
Expand All @@ -88,7 +88,7 @@ def test_export_task_error(
mock_run_task.side_effect = Exception('Simulated task failure')

export_task_in_background(
self.task.uid, self.user.username, ProjectViewExportTask
self.task.uid, self.user.username, 'ProjectViewExportTask'
)

self.task.refresh_from_db()
Expand All @@ -104,7 +104,7 @@ def test_email_not_sent_if_export_errors(
mock_run_task.side_effect = Exception('Simulated task failure')

export_task_in_background(
self.task.uid, self.user.username, ProjectViewExportTask
self.task.uid, self.user.username, 'ProjectViewExportTask'
)

mock_send_mail.assert_not_called()

0 comments on commit 571097c

Please sign in to comment.