Skip to content

Commit

Permalink
Merge pull request #2 from dele-work/feat/add_test_ci
Browse files Browse the repository at this point in the history
test: create test and CI
  • Loading branch information
kai0310 authored Sep 25, 2024
2 parents 9ea038a + eb23bc5 commit b15718e
Show file tree
Hide file tree
Showing 7 changed files with 71 additions and 1 deletion.
54 changes: 54 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: CI

on:
pull_request:

permissions:
contents: read
pull-requests: write
checks: write

jobs:
build:
permissions:
contents: read
pull-requests: write
checks: write
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'

- name: Install dependencies
working-directory: ./src
run: |
pip install poetry
poetry install
- name: Start FastAPI
working-directory: ./src
run: |
poetry run uvicorn app:app --host 0.0.0.0 --port 8000 &
- name: Run tests
working-directory: ./src
env:
BACKEND_CORS_ORIGINS: '["*"]'
run: |
sleep 5 # Wait a bit for the server to be fully up and running
poetry run pytest ./test/ --junitxml=./logs/pytest_report.xml
- name: Publish Test Report
uses: dorny/test-reporter@v1
if: failure()
with:
name: 'Test Report'
path: './src/logs/pytest_report.xml'
reporter: 'java-junit'
fail-on-error: false
2 changes: 2 additions & 0 deletions src/logs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*
!.gitignore
2 changes: 1 addition & 1 deletion src/poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ fastapi = {extras = ["all"], version = "^0.115.0"}
fastapi-pagination = {extras = ["sqlalchemy"], version = "^0.12.27"}
asyncer = "^0.0.8"
httpx = "^0.27.2"
pytest = "^8.3.3"

[tool.ruff.per-file-ignores]
"__init__.py" = [ "F401",]
Empty file added src/test/feature/__init__.py
Empty file.
Empty file added src/test/unit/__init__.py
Empty file.
13 changes: 13 additions & 0 deletions src/test/unit/test_example.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from fastapi.testclient import TestClient
from app.main import app

client = TestClient(app)


def test_root_endpoint():
expected_response = {"message": "Hello World"}

response = client.get("/")

assert response.status_code == 200
assert response.json() == expected_response

0 comments on commit b15718e

Please sign in to comment.