# import pytest # from sanic.response import text # from sanic.router import RouteExists # @pytest.mark.parametrize( # "method,attr, expected", # [ # ("get", "text", "OK1 test"), # ("post", "text", "OK2 test"), # ("put", "text", "OK2 test"), # ("delete", "status", 405), # ], # ) # def test_overload_dynamic_routes(app, method, attr, expected): # @app.route("/overload/", methods=["GET"]) # async def handler1(request, param): # return text("OK1 " + param) # @app.route("/overload/", methods=["POST", "PUT"]) # async def handler2(request, param): # return text("OK2 " + param) # request, response = getattr(app.test_client, method)("/overload/test") # assert getattr(response, attr) == expected # def test_overload_dynamic_routes_exist(app): # @app.route("/overload/", methods=["GET"]) # async def handler1(request, param): # return text("OK1 " + param) # @app.route("/overload/", methods=["POST", "PUT"]) # async def handler2(request, param): # return text("OK2 " + param) # # if this doesn't raise an error, than at least the below should happen: # # assert response.text == 'Duplicated' # with pytest.raises(RouteExists): # @app.route("/overload/", methods=["PUT", "DELETE"]) # async def handler3(request, param): # return text("Duplicated")