add auto testing

This commit is contained in:
Shroominic
2025-06-04 14:02:23 +02:00
parent 23f96ee436
commit 1bd3b8ecb6
4 changed files with 75 additions and 18 deletions
+50
View File
@@ -0,0 +1,50 @@
name: Run Tests
on:
push:
branches: ["*"] # Run on all branches
pull_request:
branches: ["*"] # Run on PRs to all branches
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11", "3.12"]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install dependencies
run: |
uv sync --dev
- name: Run linting with ruff
run: |
uv run ruff check .
- name: Run type checking with mypy
run: |
uv run mypy .
- name: Run tests with pytest
run: |
uv run pytest --verbose --tb=short
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.python-version }}
path: |
pytest.xml
.coverage
retention-days: 30
+23 -1
View File
@@ -5,11 +5,12 @@ description = "Payment proxy for your LLM endpoint using cashu and nostr."
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
"fastapi[standard]>=0.115",
"aiosqlite>=0.20",
"sixty-nuts>=0.0.2",
"fastapi[standard]>=0.115",
"sqlmodel>=0.0.24",
"httpx[socks]>=0.25.2",
"greenlet>=3.2.1",
]
[dependency-groups]
@@ -21,3 +22,24 @@ dev = [
"pytest-asyncio>=0.24.0",
"httpx>=0.25.2",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = "test_*.py"
python_classes = "Test*"
python_functions = "test_*"
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
addopts = [
"-v",
"--tb=short",
"--strict-markers",
"--disable-warnings",
"-p",
"no:warnings",
]
markers = [
"asyncio: marks tests as async (deselect with '-m \"not asyncio\"')",
"integration: marks tests as integration tests",
"unit: marks tests as unit tests",
]
-17
View File
@@ -1,17 +0,0 @@
[tool:pytest]
testpaths = tests
python_files = test_*.py
python_classes = Test*
python_functions = test_*
asyncio_mode = auto
asyncio_default_fixture_loop_scope = function
addopts =
-v
--tb=short
--strict-markers
--disable-warnings
-p no:warnings
markers =
asyncio: marks tests as async (deselect with '-m "not asyncio"')
integration: marks tests as integration tests
unit: marks tests as unit tests
Generated
+2
View File
@@ -797,6 +797,7 @@ source = { virtual = "." }
dependencies = [
{ name = "aiosqlite" },
{ name = "fastapi", extra = ["standard"] },
{ name = "greenlet" },
{ name = "httpx", extra = ["socks"] },
{ name = "sixty-nuts" },
{ name = "sqlmodel" },
@@ -816,6 +817,7 @@ dev = [
requires-dist = [
{ name = "aiosqlite", specifier = ">=0.20" },
{ name = "fastapi", extras = ["standard"], specifier = ">=0.115" },
{ name = "greenlet", specifier = ">=3.2.1" },
{ name = "httpx", extras = ["socks"], specifier = ">=0.25.2" },
{ name = "sixty-nuts", specifier = ">=0.0.2" },
{ name = "sqlmodel", specifier = ">=0.0.24" },