-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make client's python FastAPI connect endpoint (#5)
* Adding the client FastAPI file * Adding a simple "connect" endpoint * Adding tests * Adding github workflow to run the tests (copied from FL4Health) * Adding info on how to start the client on README.md
- Loading branch information
Showing
8 changed files
with
75 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# only has to pass for python 3.9 | ||
name: PyTest Unit Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
main | ||
pull_request: | ||
branches: | ||
main | ||
|
||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
- name: Set up Python 3.9 | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: 3.9 | ||
# Display the Python version being used | ||
- name: Display Python version | ||
run: python -c "import sys; print(sys.version)" | ||
- name: Install and configure Poetry | ||
uses: snok/install-poetry@v1 | ||
with: | ||
virtualenvs-create: true | ||
virtualenvs-in-project: true | ||
- name: Set up cache | ||
uses: actions/cache@v2 | ||
id: cached-poetry-dependencies | ||
with: | ||
path: .venv | ||
key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} | ||
- name: Install dependencies | ||
run: poetry install --with "dev, test" | ||
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | ||
- name: Run Tests | ||
run: | | ||
source .venv/bin/activate | ||
pytest florist/tests/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
from fastapi import FastAPI | ||
from fastapi.responses import JSONResponse | ||
|
||
app = FastAPI() | ||
|
||
|
||
@app.get("/api/client/connect") | ||
def connect() -> JSONResponse: | ||
""" | ||
Confirms the client is up and ready to accept instructions. | ||
:return: JSON `{"status": "ok"}` | ||
""" | ||
return JSONResponse({"status": "ok"}) |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import json | ||
|
||
from florist.api import client | ||
|
||
|
||
def test_connect() -> None: | ||
response = client.connect() | ||
|
||
assert response.status_code == 200 | ||
assert response.body.decode() == json.dumps({"status": "ok"}, separators=(",", ":")) |