mirror of
https://github.com/Routstr/routstr-core.git
synced 2026-10-05 12:28:22 +00:00
add auto testing
This commit is contained in:
@@ -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
@@ -5,11 +5,12 @@ description = "Payment proxy for your LLM endpoint using cashu and nostr."
|
|||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"fastapi[standard]>=0.115",
|
||||||
"aiosqlite>=0.20",
|
"aiosqlite>=0.20",
|
||||||
"sixty-nuts>=0.0.2",
|
"sixty-nuts>=0.0.2",
|
||||||
"fastapi[standard]>=0.115",
|
|
||||||
"sqlmodel>=0.0.24",
|
"sqlmodel>=0.0.24",
|
||||||
"httpx[socks]>=0.25.2",
|
"httpx[socks]>=0.25.2",
|
||||||
|
"greenlet>=3.2.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[dependency-groups]
|
[dependency-groups]
|
||||||
@@ -21,3 +22,24 @@ dev = [
|
|||||||
"pytest-asyncio>=0.24.0",
|
"pytest-asyncio>=0.24.0",
|
||||||
"httpx>=0.25.2",
|
"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
@@ -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
|
|
||||||
@@ -797,6 +797,7 @@ source = { virtual = "." }
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "aiosqlite" },
|
{ name = "aiosqlite" },
|
||||||
{ name = "fastapi", extra = ["standard"] },
|
{ name = "fastapi", extra = ["standard"] },
|
||||||
|
{ name = "greenlet" },
|
||||||
{ name = "httpx", extra = ["socks"] },
|
{ name = "httpx", extra = ["socks"] },
|
||||||
{ name = "sixty-nuts" },
|
{ name = "sixty-nuts" },
|
||||||
{ name = "sqlmodel" },
|
{ name = "sqlmodel" },
|
||||||
@@ -816,6 +817,7 @@ dev = [
|
|||||||
requires-dist = [
|
requires-dist = [
|
||||||
{ name = "aiosqlite", specifier = ">=0.20" },
|
{ name = "aiosqlite", specifier = ">=0.20" },
|
||||||
{ name = "fastapi", extras = ["standard"], specifier = ">=0.115" },
|
{ name = "fastapi", extras = ["standard"], specifier = ">=0.115" },
|
||||||
|
{ name = "greenlet", specifier = ">=3.2.1" },
|
||||||
{ name = "httpx", extras = ["socks"], specifier = ">=0.25.2" },
|
{ name = "httpx", extras = ["socks"], specifier = ">=0.25.2" },
|
||||||
{ name = "sixty-nuts", specifier = ">=0.0.2" },
|
{ name = "sixty-nuts", specifier = ">=0.0.2" },
|
||||||
{ name = "sqlmodel", specifier = ">=0.0.24" },
|
{ name = "sqlmodel", specifier = ">=0.0.24" },
|
||||||
|
|||||||
Reference in New Issue
Block a user