from sanic import helpers from sanic.config import Config import pytest 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 = ( ( {}, {} ), ( { "Allow": "GET, POST, HEAD", }, {} ), ( { "Content-Type": "application/json", "Expires": "Wed, 21 Oct 2015 07:28:00 GMT", "Foo": "Bar" }, { "Expires": "Wed, 21 Oct 2015 07:28:00 GMT", "Foo": "Bar" }, ), ( { "Allow": "GET, POST, HEAD", "Content-Location": "/test" }, { "Content-Location": "/test" }, ), ) for header, expected in tests: assert helpers.remove_entity_headers(header) == expected def test_import_string(): obj = helpers.import_string('sanic.config.Config') assert isinstance(obj, Config) def test_import_string_exception(): with pytest.raises(ImportError): helpers.import_string('test.test.test')