From 803336f597c5cb07e65dd027d77eb9e916f22ae7 Mon Sep 17 00:00:00 2001 From: DonHaul Date: Wed, 10 Jul 2024 15:16:59 +0200 Subject: [PATCH] to fix tests --- .envs/local/.django | 2 +- backoffice/workflows/api/views.py | 1 + backoffice/workflows/tests/test_views.py | 42 ++++++++++++++++-------- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/.envs/local/.django b/.envs/local/.django index 6674841e..8507aa5d 100644 --- a/.envs/local/.django +++ b/.envs/local/.django @@ -19,5 +19,5 @@ OPENSEARCH_HOST=opensearch:9200 OPENSEARCH_INDEX_PREFIX=backoffice-backend-local # Airflow -AIRFLOW_BASE_URL=http://host.docker.internal:8082 +AIRFLOW_BASE_URL=http://host.docker.internal:8080 AIRFLOW_TOKEN=CHANGE_ME diff --git a/backoffice/workflows/api/views.py b/backoffice/workflows/api/views.py index 48fe8a39..a7a35a56 100644 --- a/backoffice/workflows/api/views.py +++ b/backoffice/workflows/api/views.py @@ -144,6 +144,7 @@ def restart(self, request, pk=None): ) if response.status_code != 204: return Response({"error": "Failed to restart"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + return Response({"error": "Failed to restart"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) class WorkflowDocumentView(BaseDocumentViewSet): diff --git a/backoffice/workflows/tests/test_views.py b/backoffice/workflows/tests/test_views.py index ae87774a..f9683ecc 100644 --- a/backoffice/workflows/tests/test_views.py +++ b/backoffice/workflows/tests/test_views.py @@ -1,3 +1,4 @@ +from contextlib import contextmanager from unittest.mock import patch from django.apps import apps @@ -273,22 +274,17 @@ def test_reject_author(self, mock_post): self.assertEqual(response.status_code, 200) - @patch("backoffice.workflows.airflow_utils.requests.post") def test_restart_full_dagrun(self, mock_post): - mock_response = mock_post.return_value - mock_response.status_code = status.HTTP_200_OK - mock_response.json.return_value = {"key": "value"} - self.api_client.force_authenticate(user=self.curator) url = reverse( "api:workflows-authors-restart", kwargs={"pk": self.workflow.id}, ) + with patch_requests() as (mock_post, mock_get, mock_delete): + response = self.api_client.post(url) - response = self.api_client.post(url) - - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, 200) @patch("backoffice.workflows.airflow_utils.requests.post") def test_restart_a_task(self, mock_post): @@ -302,9 +298,9 @@ def test_restart_a_task(self, mock_post): "api:workflows-authors-restart", kwargs={"pk": self.workflow.id}, ) - - response = self.api_client.post(url, json={"task_ids": ["set_workflow_status_to_running"]}) - self.assertEqual(response.status_code, 200) + with patch_requests() as (mock_post, mock_get, mock_delete): + response = self.api_client.post(url, json={"task_ids": ["set_workflow_status_to_running"]}) + self.assertEqual(response.status_code, 200) @patch("backoffice.workflows.airflow_utils.requests.post") def test_restart_with_params(self, mock_post): @@ -317,6 +313,26 @@ def test_restart_with_params(self, mock_post): "api:workflows-authors-restart", kwargs={"pk": self.workflow.id}, ) + with patch_requests() as (mock_post, mock_get, mock_delete): + response = self.api_client.post(url, json={"params": {"workflow_id": self.workflow.id}}) + self.assertEqual(response.status_code, 200) - response = self.api_client.post(url, json={"params": {"workflow_id": self.workflow.id}}) - self.assertEqual(response.status_code, 200) + +@contextmanager +def patch_requests(): + with patch("requests.post") as mock_post, patch("requests.get") as mock_get, patch( + "requests.delete" + ) as mock_delete: + + # Configure the mock for requests.post + mock_post.return_value.status_code = 200 + mock_post.return_value.json.return_value = {"key": "value"} + + # Configure the mock for requests.get + mock_get.return_value.status_code = 200 + mock_get.return_value.json.return_value = {"data": "some_data"} + + # Configure the mock for requests.delete + mock_delete.return_value.status_code = 204 + + yield mock_post, mock_get, mock_delete