diff --git a/docs/_newsfragments/2262.newandimproved.rst b/docs/_newsfragments/2262.newandimproved.rst index c9f09c208..374c5b642 100644 --- a/docs/_newsfragments/2262.newandimproved.rst +++ b/docs/_newsfragments/2262.newandimproved.rst @@ -1 +1,5 @@ -:py:func:`falcon.testing.helpers.create_scope` preserves the raw_path. This is to keep consistency with `#2159 `_ \ No newline at end of file +Similar to :func:`~falcon.testing.create_environ`, +the :func:`~falcon.testing.create_scope` testing helper now preserves the raw URI path, +and propagates it to the created ASGI connection scope as the ``raw_path`` byte string +(according to the `ASGI specification +`__). diff --git a/tests/test_recipes.py b/tests/test_recipes.py index af47ed3fd..be2e9af9e 100644 --- a/tests/test_recipes.py +++ b/tests/test_recipes.py @@ -115,33 +115,23 @@ def test_optional_indent(self, util): class TestRawURLPath: - def path_extras(self, asgi, url): - if asgi: - return {'raw_path': url.encode()} - return None - def test_raw_path(self, asgi, app_kind, util): recipe = util.load_module( 'raw_url_path', parent_dir='examples/recipes', suffix=app_kind ) - # TODO(vytas): Improve TestClient to automatically add ASGI raw_path - # (as it does for WSGI): GH #2262. - url1 = '/cache/http%3A%2F%2Ffalconframework.org' - result1 = falcon.testing.simulate_get( - recipe.app, url1, extras=self.path_extras(asgi, url1) - ) - scope1 = falcon.testing.create_scope(url1) + result1 = falcon.testing.simulate_get(recipe.app, url1) assert result1.status_code == 200 assert result1.json == {'url': 'http://falconframework.org'} + + scope1 = falcon.testing.create_scope(url1) assert scope1['raw_path'] == url1.encode() url2 = '/cache/http%3A%2F%2Ffalconframework.org/status' - result2 = falcon.testing.simulate_get( - recipe.app, url2, extras=self.path_extras(asgi, url2) - ) - scope2 = falcon.testing.create_scope(url2) + result2 = falcon.testing.simulate_get(recipe.app, url2) assert result2.status_code == 200 assert result2.json == {'cached': True} + + scope2 = falcon.testing.create_scope(url2) assert scope2['raw_path'] == url2.encode()