Files
redash/tests/utils/test_query_limit.py
Lingkai Kong 1b8ff8e810 Add default limit (1000) to SQL queries (#5088)
* add default limit 1000

* Add frontend changes and connect to backend

* Fix query hash because of default limit

* fix CircleCI test

* adjust for comment
2020-09-14 14:18:31 +03:00

42 lines
1.3 KiB
Python

import unittest
from redash.utils import query_is_select_no_limit, add_limit_to_query
class TestQueryLimit(unittest.TestCase):
def test_check_query_limit_no_limit(self):
query = "SELECT *"
self.assertEqual(True, query_is_select_no_limit(query))
def test_check_query_limit_non_select(self):
query = "Create Table (PersonID INT)"
self.assertEqual(False, query_is_select_no_limit(query))
def test_check_query_limit_invalid_1(self):
query = "OFFSET 5"
self.assertEqual(False, query_is_select_no_limit(query))
def test_check_query_limit_invalid_2(self):
query = "TABLE A FROM TABLE B"
self.assertEqual(False, query_is_select_no_limit(query))
def test_check_query_with_limit(self):
query = "SELECT * LIMIT 5"
self.assertEqual(False, query_is_select_no_limit(query))
def test_check_query_with_offset(self):
query = "SELECT * LIMIT 5 OFFSET 3"
self.assertEqual(False, query_is_select_no_limit(query))
def test_add_limit_query_no_limit(self):
query = "SELECT *"
self.assertEqual("SELECT * LIMIT 1000", add_limit_to_query(query))
def test_add_limit_query_with_punc(self):
query = "SELECT *;"
self.assertEqual("SELECT * LIMIT 1000;", add_limit_to_query(query))
if __name__ == '__main__':
unittest.main()