init
This commit is contained in:
parent
175f52dc0c
commit
d7bb7ee7c1
|
@ -158,5 +158,5 @@ cython_debug/
|
||||||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
#.idea/
|
.idea/
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
# falcon-example
|
# falcon-example
|
||||||
|
|
||||||
学习 Python 的 Web 框架 Falcon
|
学习 Python 的 Web 框架 Falcon
|
||||||
|
|
||||||
|
## 安装依赖
|
||||||
|
|
||||||
|
```
|
||||||
|
python3 -m pip install -r requirements.txt
|
||||||
|
```
|
|
@ -0,0 +1,7 @@
|
||||||
|
import falcon
|
||||||
|
|
||||||
|
from .images import Resource
|
||||||
|
|
||||||
|
app = application = falcon.App()
|
||||||
|
|
||||||
|
app.add_route('/images', Resource())
|
|
@ -0,0 +1,18 @@
|
||||||
|
import falcon
|
||||||
|
import msgpack
|
||||||
|
|
||||||
|
|
||||||
|
class Resource:
|
||||||
|
|
||||||
|
def on_get(self, req, resp):
|
||||||
|
doc = {
|
||||||
|
'images': [
|
||||||
|
{
|
||||||
|
'href': '/images/1eaf6ef1-7f2d-4ecc-a8d5-6e8adba7cc0e.png',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
resp.data = msgpack.packb(doc, use_bin_type=True)
|
||||||
|
resp.content_type = falcon.MEDIA_MSGPACK
|
||||||
|
resp.status = falcon.HTTP_200
|
|
@ -0,0 +1,7 @@
|
||||||
|
falcon
|
||||||
|
requests
|
||||||
|
gunicorn
|
||||||
|
httpie
|
||||||
|
orjson==3.9.2
|
||||||
|
msgpack-python==0.5.6
|
||||||
|
pytest==7.4.0
|
|
@ -0,0 +1,27 @@
|
||||||
|
import falcon
|
||||||
|
from falcon import testing
|
||||||
|
import msgpack
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from app.app import app
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture()
|
||||||
|
def client():
|
||||||
|
return testing.TestClient(app)
|
||||||
|
|
||||||
|
|
||||||
|
def test_list_images(client):
|
||||||
|
doc = {
|
||||||
|
'images': [
|
||||||
|
{
|
||||||
|
'href': '/images/1eaf6ef1-7f2d-4ecc-a8d5-6e8adba7cc0e.png',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
response = client.simulate_get('/images')
|
||||||
|
result_doc = msgpack.unpackb(response.content, raw=False)
|
||||||
|
|
||||||
|
assert result_doc == doc
|
||||||
|
assert response.status == falcon.HTTP_OK
|
Loading…
Reference in New Issue