asgi-tools 1.3.2__tar.gz → 1.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. {asgi_tools-1.3.2/asgi_tools.egg-info → asgi_tools-1.3.3}/PKG-INFO +2 -2
  2. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/middleware.py +1 -1
  3. {asgi_tools-1.3.2 → asgi_tools-1.3.3/asgi_tools.egg-info}/PKG-INFO +2 -2
  4. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools.egg-info/requires.txt +1 -1
  5. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/pyproject.toml +2 -2
  6. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_middlewares.py +8 -0
  7. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/LICENSE +0 -0
  8. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/MANIFEST.in +0 -0
  9. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/README.rst +0 -0
  10. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/__init__.py +0 -0
  11. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/_compat.py +0 -0
  12. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/app.py +0 -0
  13. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/constants.py +0 -0
  14. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/errors.py +0 -0
  15. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/forms.py +0 -0
  16. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/forms.pyx +0 -0
  17. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/logs.py +0 -0
  18. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/multipart.pxd +0 -0
  19. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/multipart.py +0 -0
  20. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/multipart.pyx +0 -0
  21. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/py.typed +0 -0
  22. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/request.py +0 -0
  23. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/response.py +0 -0
  24. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/router.py +0 -0
  25. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/tests.py +0 -0
  26. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/types.py +0 -0
  27. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/utils.py +0 -0
  28. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools/view.py +0 -0
  29. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools.egg-info/SOURCES.txt +0 -0
  30. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools.egg-info/dependency_links.txt +0 -0
  31. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/asgi_tools.egg-info/top_level.txt +0 -0
  32. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/setup.cfg +0 -0
  33. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/setup.py +0 -0
  34. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_app.py +0 -0
  35. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_benchmarks.py +0 -0
  36. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_client.py +0 -0
  37. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_compat.py +0 -0
  38. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_compatibility.py +0 -0
  39. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_examples.py +0 -0
  40. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_formdata.py +0 -0
  41. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_request.py +0 -0
  42. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_responses.py +0 -0
  43. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_types.py +0 -0
  44. {asgi_tools-1.3.2 → asgi_tools-1.3.3}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: asgi-tools
3
- Version: 1.3.2
3
+ Version: 1.3.3
4
4
  Summary: ASGI Toolkit to build web applications
5
5
  Author-email: Kirill Klenov <horneds@gmail.com>
6
6
  License: MIT License
@@ -33,7 +33,7 @@ Requires-Dist: async-timeout; python_version < "3.11"
33
33
  Provides-Extra: tests
34
34
  Requires-Dist: aiofile; extra == "tests"
35
35
  Requires-Dist: pytest; extra == "tests"
36
- Requires-Dist: pytest-aio[curio,trio]>=1.3.2; extra == "tests"
36
+ Requires-Dist: pytest-aio[curio,trio]>=1.3.3; extra == "tests"
37
37
  Requires-Dist: pytest-benchmark; extra == "tests"
38
38
  Requires-Dist: PyYAML; extra == "tests"
39
39
  Requires-Dist: ruff; extra == "tests"
@@ -403,7 +403,7 @@ class StaticFilesMiddleware(BaseMiddleware):
403
403
  filename = path[len(url_prefix) :].strip("/")
404
404
  for folder in self.folders:
405
405
  filepath = folder.joinpath(filename).resolve()
406
- if folder != filepath.parent:
406
+ if not filepath.is_file() or not filepath.is_relative_to(folder):
407
407
  continue
408
408
  with suppress(ASGIError):
409
409
  response = ResponseFile(filepath, headers_only=scope["method"] == "HEAD")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: asgi-tools
3
- Version: 1.3.2
3
+ Version: 1.3.3
4
4
  Summary: ASGI Toolkit to build web applications
5
5
  Author-email: Kirill Klenov <horneds@gmail.com>
6
6
  License: MIT License
@@ -33,7 +33,7 @@ Requires-Dist: async-timeout; python_version < "3.11"
33
33
  Provides-Extra: tests
34
34
  Requires-Dist: aiofile; extra == "tests"
35
35
  Requires-Dist: pytest; extra == "tests"
36
- Requires-Dist: pytest-aio[curio,trio]>=1.3.2; extra == "tests"
36
+ Requires-Dist: pytest-aio[curio,trio]>=1.3.3; extra == "tests"
37
37
  Requires-Dist: pytest-benchmark; extra == "tests"
38
38
  Requires-Dist: PyYAML; extra == "tests"
39
39
  Requires-Dist: ruff; extra == "tests"
@@ -25,7 +25,7 @@ orjson
25
25
  [tests]
26
26
  aiofile
27
27
  pytest
28
- pytest-aio[curio,trio]>=1.3.2
28
+ pytest-aio[curio,trio]>=1.3.3
29
29
  pytest-benchmark
30
30
  PyYAML
31
31
  ruff
@@ -3,7 +3,7 @@ requires = ["setuptools", "wheel", "Cython"]
3
3
 
4
4
  [project]
5
5
  name = "asgi-tools"
6
- version = "1.3.2"
6
+ version = "1.3.3"
7
7
  description = "ASGI Toolkit to build web applications"
8
8
  readme = "README.rst"
9
9
  requires-python = ">=3.10"
@@ -43,7 +43,7 @@ documentation = "https://klen.github.io/asgi-tools"
43
43
  tests = [
44
44
  "aiofile",
45
45
  "pytest",
46
- "pytest-aio[curio,trio] >= 1.3.2",
46
+ "pytest-aio[curio,trio] >= 1.3.3",
47
47
  "pytest-benchmark",
48
48
  "PyYAML",
49
49
  "ruff",
@@ -210,6 +210,14 @@ async def test_staticfiles_middleware(client_cls, app):
210
210
  text = await res.text()
211
211
  assert text.startswith('"""test middlewares"""')
212
212
 
213
+ res = await client.get("/static/fixtures/multipart/CR_in_header.http")
214
+ assert res.status_code == 200
215
+ text = await res.text()
216
+ assert text.startswith("------WebKitFormBoundaryT")
217
+
218
+ res = await client.get("/static/../asgi_tools/__init__.py")
219
+ assert res.status_code == 404
220
+
213
221
  res = await client.get("/static/unknown")
214
222
  assert res.status_code == 404
215
223
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes