Revert changes to job status (#6969)

"Query in queue" should switch to "Executing query", but does not.

Commands:

git revert --no-commit bd17662005
git revert --no-commit 5ac5d86f5e
vim tests/handlers/test_query_results.py
git add tests/handlers/test_query_results.py

Co-authored-by: Justin Clift <justin@postgresql.org>
This commit is contained in:
Eric Radman
2024-05-14 22:06:45 -04:00
committed by GitHub
parent f3a323695f
commit c874eb6b11
14 changed files with 106 additions and 188 deletions

View File

@@ -1,5 +1,3 @@
from rq.job import JobStatus
from redash.handlers.query_results import error_messages, run_query
from redash.models import db
from tests import BaseTestCase
@@ -436,6 +434,9 @@ class TestQueryResultExcelResponse(BaseTestCase):
class TestJobResource(BaseTestCase):
def test_cancels_queued_queries(self):
QUEUED = 1
FAILED = 4
query = self.factory.create_query()
job_id = self.make_request(
"post",
@@ -446,9 +447,10 @@ class TestJobResource(BaseTestCase):
]["id"]
status = self.make_request("get", f"/api/jobs/{job_id}").json["job"]["status"]
self.assertEqual(status, JobStatus.QUEUED)
self.assertEqual(status, QUEUED)
self.make_request("delete", f"/api/jobs/{job_id}")
job = self.make_request("get", f"/api/jobs/{job_id}").json["job"]
self.assertEqual(job["status"], JobStatus.CANCELED)
self.assertEqual(job["status"], FAILED)
self.assertTrue("cancelled" in job["error"])

View File

@@ -1,81 +0,0 @@
from unittest.mock import MagicMock
from rq.job import JobStatus
from rq.results import Result
from redash.serializers import (
serialize_job,
)
from redash.tasks.queries.execution import QueryExecutionError
from tests import BaseTestCase
class JobSerializationTest(BaseTestCase):
def test_serializes_job_with_exception_in_result(self):
job = MagicMock()
job.id = 0
job.is_started = False
job.get_status = MagicMock(return_value=JobStatus.FINISHED)
result = MagicMock()
result.type = Result.Type.SUCCESSFUL
result.return_value = QueryExecutionError("test")
job.latest_result = MagicMock(return_value=result)
result = serialize_job(job)
self.assertDictEqual(
result,
{
"job": {
"id": 0,
"updated_at": 0,
"status": JobStatus.FAILED,
"error": str(QueryExecutionError("test")),
"result_id": None,
}
},
)
def test_serializes_job_with_dict_that_contains_error_in_result(self):
job = MagicMock()
job.id = 0
job.is_started = False
job.get_status = MagicMock(return_value=JobStatus.FINISHED)
result = MagicMock()
result.type = Result.Type.SUCCESSFUL
result.return_value = {"error": "test error"}
job.latest_result = MagicMock(return_value=result)
result = serialize_job(job)
self.assertDictEqual(
result,
{
"job": {
"id": 0,
"updated_at": 0,
"status": JobStatus.FAILED,
"error": "test error",
"result_id": None,
}
},
)
def test_serializes_job_with_dict_that_finished_successfully(self):
job = MagicMock()
job.id = 0
job.is_started = False
job.get_status = MagicMock(return_value=JobStatus.FINISHED)
result = MagicMock()
result.type = Result.Type.SUCCESSFUL
result.return_value = 1
job.latest_result = MagicMock(return_value=result)
result = serialize_job(job)
self.assertDictEqual(
result,
{
"job": {
"id": 0,
"updated_at": 0,
"status": JobStatus.FINISHED,
"error": None,
"result_id": 1,
}
},
)

View File

@@ -1,7 +1,6 @@
from mock import Mock, patch
from rq import Connection
from rq.exceptions import NoSuchJobError
from rq.job import JobStatus
from redash import models, rq_redis_connection
from redash.query_runner.pg import PostgreSQL
@@ -22,7 +21,7 @@ def fetch_job(*args, **kwargs):
result = Mock()
result.id = job_id
result.get_status = lambda: JobStatus.STARTED
result.is_cancelled = False
return result
@@ -108,7 +107,7 @@ class TestEnqueueTask(BaseTestCase):
# "cancel" the previous job
def cancel_job(*args, **kwargs):
job = fetch_job(*args, **kwargs)
job.get_status = lambda: JobStatus.CANCELED
job.is_cancelled = True
return job
my_fetch_job.side_effect = cancel_job