Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/trunk' into lots-more-docs
Browse files Browse the repository at this point in the history
  • Loading branch information
glyph committed Aug 8, 2023
2 parents f67034e + fe7fe09 commit c52d84c
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 28 deletions.
2 changes: 1 addition & 1 deletion requirements/black.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
black==23.3.0
black==23.7.0
2 changes: 1 addition & 1 deletion requirements/packaging.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
readme-renderer==35.0
readme-renderer==40.0
twine==4.0.2
2 changes: 1 addition & 1 deletion requirements/pre-commit.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
pre-commit==3.3.2
pre-commit==3.3.3
2 changes: 1 addition & 1 deletion requirements/pyupgrade.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
pyupgrade==3.8.0
pyupgrade==3.10.1
4 changes: 2 additions & 2 deletions requirements/release.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
click==8.1.3
GitPython==3.1.31
click==8.1.6
GitPython==3.1.32
incremental[scripts]==22.10.0
twine==4.0.2
21 changes: 12 additions & 9 deletions src/klein/_resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
from twisted.web import server
from twisted.web.iweb import IRenderable, IRequest
from twisted.web.resource import IResource, Resource, getChildForRequest
from twisted.web.server import NOT_DONE_YET
from twisted.web.template import renderElement

from ._dihttp import Response
Expand Down Expand Up @@ -304,16 +303,20 @@ def processing_failed(

d.addErrback(processing_failed, self._app._error_handlers)

def write_response(r: object) -> None:
if r is not StandInResource:
if isinstance(r, str):
r = r.encode("utf-8")
def write_response(
r: Union[_StandInResource, str, bytes, int, None]
) -> None:
if r is StandInResource:
return

if (r is not None) and (r != NOT_DONE_YET):
request.write(r)
if isinstance(r, str):
r = r.encode("utf-8")

if not request_finished[0]:
request.finish()
if isinstance(r, bytes):
request.write(r)

if not request_finished[0]:
request.finish()

d.addCallback(write_response)
d.addErrback(log.err, _why="Unhandled Error writing response")
Expand Down
16 changes: 3 additions & 13 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -61,22 +61,12 @@ setenv =

coverage: COVERAGE_PROCESS_START={toxinidir}/.coveragerc

TRIAL_JOBS={env:TRIAL_JOBS:--jobs=2}
TRIAL_ARGS={env:TRIAL_ARGS:--jobs=2}

commands =
# Run trial without coverage
test: trial --random=0 {env:TRIAL_JOBS} --temp-directory="{envlogdir}/trial.d" {posargs:{env:PY_MODULE}}

# Run trial with coverage
# Notes:
# - Because we run tests in parallel, which uses multiple subprocesses,
# we need to drop in a .pth file that causes coverage to start when
# Python starts. See:
# https://coverage.readthedocs.io/en/coverage-5.5/subprocess.html
# - We use coverage in parallel mode, then combine here to get the results
# to get a unified result for the current test environment.
# - Use `tox -e coverage_report` to generate a report for all environments.
coverage: coverage run "{envdir}/bin/trial" --random=0 {env:TRIAL_JOBS} --temp-directory="{envlogdir}/trial.d" {posargs:{env:PY_MODULE}}
test: python -b "{envdir}/bin/trial" --random=0 {env:TRIAL_ARGS} --temp-directory="{envlogdir}/trial.d" {posargs:{env:PY_MODULE}}
coverage: coverage run "{envdir}/bin/trial" --random=0 {env:TRIAL_ARGS} --temp-directory="{envlogdir}/trial.d" {posargs:{env:PY_MODULE}}

##
# Lint
Expand Down

0 comments on commit c52d84c

Please sign in to comment.