Compare commits
4 Commits
guide
...
response-e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8027563144 | ||
|
|
875e921bda | ||
|
|
11c841ab4e | ||
|
|
a5a9658896 |
@@ -22,7 +22,6 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left:
|
|||||||
.cs { color: #a2a2a2; font-style: italic } /* Comment.Special */
|
.cs { color: #a2a2a2; font-style: italic } /* Comment.Special */
|
||||||
.gd { color: #777777 } /* Generic.Deleted */
|
.gd { color: #777777 } /* Generic.Deleted */
|
||||||
.ge { color: #777777 } /* Generic.Emph */
|
.ge { color: #777777 } /* Generic.Emph */
|
||||||
.ges { color: #777777 } /* Generic.EmphStrong */
|
|
||||||
.gr { color: #777777 } /* Generic.Error */
|
.gr { color: #777777 } /* Generic.Error */
|
||||||
.gh { color: #777777 } /* Generic.Heading */
|
.gh { color: #777777 } /* Generic.Heading */
|
||||||
.gi { color: #777777 } /* Generic.Inserted */
|
.gi { color: #777777 } /* Generic.Inserted */
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
sanic>=23.6.*
|
sanic>=23.6.*
|
||||||
sanic-ext>=23.6.*
|
sanic-ext>=23.6.*
|
||||||
msgspec
|
msgspec
|
||||||
python-frontmatter
|
|
||||||
pygments
|
|
||||||
docstring-parser
|
|
||||||
libsass
|
|
||||||
mistune
|
|
||||||
|
|||||||
@@ -1,11 +1,3 @@
|
|||||||
"""Sanic User Guide
|
|
||||||
|
|
||||||
https://sanic.dev
|
|
||||||
|
|
||||||
Built using the SHH stack:
|
|
||||||
- Sanic
|
|
||||||
- html5tagger
|
|
||||||
- HTMX"""
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from webapp.worker.factory import create_app
|
from webapp.worker.factory import create_app
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ from sanic.helpers import (
|
|||||||
Default,
|
Default,
|
||||||
_default,
|
_default,
|
||||||
has_message_body,
|
has_message_body,
|
||||||
remove_entity_headers,
|
|
||||||
)
|
)
|
||||||
from sanic.http import Http
|
from sanic.http import Http
|
||||||
|
|
||||||
@@ -106,9 +105,6 @@ class BaseHTTPResponse:
|
|||||||
Returns:
|
Returns:
|
||||||
Iterator[Tuple[bytes, bytes]]: A list of header tuples encoded in bytes for sending
|
Iterator[Tuple[bytes, bytes]]: A list of header tuples encoded in bytes for sending
|
||||||
""" # noqa: E501
|
""" # noqa: E501
|
||||||
# TODO: Make a blacklist set of header names and then filter with that
|
|
||||||
if self.status in (304, 412): # Not Modified, Precondition Failed
|
|
||||||
self.headers = remove_entity_headers(self.headers)
|
|
||||||
if has_message_body(self.status):
|
if has_message_body(self.status):
|
||||||
self.headers.setdefault("content-type", self.content_type)
|
self.headers.setdefault("content-type", self.content_type)
|
||||||
# Encode headers into bytes
|
# Encode headers into bytes
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ from pytest import LogCaptureFixture
|
|||||||
|
|
||||||
from sanic import Request, Sanic
|
from sanic import Request, Sanic
|
||||||
from sanic.compat import Header
|
from sanic.compat import Header
|
||||||
|
from sanic.constants import DEFAULT_HTTP_CONTENT_TYPE
|
||||||
from sanic.cookies import CookieJar
|
from sanic.cookies import CookieJar
|
||||||
from sanic.response import (
|
from sanic.response import (
|
||||||
HTTPResponse,
|
HTTPResponse,
|
||||||
@@ -177,6 +178,10 @@ def json_app(app):
|
|||||||
async def unmodified_handler(request: Request):
|
async def unmodified_handler(request: Request):
|
||||||
return json(JSON_DATA, status=304)
|
return json(JSON_DATA, status=304)
|
||||||
|
|
||||||
|
@app.get("/precondition")
|
||||||
|
async def precondition_handler(request: Request):
|
||||||
|
return json(JSON_DATA, status=412)
|
||||||
|
|
||||||
@app.delete("/")
|
@app.delete("/")
|
||||||
async def delete_handler(request: Request):
|
async def delete_handler(request: Request):
|
||||||
return json(None, status=204)
|
return json(None, status=204)
|
||||||
@@ -192,6 +197,10 @@ def test_json_response(json_app):
|
|||||||
assert response.text == json_dumps(JSON_DATA)
|
assert response.text == json_dumps(JSON_DATA)
|
||||||
assert response.json == JSON_DATA
|
assert response.json == JSON_DATA
|
||||||
|
|
||||||
|
request, response = json_app.test_client.get("/precondition")
|
||||||
|
assert response.status == 412
|
||||||
|
assert response.json == JSON_DATA
|
||||||
|
|
||||||
|
|
||||||
def test_no_content(json_app):
|
def test_no_content(json_app):
|
||||||
request, response = json_app.test_client.get("/no-content")
|
request, response = json_app.test_client.get("/no-content")
|
||||||
@@ -545,7 +554,7 @@ def test_raw_response(app):
|
|||||||
return raw(b"raw_response")
|
return raw(b"raw_response")
|
||||||
|
|
||||||
request, response = app.test_client.get("/test")
|
request, response = app.test_client.get("/test")
|
||||||
assert response.content_type == "application/octet-stream"
|
assert response.content_type == DEFAULT_HTTP_CONTENT_TYPE
|
||||||
assert response.body == b"raw_response"
|
assert response.body == b"raw_response"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -502,7 +502,7 @@ def test_dynamic_route_int(app):
|
|||||||
|
|
||||||
request, response = app.test_client.get("/folder/12345")
|
request, response = app.test_client.get("/folder/12345")
|
||||||
assert response.text == "OK"
|
assert response.text == "OK"
|
||||||
assert type(results[0]) is int
|
assert isinstance(results[0], int)
|
||||||
|
|
||||||
request, response = app.test_client.get("/folder/asdf")
|
request, response = app.test_client.get("/folder/asdf")
|
||||||
assert response.status == 404
|
assert response.status == 404
|
||||||
@@ -518,7 +518,7 @@ def test_dynamic_route_number(app):
|
|||||||
|
|
||||||
request, response = app.test_client.get("/weight/12345")
|
request, response = app.test_client.get("/weight/12345")
|
||||||
assert response.text == "OK"
|
assert response.text == "OK"
|
||||||
assert type(results[0]) is float
|
assert isinstance(results[0], float)
|
||||||
|
|
||||||
request, response = app.test_client.get("/weight/1234.56")
|
request, response = app.test_client.get("/weight/1234.56")
|
||||||
assert response.status == 200
|
assert response.status == 200
|
||||||
@@ -567,7 +567,7 @@ def test_dynamic_route_uuid(app):
|
|||||||
url = "/quirky/123e4567-e89b-12d3-a456-426655440000"
|
url = "/quirky/123e4567-e89b-12d3-a456-426655440000"
|
||||||
request, response = app.test_client.get(url)
|
request, response = app.test_client.get(url)
|
||||||
assert response.text == "OK"
|
assert response.text == "OK"
|
||||||
assert type(results[0]) is uuid.UUID
|
assert isinstance(results[0], uuid.UUID)
|
||||||
|
|
||||||
generated_uuid = uuid.uuid4()
|
generated_uuid = uuid.uuid4()
|
||||||
request, response = app.test_client.get(f"/quirky/{generated_uuid}")
|
request, response = app.test_client.get(f"/quirky/{generated_uuid}")
|
||||||
@@ -861,7 +861,7 @@ def test_dynamic_add_route_int(app):
|
|||||||
|
|
||||||
request, response = app.test_client.get("/folder/12345")
|
request, response = app.test_client.get("/folder/12345")
|
||||||
assert response.text == "OK"
|
assert response.text == "OK"
|
||||||
assert type(results[0]) is int
|
assert isinstance(results[0], int)
|
||||||
|
|
||||||
request, response = app.test_client.get("/folder/asdf")
|
request, response = app.test_client.get("/folder/asdf")
|
||||||
assert response.status == 404
|
assert response.status == 404
|
||||||
@@ -878,7 +878,7 @@ def test_dynamic_add_route_number(app):
|
|||||||
|
|
||||||
request, response = app.test_client.get("/weight/12345")
|
request, response = app.test_client.get("/weight/12345")
|
||||||
assert response.text == "OK"
|
assert response.text == "OK"
|
||||||
assert type(results[0]) is float
|
assert isinstance(results[0], float)
|
||||||
|
|
||||||
request, response = app.test_client.get("/weight/1234.56")
|
request, response = app.test_client.get("/weight/1234.56")
|
||||||
assert response.status == 200
|
assert response.status == 200
|
||||||
|
|||||||
Reference in New Issue
Block a user