diff --git a/server/apps/core/services/__init__.py b/server/apps/core/services/__init__.py index 8163e7251..85ccc42fb 100644 --- a/server/apps/core/services/__init__.py +++ b/server/apps/core/services/__init__.py @@ -1,3 +1,3 @@ from .profile_service import get_or_create_haztrak_profile from .rcrainfo_service import RcrainfoService, get_rcrainfo_client -from .task_service import TaskService +from .task_service import TaskService, get_task_status, launch_example_task diff --git a/server/apps/core/services/task_service.py b/server/apps/core/services/task_service.py index da49011c6..e481bac17 100644 --- a/server/apps/core/services/task_service.py +++ b/server/apps/core/services/task_service.py @@ -1,6 +1,7 @@ import logging from typing import Optional +from celery.result import AsyncResult from django.core.cache import CacheKeyWarning, cache from django_celery_results.models import TaskResult from rest_framework.exceptions import ValidationError @@ -45,6 +46,15 @@ def _parse_status(task_status: dict) -> ReturnDict: raise ValidationError(task_serializer.errors) +def launch_example_task() -> str | None: + """Launches an example long-running celery task""" + try: + task: AsyncResult = example_task.delay() + return task.id + except KeyError: + return None + + class TaskService: """ Service class for interacting with the Task model layer and celery tasks. @@ -103,11 +113,9 @@ def _get_cached_status(task_id: str) -> dict | None: @staticmethod def launch_example_task() -> str | None: - """ - Launches an example long-running celery task - """ + """Launches an example long-running celery task""" try: - task = example_task.delay() + task: AsyncResult = example_task.delay() return task.id except KeyError: return None diff --git a/server/apps/core/tasks.py b/server/apps/core/tasks.py index a8ab8f438..d0c63f276 100644 --- a/server/apps/core/tasks.py +++ b/server/apps/core/tasks.py @@ -9,12 +9,10 @@ @shared_task(bind=True, name="example task") def example_task(self: Task): - # print(f"task ID: {self.request.id}") cache.set( self.request.id, {"status": "STARTED", "taskName": self.name, "taskId": self.request.id}, ) - # print(f"task status: {cache.get(self.request.id)}") time.sleep(15) cache.set( self.request.id, diff --git a/server/apps/core/tests/test_tasks.py b/server/apps/core/tests/test_tasks.py index b7c9750ae..43092b2a8 100644 --- a/server/apps/core/tests/test_tasks.py +++ b/server/apps/core/tests/test_tasks.py @@ -44,7 +44,7 @@ def test_returns_cached_status_if_exists(self, factory, user): assert response.data["taskId"] == self.mock_task_id assert response.data["status"] == task_status - def test_returns_404_if_no_cache_or_db_results(self, factory, user, cache_factory): + def test_returns_200_if_no_cache_or_db_results(self, factory, user, cache_factory): # Arrange cache_factory("test_returns_404") cache.set(self.mock_task_id, None) @@ -53,7 +53,7 @@ def test_returns_404_if_no_cache_or_db_results(self, factory, user, cache_factor # Act response: Response = TaskStatusView.as_view()(request, task_id=self.mock_task_id) # Assert - assert response.status_code == status.HTTP_404_NOT_FOUND + assert response.status_code == status.HTTP_200_OK def test_returns_db_results(self, factory, user, cache_factory): # Arrange diff --git a/server/apps/core/views/task_views.py b/server/apps/core/views/task_views.py index bed806cc8..3922e104d 100644 --- a/server/apps/core/views/task_views.py +++ b/server/apps/core/views/task_views.py @@ -5,7 +5,11 @@ from rest_framework.response import Response from rest_framework.views import APIView -from apps.core.services.task_service import TaskService, get_task_status # type: ignore +from apps.core.services.task_service import ( # type: ignore + TaskService, + get_task_status, + launch_example_task, +) class CeleryTaskResultSerializer(serializers.ModelSerializer): @@ -33,7 +37,7 @@ class LaunchExampleTaskView(APIView): def get(self, request, *args, **kwargs): try: - task_id = TaskService.launch_example_task() + task_id = launch_example_task() return Response(data={"taskId": task_id}, status=status.HTTP_200_OK) except KeyError: return Response( diff --git a/server/apps/sites/views.py b/server/apps/sites/views.py index 0bee2092f..a0da30c86 100644 --- a/server/apps/sites/views.py +++ b/server/apps/sites/views.py @@ -161,7 +161,6 @@ class HandlerSearchSerializer(serializers.Serializer): def post(self, request: Request) -> Response: serializer = self.HandlerSearchSerializer(data=request.data) serializer.is_valid(raise_exception=True) - print("hello") sites = RcraSiteService(username=request.user.username) data = sites.search_rcrainfo_handlers( epaSiteId=serializer.data["siteId"], diff --git a/server/apps/trak/models/manifest_models.py b/server/apps/trak/models/manifest_models.py index a20bf906e..6a04ffb65 100644 --- a/server/apps/trak/models/manifest_models.py +++ b/server/apps/trak/models/manifest_models.py @@ -4,7 +4,7 @@ from django.core.exceptions import ValidationError from django.db import models -from django.db.models import Max, Q, QuerySet +from django.db.models import Q, QuerySet from django.utils.translation import gettext_lazy as _ from apps.sites.models import RcraSiteType, RcraStates, Role @@ -22,7 +22,6 @@ def draft_mtn(): official MTN from e-Manifest """ mtn_count: int = Manifest.objects.all().count() - print(mtn_count) return f"{str(mtn_count).zfill(9)}DFT" diff --git a/server/apps/trak/tests/serializers/test_manifest_serializers.py b/server/apps/trak/tests/serializers/test_manifest_serializers.py index bd7d7df29..0218aa18b 100644 --- a/server/apps/trak/tests/serializers/test_manifest_serializers.py +++ b/server/apps/trak/tests/serializers/test_manifest_serializers.py @@ -33,7 +33,6 @@ def test_serializer_saves_first_wasteline(self, manifest_10003114elc_serializer) def test_saves_additional_info(self, manifest_10003114elc_serializer): manifest_10003114elc_serializer.is_valid() - print(manifest_10003114elc_serializer.validated_data["additional_info"]) manifest = manifest_10003114elc_serializer.save() additional_info = manifest.additional_info assert isinstance(additional_info, AdditionalInfo)