Add pre-commit with GiHub Action (#56)

* Update pyproject.toml

* add pre-commit

* Create .pre-commit-config.yaml

* Comment out ruff

* Update .pre-commit-config.yaml

* General formatting

* Create format-and-fail.yml

* Update ci.yml

* Add pre-commit to dev dependencies

* Update pyproject.toml
This commit is contained in:
Michael Plunkett
2025-02-26 10:42:28 -06:00
committed by GitHub
parent d9f36957cd
commit 7e48f706df
68 changed files with 473 additions and 182 deletions

View File

@@ -3,10 +3,12 @@ from unittest.mock import patch
import pytest
import yaml
from app.shared.db import models
from app.shared.settings import Settings
from app.web.db import crud
authors = ["rick@example.com", "morty@example.com", "jerry@example.com"]
@@ -373,6 +375,7 @@ async def test_get_sheets_by_id_hash(async_db_session):
@pytest.mark.asyncio
async def test_delete_stale_sheets(async_db_session):
from datetime import datetime, timedelta
from sqlalchemy.sql import select
now = datetime.now()
@@ -435,4 +438,4 @@ async def test_delete_stale_sheets(async_db_session):
# Running again should not delete anything
deleted = await crud.delete_stale_sheets(async_db_session, 7)
assert len(deleted) == 0
assert len(deleted) == 0

View File

@@ -1,5 +1,6 @@
from unittest.mock import MagicMock, PropertyMock, patch
import pytest
from app.shared.db import models

View File

@@ -1,10 +1,12 @@
from unittest.mock import MagicMock
from fastapi.testclient import TestClient
import pytest
from fastapi.testclient import TestClient
from app.shared.schemas import Usage, UsageResponse
from app.shared.user_groups import GroupInfo
from app.web.config import VERSION
from app.tests.web.db.test_crud import test_data
from app.web.config import VERSION
def test_endpoint_home(client_with_auth):

View File

@@ -1,5 +1,5 @@
from datetime import datetime
import json
from datetime import datetime
from unittest.mock import MagicMock, patch
from app.shared.db import models

View File

@@ -1,5 +1,5 @@
from datetime import datetime
import json
from datetime import datetime
from unittest.mock import MagicMock, patch
from fastapi.testclient import TestClient
@@ -45,8 +45,8 @@ def test_create_sheet_endpoint(app_with_auth, db_session):
assert response.json() == {"detail": "User does not have access to this group."}
# switch to jerry who's got less quota/permissions
from app.web.security import get_user_state
from app.web.db.user_state import UserState
from app.web.security import get_user_state
app_with_auth.dependency_overrides[get_user_state] = lambda: UserState(db_session, "jerry@example.com")
client_jerry = TestClient(app_with_auth)

View File

@@ -1,10 +1,10 @@
import os
from unittest.mock import patch
from fastapi.testclient import TestClient
import shutil
from unittest.mock import patch
import pytest
from fastapi.testclient import TestClient
def test_lifespan(app):
with TestClient(app) as client:
@@ -25,7 +25,7 @@ def test_logging_middleware(m1, client_with_auth):
client_with_auth.delete("/url/123")
# creates one empty and one from above
assert len(EXCEPTION_COUNTER.collect()[0].samples) == 2
def test_serve_local_archive_logic(get_settings):
# create a test file first
@@ -38,7 +38,7 @@ def test_serve_local_archive_logic(get_settings):
get_settings.SERVE_LOCAL_ARCHIVE = "/app/local_archive_test"
from app.web.main import app_factory
app = app_factory(get_settings)
# test
client = TestClient(app)
r = client.get("/app/local_archive_test/temp.txt")

View File

@@ -1,8 +1,8 @@
from unittest.mock import Mock, patch
import pytest
from fastapi import HTTPException
from fastapi.security import HTTPAuthorizationCredentials
import pytest
from app.web.config import ALLOW_ANY_EMAIL
@@ -108,8 +108,8 @@ async def test_authenticate_user_exception():
def test_get_user_state():
from app.web.security import get_user_state
from app.web.db.user_state import UserState
from app.web.security import get_user_state
mock_session = Mock()
test_email = "test@example.com"