diff --git a/responder/api.py b/responder/api.py index 3235c6a..5f04dca 100644 --- a/responder/api.py +++ b/responder/api.py @@ -253,11 +253,11 @@ class API: except Exception: self.default_response(req, resp, error=True) - if route.is_class_based or cont: + elif route.is_class_based or cont: try: view = route.endpoint(**params) except TypeError: - view = route.endpoint + view = route.endpoint() # Run on_request first. try: diff --git a/responder/routes.py b/responder/routes.py index fab4313..a88d878 100644 --- a/responder/routes.py +++ b/responder/routes.py @@ -72,7 +72,7 @@ class Route: @property def is_class_based(self): return hasattr(self.endpoint, "__class__") - + @property def is_function(self): # TODO: Should we remove is_routed ? diff --git a/tests/test_responder.py b/tests/test_responder.py index 92de409..88a9b47 100644 --- a/tests/test_responder.py +++ b/tests/test_responder.py @@ -65,7 +65,7 @@ def test_class_based_view_registration(api): def test_class_based_view_parameters(api): @api.route("/{greeting}") class Greeting: - def on_request(req, resp, *, greeting): + def on_request(self, req, resp, *, greeting): resp.text = f"{greeting}, world!" assert api.session().get("http://;/Hello").ok