Skip to content

Commit f8a1497

Browse files
httpx.run (#121)
1 parent 2e5d0a9 commit f8a1497

File tree

7 files changed

+23
-16
lines changed

7 files changed

+23
-16
lines changed

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,11 @@ $ pip install --pre httpx
3131
*Serving responses as the server...*
3232

3333
```python
34-
>>> def hello_world(request):
34+
>>> def app(request):
3535
... content = httpx.HTML('<html><body>hello, world.</body></html>')
3636
... return httpx.Response(200, content=content)
3737

38-
>>> with httpx.serve_http(hello_world) as server:
39-
... print(f"Serving on {server.url} (Press CTRL+C to quit)")
40-
... server.wait()
38+
>>> httpx.run(app)
4139
Serving on http://127.0.0.1:8080/ (Press CTRL+C to quit)
4240
```
4341

src/ahttpx/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from ._response import * # Response
99
from ._request import * # Request
1010
from ._streams import * # ByteStream, FileStream, HTTPStream, Stream
11-
from ._server import * # serve_http
11+
from ._server import * # serve_http, run
1212
from ._urlencode import * # quote, unquote, urldecode, urlencode
1313
from ._urls import * # QueryParams, URL
1414

@@ -40,6 +40,7 @@
4040
"patch",
4141
"Response",
4242
"Request",
43+
"run",
4344
"serve_http",
4445
"Stream",
4546
"Text",

src/ahttpx/_network.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def __init__(
1414
) -> None:
1515
self._reader = reader
1616
self._writer = writer
17-
self._ = address
17+
self._address = address
1818
self._tls = False
1919
self._closed = False
2020

@@ -25,11 +25,6 @@ async def write(self, buffer: bytes) -> None:
2525
self._writer.write(buffer)
2626
await self._writer.drain()
2727

28-
async def start_tls(self, ctx: ssl.SSLContext, hostname: str | None = None) -> None:
29-
# Requires Python >= 3.11...
30-
await self._writer.start_tls(ctx, server_hostname=hostname)
31-
self._tls = True
32-
3328
async def close(self) -> None:
3429
if not self._closed:
3530
self._writer.close()

src/ahttpx/_server.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from ._streams import HTTPStream
1212

1313
__all__ = [
14-
"serve_http",
14+
"serve_http", "run"
1515
]
1616

1717
logger = logging.getLogger("httpx.server")
@@ -147,5 +147,10 @@ async def handler(stream):
147147
backend = NetworkBackend()
148148
async with await backend.serve("127.0.0.1", 8080, handler) as server:
149149
server = HTTPServer(server.host, server.port)
150-
logger.info(f"Serving on {server.url}")
150+
logger.info(f"Serving on {server.url} (Press CTRL+C to quit)")
151151
yield server
152+
153+
154+
async def run(app):
155+
async with await serve_http(app) as server:
156+
server.wait()

src/httpx/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from ._response import * # Response
99
from ._request import * # Request
1010
from ._streams import * # ByteStream, FileStream, HTTPStream, Stream
11-
from ._server import * # serve_http
11+
from ._server import * # serve_http, run
1212
from ._urlencode import * # quote, unquote, urldecode, urlencode
1313
from ._urls import * # QueryParams, URL
1414

@@ -40,6 +40,7 @@
4040
"patch",
4141
"Response",
4242
"Request",
43+
"run",
4344
"serve_http",
4445
"Stream",
4546
"Text",

src/httpx/_server.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from ._streams import HTTPStream
1212

1313
__all__ = [
14-
"serve_http",
14+
"serve_http", "run"
1515
]
1616

1717
logger = logging.getLogger("httpx.server")
@@ -149,3 +149,9 @@ def handler(stream):
149149
server = HTTPServer(server.host, server.port)
150150
logger.info(f"Serving on {server.url}")
151151
yield server
152+
153+
154+
def run(app):
155+
with serve_http(app) as server:
156+
logger.info(f"Serving on {server.url} (Press CTRL+C to quit)")
157+
server.wait()

tests/test_network.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ def test_network_backend_timeout(server):
4444
net = httpx.NetworkBackend()
4545
with httpx.timeout(0.0):
4646
with pytest.raises(TimeoutError):
47-
net.connect(server.host, server.port)
47+
with net.connect(server.host, server.port) as stream:
48+
pass
4849

4950
with httpx.timeout(10.0):
5051
with net.connect(server.host, server.port) as stream:

0 commit comments

Comments
 (0)