Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make sure data sources list ordered by id #1030

Merged
merged 2 commits into from May 4, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion redash/handlers/data_sources.py
Expand Up @@ -67,7 +67,7 @@ def get(self):
d['view_only'] = all(project(ds.groups, self.current_user.groups).values())
response[ds.id] = d

return response.values()
return sorted(response.values(), key=lambda d: d['id'])

@require_admin
def post(self):
Expand Down
12 changes: 11 additions & 1 deletion redash/tasks/general.py
@@ -1,16 +1,26 @@
import requests
from celery.utils.log import get_task_logger
from flask.ext.mail import Message
from redash.worker import celery
from redash.version_check import run_version_check
from redash import models, mail
from redash import models, mail, settings
from .base import BaseTask

logger = get_task_logger(__name__)


@celery.task(name="redash.tasks.record_event", base=BaseTask)
def record_event(event):
original_event = event.copy()
models.Event.record(event)
for hook in settings.EVENT_REPORTING_WEBHOOKS:
logger.debug("Forwarding event to: %s", hook)
try:
response = requests.post(hook, original_event)
if response.status_code != 200:
logger.error("Failed posting to %s: %s", hook, response.content)
except Exception:
logger.exception("Failed posting to %s", hook)


@celery.task(name="redash.tasks.version_check", base=BaseTask)
Expand Down
9 changes: 9 additions & 0 deletions tests/handlers/test_data_sources.py
@@ -1,4 +1,7 @@
import json

from funcy import pairwise

from tests import BaseTestCase
from redash.models import DataSource

Expand All @@ -25,6 +28,12 @@ def test_returns_each_data_source_once(self):

self.assertEqual(len(response.json), 1)

def test_returns_data_sources_ordered_by_id(self):
self.factory.create_data_source(group=self.factory.org.default_group)
self.factory.create_data_source(group=self.factory.org.default_group)
response = self.make_request("get", "/api/data_sources", user=self.factory.user)
self.assertTrue(all(left <= right for left, right in pairwise(response.json)))


class DataSourceTypesTest(BaseTestCase):
def test_returns_data_for_admin(self):
Expand Down