Files
redash/tests/test_utils.py
Christian Clauss d38ca803c5 Add more flake8 tests and fail build if any test fails (#4055)
* Add more flake8 tests and fail build if any test fails

Run all flake8 E9xx + F63x + F7xx + F82x tests.

* long = long in Python 2
2019-08-18 11:27:44 +03:00

59 lines
2.2 KiB
Python

from collections import namedtuple
from unittest import TestCase
from redash.utils import (build_url, collect_parameters_from_request,
filter_none, json_dumps, generate_token)
try:
buffer
except NameError:
buffer = bytes
DummyRequest = namedtuple('DummyRequest', ['host', 'scheme'])
class TestBuildUrl(TestCase):
def test_simple_case(self):
self.assertEqual("http://example.com/test", build_url(DummyRequest("", "http"), "example.com", "/test"))
def test_uses_current_request_port(self):
self.assertEqual("http://example.com:5000/test", build_url(DummyRequest("example.com:5000", "http"), "example.com", "/test"))
def test_uses_current_request_schema(self):
self.assertEqual("https://example.com/test", build_url(DummyRequest("example.com", "https"), "example.com", "/test"))
def test_skips_port_for_default_ports(self):
self.assertEqual("https://example.com/test", build_url(DummyRequest("example.com:443", "https"), "example.com", "/test"))
self.assertEqual("http://example.com/test", build_url(DummyRequest("example.com:80", "http"), "example.com", "/test"))
self.assertEqual("https://example.com:80/test", build_url(DummyRequest("example.com:80", "https"), "example.com", "/test"))
self.assertEqual("http://example.com:443/test", build_url(DummyRequest("example.com:443", "http"), "example.com", "/test"))
class TestCollectParametersFromRequest(TestCase):
def test_ignores_non_prefixed_values(self):
self.assertEqual({}, collect_parameters_from_request({'test': 1}))
def test_takes_prefixed_values(self):
self.assertDictEqual({'test': 1, 'something_else': 'test'}, collect_parameters_from_request({'p_test': 1, 'p_something_else': 'test'}))
class TestSkipNones(TestCase):
def test_skips_nones(self):
d = {
'a': 1,
'b': None
}
self.assertDictEqual(filter_none(d), {'a': 1})
class TestJsonDumps(TestCase):
def test_handles_binary(self):
self.assertEqual(json_dumps(buffer("test")), '"74657374"')
class TestGenerateToken(TestCase):
def test_format(self):
token = generate_token(40)
self.assertRegexpMatches(token, r"[a-zA-Z0-9]{40}")