def test_aspen_favicon_doesnt_get_clobbered_by_virtual_path(): mk('%value') request = StubRequest.from_fs('/favicon.ico') gauntlet.run_through(request, gauntlet.not_found) expected = {} actual = request.line.uri.path assert actual == expected, actual
def test_get_response_406_gives_list_of_acceptable_types(mk): mk(("index.spt", NEGOTIATED_RESOURCE)) request = StubRequest.from_fs("index.spt") request.headers["Accept"] = "cheese/head" actual = raises(Response, get_response, request, Response()).value.body expected = "The following media types are available: text/plain, text/html." assert actual == expected
def test_get_response_doesnt_reset_content_type_when_not_negotiating(mk): mk(('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') response = Response() response.headers['Content-Type'] = 'never/mind' actual = get_response(request, response).headers['Content-Type'] assert actual == "never/mind"
def test_can_override_default_renderer_entirely(mk): mk(('.aspen/configure-aspen.py', OVERRIDE_SIMPLATE), ('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') request.headers['Accept'] = 'text/plain' actual = get_response(request, Response()).body assert actual == "glubber"
def test_get_response_406_gives_list_of_acceptable_types(mk): mk(('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') request.headers['Accept'] = 'cheese/head' actual = raises(Response, get_response, request, Response()).value.body expected = "The following media types are available: text/plain, text/html." assert actual == expected
def test_aspen_favicon_doesnt_get_clobbered_by_virtual_path(): mk('%value.spt') request = StubRequest.from_fs('/favicon.ico') dispatcher.dispatch(request) expected = {} actual = request.line.uri.path assert actual == expected, actual
def test_handles_busted_accept(mk): mk(("index.spt", NEGOTIATED_RESOURCE)) request = StubRequest.from_fs("index.spt") # Set an invalid Accept header so it will return default (text/plain) request.headers["Accept"] = "text/html;" actual = get_response(request, Response()).body assert actual == "Greetings, program!\n"
def test_robots_txt_also_shouldnt_be_redirected(): mk('%value') request = StubRequest.from_fs('/robots.txt') err = assert_raises(Response, gauntlet.run_through, request, gauntlet.not_found) actual = err.code assert actual == 404, actual
def test_get_response_doesnt_reset_content_type_when_not_negotiating(mk): mk(("index.spt", NEGOTIATED_RESOURCE)) request = StubRequest.from_fs("index.spt") response = Response() response.headers["Content-Type"] = "never/mind" actual = get_response(request, response).headers["Content-Type"] assert actual == "never/mind"
def test_can_override_default_renderer_entirely(): mk(('.aspen/configure-aspen.py', OVERRIDE_SIMPLATE), ('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') request.headers['Accept'] = 'text/plain' actual = get_response(request, Response()).body assert actual == "glubber", actual
def test_get_response_doesnt_reset_content_type_when_not_negotiating(): mk(('index', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index') response = Response() response.headers['Content-Type'] = 'never/mind' actual = get_response(request, response).headers['Content-Type'] assert actual == "never/mind", actual
def test_get_response_406_gives_list_of_acceptable_types(): mk(('index', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index') request.headers['Accept'] = 'cheese/head' actual = assert_raises(Response, get_response, request, Response()).body expected ="The following media types are available: text/plain, text/html." assert actual == expected, actual
def test_aspen_favicon_doesnt_get_clobbered_by_virtual_path(mk): mk('%value.spt') request = StubRequest.from_fs('/favicon.ico') dispatcher.dispatch(request) expected = {} actual = request.line.uri.path assert actual == expected
def test_handles_busted_accept(mk): mk(('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') # Set an invalid Accept header so it will return default (text/plain) request.headers['Accept'] = 'text/html;' actual = get_response(request, Response()).body assert actual == "Greetings, program!\n"
def test_can_override_default_renderer_entirely(): mk(('.aspen/configure-aspen.py', """\ from aspen.renderers import Renderer, Factory class Glubber(Renderer): def render_content(self, context): return "glubber" class GlubberFactory(Factory): Renderer = Glubber website.renderer_factories['glubber'] = GlubberFactory(website) website.default_renderers_by_media_type.default = 'glubber' """), ('index', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index') request.headers['Accept'] = 'text/plain' actual = get_response(request, Response()).body assert actual == "glubber", actual
def check_virtual_paths(path): """Given an urlpath, return a filesystem path per gauntlet.virtual_paths. """ request = StubRequest.from_fs(path) gauntlet.run_through(request, gauntlet.virtual_paths) return request
def check_trailing_slash(path): """Given an urlpath, return a filesystem path per gauntlet.trailing_slash. """ request = StubRequest.from_fs(path) gauntlet.run_through(request, gauntlet.trailing_slash) return request
def test_get_response_sets_content_type_when_it_negotiates(): mk(('index', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index') request.headers['Accept'] = 'text/html' actual = get_response(request, Response()).headers['Content-Type'] assert actual == "text/html; charset=UTF-8", actual
def test_get_response_sets_content_type_when_it_doesnt_negotiate(): mk(('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') actual = get_response(request, Response()).headers['Content-Type'] assert actual == "text/plain; charset=UTF-8", actual
def test_get_response_gets_response(): mk(('index', NEGOTIATED_RESOURCE)) response = Response() request = StubRequest.from_fs('index') actual = get_response(request, response) assert actual is response, actual
def test_get_response_negotiates(mk): mk(("index.spt", NEGOTIATED_RESOURCE)) request = StubRequest.from_fs("index.spt") request.headers["Accept"] = "text/html" actual = get_response(request, Response()).body assert actual == "<h1>Greetings, program!</h1>\n"
def test_can_override_default_renderer_entirely(mk): mk((".aspen/configure-aspen.py", OVERRIDE_SIMPLATE), ("index.spt", NEGOTIATED_RESOURCE)) request = StubRequest.from_fs("index.spt") request.headers["Accept"] = "text/plain" actual = get_response(request, Response()).body assert actual == "glubber"
def check_indirect_negotiation(path): """Given an urlpath, return a filesystem path per gauntlet.virtual_paths. """ request = StubRequest.from_fs(path) gauntlet.run_through(request, gauntlet.indirect_negotiation) return request
def test_get_response_is_happy_not_to_negotiate(mk): mk(('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') actual = get_response(request, Response()).body assert actual == "Greetings, program!\n"
def test_get_response_gets_response(mk): mk(('index.spt', NEGOTIATED_RESOURCE)) response = Response() request = StubRequest.from_fs('index.spt') actual = get_response(request, response) assert actual is response
def test_robots_txt_also_shouldnt_be_redirected(mk): mk('%value.spt') request = StubRequest.from_fs('/robots.txt') err = raises(Response, dispatcher.dispatch, request).value actual = err.code assert actual == 404
def check_trailing_slash(path): request = StubRequest.from_fs(path) dispatcher.dispatch(request) return request
def check_indirect_negotiation(path): """Given an urlpath, return a filesystem path per gauntlet.indirect_negotiation. """ request = StubRequest.from_fs(path) gauntlet.run_through(request, gauntlet.indirect_negotiation) return request
def check(path, *a): """Given a URI path, return a dispatched request object. """ request = StubRequest.from_fs(path, *a) dispatcher.dispatch(request) return request
def test_get_response_raises_406_if_need_be(mk): mk(('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') request.headers['Accept'] = 'cheese/head' actual = raises(Response, get_response, request, Response()).value.code assert actual == 406
def test_robots_txt_also_shouldnt_be_redirected(): mk('%value.spt') request = StubRequest.from_fs('/robots.txt') err = assert_raises(Response, dispatcher.dispatch, request) actual = err.code assert actual == 404, actual
def test_get_response_raises_406_if_need_be(mk): mk(("index.spt", NEGOTIATED_RESOURCE)) request = StubRequest.from_fs("index.spt") request.headers["Accept"] = "cheese/head" actual = raises(Response, get_response, request, Response()).value.code assert actual == 406
def test_get_response_sets_content_type_when_it_doesnt_negotiate(): mk(('index', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index') actual = get_response(request, Response()).headers['Content-Type'] assert actual == "text/plain; charset=UTF-8", actual
def test_get_response_sets_content_type_when_it_negotiates(mk): mk(("index.spt", NEGOTIATED_RESOURCE)) request = StubRequest.from_fs("index.spt") request.headers["Accept"] = "text/html" actual = get_response(request, Response()).headers["Content-Type"] assert actual == "text/html; charset=UTF-8"
def test_get_response_is_happy_not_to_negotiate(): mk(('index', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index') actual = get_response(request, Response()).body assert actual == "Greetings, program!\n", actual
def check_indirect_negotiation(path): """Given an urlpath, return a filesystem path per dispatcher.dispatch """ request = StubRequest.from_fs(path) dispatcher.dispatch(request) return request
def test_get_response_negotiates(): mk(('index', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index') request.headers['Accept'] = 'text/html' actual = get_response(request, Response()).body assert actual == "<h1>Greetings, program!</h1>\n", actual
def check_index(path, *a): """Given a uripath, return a filesystem path per dispatcher """ request = StubRequest.from_fs(path, *a) dispatcher.dispatch(request) return request
def test_get_response_raises_406_if_need_be(): mk(('index', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index') request.headers['Accept'] = 'cheese/head' actual = assert_raises(Response, get_response, request, Response()).code assert actual == 406, actual
def check_virtual_paths(path): """Given an urlpath, return a filesystem path per dispatcher.dispatch """ request = StubRequest.from_fs(path) dispatcher.dispatch(request) return request
def test_get_response_negotiates(mk): mk(('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') request.headers['Accept'] = 'text/html' actual = get_response(request, Response()).body assert actual == "<h1>Greetings, program!</h1>\n"
def check(path, *a): """Given a URI path, return a dispatched request object. """ request = StubRequest.from_fs(path.encode('ascii'), *a) dispatcher.dispatch(request) return request
def check_index(path, *a): """Given a uripath, return a filesystem path per gauntlet.index. """ request = StubRequest.from_fs(path, *a) gauntlet.run_through(request, gauntlet.index) return request
def test_get_response_sets_content_type_when_it_negotiates(mk): mk(('index.spt', NEGOTIATED_RESOURCE)) request = StubRequest.from_fs('index.spt') request.headers['Accept'] = 'text/html' actual = get_response(request, Response()).headers['Content-Type'] assert actual == "text/html; charset=UTF-8"