sanic/tests/test_helpers.py

79 lines
1.8 KiB
Python
Raw Normal View History

2018-12-27 17:20:58 +00:00
import inspect
import pytest
from sanic import helpers
2018-12-26 23:28:42 +00:00
from sanic.config import Config
def test_has_message_body():
tests = (
(100, False),
(102, False),
(204, False),
(200, True),
(304, False),
(400, True),
)
for status_code, expected in tests:
assert helpers.has_message_body(status_code) is expected
def test_is_entity_header():
tests = (
("allow", True),
("extension-header", True),
("", False),
("test", False),
)
for header, expected in tests:
assert helpers.is_entity_header(header) is expected
def test_is_hop_by_hop_header():
tests = (
("connection", True),
("upgrade", True),
("", False),
("test", False),
)
for header, expected in tests:
assert helpers.is_hop_by_hop_header(header) is expected
def test_remove_entity_headers():
tests = (
2018-12-30 11:18:06 +00:00
({}, {}),
({"Allow": "GET, POST, HEAD"}, {}),
(
{
"Content-Type": "application/json",
"Expires": "Wed, 21 Oct 2015 07:28:00 GMT",
2018-12-30 11:18:06 +00:00
"Foo": "Bar",
},
2018-12-30 11:18:06 +00:00
{"Expires": "Wed, 21 Oct 2015 07:28:00 GMT", "Foo": "Bar"},
),
(
2018-12-30 11:18:06 +00:00
{"Allow": "GET, POST, HEAD", "Content-Location": "/test"},
{"Content-Location": "/test"},
),
)
for header, expected in tests:
assert helpers.remove_entity_headers(header) == expected
2018-12-27 17:20:58 +00:00
def test_import_string_class():
obj = helpers.import_string("sanic.config.Config")
assert isinstance(obj, Config)
2018-12-27 17:20:58 +00:00
def test_import_string_module():
module = helpers.import_string("sanic.config")
2018-12-27 17:20:58 +00:00
assert inspect.ismodule(module)
def test_import_string_exception():
with pytest.raises(ImportError):
helpers.import_string("test.test.test")