Skip to content

Commit

Permalink
Merge pull request #1030 from getredash/fixes_160504
Browse files Browse the repository at this point in the history
Make sure data sources list ordered by id
  • Loading branch information
arikfr committed May 4, 2016
2 parents b3844d3 + 7016477 commit 8fa6fdb
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
2 changes: 1 addition & 1 deletion redash/handlers/data_sources.py
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 8fa6fdb

Please sign in to comment.