mirror of
https://github.com/valitydev/redash.git
synced 2024-11-06 17:15:17 +00:00
2dff8b9a00
* Apply black formatting * Add auto formatting when committing to master * Update CONTRIBUTING.md re. Black & Prettier
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
from werkzeug.exceptions import BadRequest
|
|
|
|
from redash.handlers.base import paginate
|
|
from unittest import TestCase
|
|
from mock import MagicMock
|
|
|
|
|
|
class DummyResults(object):
|
|
items = [i for i in range(25)]
|
|
|
|
|
|
dummy_results = DummyResults()
|
|
|
|
|
|
class TestPaginate(TestCase):
|
|
def setUp(self):
|
|
self.query_set = MagicMock()
|
|
self.query_set.count = MagicMock(return_value=102)
|
|
self.query_set.paginate = MagicMock(return_value=dummy_results)
|
|
|
|
def test_returns_paginated_results(self):
|
|
page = paginate(self.query_set, 1, 25, lambda x: x)
|
|
self.assertEqual(page["page"], 1)
|
|
self.assertEqual(page["page_size"], 25)
|
|
self.assertEqual(page["count"], 102)
|
|
self.assertEqual(page["results"], dummy_results.items)
|
|
|
|
def test_raises_error_for_bad_page(self):
|
|
self.assertRaises(
|
|
BadRequest, lambda: paginate(self.query_set, -1, 25, lambda x: x)
|
|
)
|
|
self.assertRaises(
|
|
BadRequest, lambda: paginate(self.query_set, 6, 25, lambda x: x)
|
|
)
|
|
|
|
def test_raises_error_for_bad_page_size(self):
|
|
self.assertRaises(
|
|
BadRequest, lambda: paginate(self.query_set, 1, 251, lambda x: x)
|
|
)
|
|
self.assertRaises(
|
|
BadRequest, lambda: paginate(self.query_set, 1, -1, lambda x: x)
|
|
)
|