mirror of
https://github.com/getredash/redash.git
synced 2025-12-19 17:37:19 -05:00
Revert changes to job status (#6969)
"Query in queue" should switch to "Executing query", but does not. Commands: git revert --no-commitbd17662005git revert --no-commit5ac5d86f5evim 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:
@@ -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"])
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
},
|
||||
)
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user