]> git.ipfire.org Git - thirdparty/starlette.git/commitdiff
Remove deprecated decorators from test_base (#1493)
authorAdrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>
Thu, 10 Feb 2022 17:36:24 +0000 (11:36 -0600)
committerGitHub <noreply@github.com>
Thu, 10 Feb 2022 17:36:24 +0000 (18:36 +0100)
* remove deprecated routing and middleware decorators from test_base.py

* remove deprecated routing and middleware decorators from test_base.py

* remove test_middleware_decorator test

* Update tests/middleware/test_base.py

Co-authored-by: Amin Alaee <mohammadamin.alaee@gmail.com>
* add pragma: nocovers

Co-authored-by: Amin Alaee <mohammadamin.alaee@gmail.com>
starlette/applications.py
starlette/routing.py
tests/middleware/test_base.py

index 1353e556ef5cf04765e671f69d74832b928c32f7..8474ec38f784f056b1e6cf9af519b9231aaa1c78 100644 (file)
@@ -123,7 +123,9 @@ class Starlette:
     def on_event(self, event_type: str) -> typing.Callable:  # pragma: nocover
         return self.router.on_event(event_type)
 
-    def mount(self, path: str, app: ASGIApp, name: str = None) -> None:
+    def mount(
+        self, path: str, app: ASGIApp, name: str = None
+    ) -> None:  # pragma: nocover
         """
         We no longer document this API, and its usage is discouraged.
         Instead you should use the following approach:
index 9a3747e62f489f28a3c19639e1e3f51070942455..03db2ff3e2cd54585ef6f0494eba4e98125d64c8 100644 (file)
@@ -695,7 +695,9 @@ class Router:
 
     # The following usages are now discouraged in favour of configuration
     #  during Router.__init__(...)
-    def mount(self, path: str, app: ASGIApp, name: str = None) -> None:
+    def mount(
+        self, path: str, app: ASGIApp, name: str = None
+    ) -> None:  # pragma: nocover
         """
         We no longer document this API, and its usage is discouraged.
         Instead you should use the following approach:
@@ -736,7 +738,7 @@ class Router:
         methods: typing.List[str] = None,
         name: str = None,
         include_in_schema: bool = True,
-    ) -> None:
+    ) -> None:  # pragma: nocover
         route = Route(
             path,
             endpoint=endpoint,
index 2eb802be35b06d9722fe31118a999de07c01e3cc..04da3a961a9bd57d1fd7aa5fa27a93b694a2bce7 100644 (file)
@@ -4,7 +4,7 @@ from starlette.applications import Starlette
 from starlette.middleware import Middleware
 from starlette.middleware.base import BaseHTTPMiddleware
 from starlette.responses import PlainTextResponse, StreamingResponse
-from starlette.routing import Route, WebSocketRoute
+from starlette.routing import Mount, Route, WebSocketRoute
 
 
 class CustomMiddleware(BaseHTTPMiddleware):
@@ -81,30 +81,6 @@ def test_custom_middleware(test_client_factory):
         assert text == "Hello, world!"
 
 
-def test_middleware_decorator(test_client_factory):
-    app = Starlette()
-
-    @app.route("/homepage")
-    def homepage(request):
-        return PlainTextResponse("Homepage")
-
-    @app.middleware("http")
-    async def plaintext(request, call_next):
-        if request.url.path == "/":
-            return PlainTextResponse("OK")
-        response = await call_next(request)
-        response.headers["Custom"] = "Example"
-        return response
-
-    client = test_client_factory(app)
-    response = client.get("/")
-    assert response.text == "OK"
-
-    response = client.get("/homepage")
-    assert response.text == "Homepage"
-    assert response.headers["Custom"] == "Example"
-
-
 def test_state_data_across_multiple_middlewares(test_client_factory):
     expected_value1 = "foo"
     expected_value2 = "bar"
@@ -128,15 +104,18 @@ def test_state_data_across_multiple_middlewares(test_client_factory):
             response.headers["X-State-Bar"] = request.state.bar
             return response
 
-    app = Starlette()
-    app.add_middleware(aMiddleware)
-    app.add_middleware(bMiddleware)
-    app.add_middleware(cMiddleware)
-
-    @app.route("/")
     def homepage(request):
         return PlainTextResponse("OK")
 
+    app = Starlette(
+        routes=[Route("/", homepage)],
+        middleware=[
+            Middleware(aMiddleware),
+            Middleware(bMiddleware),
+            Middleware(cMiddleware),
+        ],
+    )
+
     client = test_client_factory(app)
     response = client.get("/")
     assert response.text == "OK"
@@ -169,8 +148,7 @@ def test_fully_evaluated_response(test_client_factory):
             await call_next(request)
             return PlainTextResponse("Custom")
 
-    app = Starlette()
-    app.add_middleware(CustomMiddleware)
+    app = Starlette(middleware=[Middleware(CustomMiddleware)])
 
     client = test_client_factory(app)
     response = client.get("/does_not_exist")
@@ -179,7 +157,7 @@ def test_fully_evaluated_response(test_client_factory):
 
 def test_exception_on_mounted_apps(test_client_factory):
     sub_app = Starlette(routes=[Route("/", exc)])
-    app.mount("/sub", sub_app)
+    app = Starlette(routes=[Mount("/sub", app=sub_app)])
 
     client = test_client_factory(app)
     with pytest.raises(Exception) as ctx: