-
Notifications
You must be signed in to change notification settings - Fork 95
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Support the FastAPI app being mounted.
- Loading branch information
Showing
7 changed files
with
68 additions
and
46 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,14 @@ | ||
"""Integration tests where the FastAPI app is mounted.""" | ||
import lilac.server | ||
import uvicorn | ||
from fastapi import FastAPI | ||
|
||
app = FastAPI() | ||
|
||
|
||
@app.get('/') | ||
def read_main(): | ||
"""The main endpoint.""" | ||
return {'message': 'Hello World from main app'} | ||
|
||
|
||
app.mount('/lilac', lilac.server.app) | ||
|
||
if __name__ == '__main__': | ||
uvicorn.run(app, host='0.0.0.0', port=8000) | ||
app.mount('/lilac_sub', lilac.server.app) |
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,29 @@ | ||
# Tests the FastAPI server when it is mounted as a sub-path. | ||
|
||
MOUNT_PATH='lilac_sub' | ||
|
||
# Find a free port. | ||
PORT=$(python -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'); | ||
|
||
poetry run uvicorn integration_tests.fastapi_integration:app --port $PORT & | ||
pid="$!" | ||
|
||
|
||
URL="http://localhost:$PORT/" | ||
start_time="$(date -u +%s)" | ||
TIMEOUT_SEC=15 | ||
until curl --fail --silent "$URL" > /dev/null; do | ||
sleep 1 | ||
current_time="$(date -u +%s)" | ||
elapsed_seconds=$(($current_time-$start_time)) | ||
if [ $elapsed_seconds -gt $TIMEOUT_SEC ]; then | ||
echo "Timeout $TIMEOUT_SEC seconds to reach server." | ||
kill $pid | ||
exit 1 | ||
fi | ||
done | ||
|
||
|
||
curl --fail --silent "http://localhost:$PORT/lilac_sub/api/v1/tasks/" | ||
|
||
curl --fail --silent "http://localhost:$PORT/lilac_sub/" |
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,32 @@ | ||
# Tests that the lilac server starts from the CLI. | ||
|
||
set -e # Fail if any of the commands below fail. | ||
|
||
# Make sure the CLI succeeds for test_data. | ||
mkdir -p test_data | ||
touch test_data/lilac.yml | ||
|
||
# Find a free port. | ||
PORT=$(python -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'); | ||
|
||
|
||
poetry run lilac start ./test_data --port $PORT & | ||
pid="$!" | ||
|
||
URL="http://localhost:$PORT/docs" | ||
start_time="$(date -u +%s)" | ||
TIMEOUT_SEC=15 | ||
until curl --fail --silent "$URL" > /dev/null; do | ||
sleep 1 | ||
current_time="$(date -u +%s)" | ||
elapsed_seconds=$(($current_time-$start_time)) | ||
if [ $elapsed_seconds -gt $TIMEOUT_SEC ]; then | ||
echo "Timeout $TIMEOUT_SEC seconds to reach server." | ||
kill $pid | ||
exit 1 | ||
fi | ||
done | ||
|
||
echo "GET request to $URL succeeded." | ||
|
||
kill $pid |
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
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