From cae8e1c41194a366c9314f14f2f50737636404e1 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Sat, 13 Sep 2025 21:00:44 +0800 Subject: [PATCH] Format with isort/ruff and implement linter step in Woodpecker --- .woodpecker/.deploy.yml | 1 + .woodpecker/.lint.yml | 27 +++++++++++++++++++ src/accounts/serializers.py | 2 +- src/api/urls.py | 7 ++--- src/core/config/models.py | 10 ++----- src/core/settings.py | 2 +- src/core/templates/__init__.py | 1 - src/tests/settings.py | 1 - src/tests/users/__init__.py | 4 +-- src/tests/users/test_user_login_query_self.py | 5 ++-- 10 files changed, 38 insertions(+), 22 deletions(-) create mode 100644 .woodpecker/.lint.yml diff --git a/.woodpecker/.deploy.yml b/.woodpecker/.deploy.yml index 389a2b9..56b9d1a 100644 --- a/.woodpecker/.deploy.yml +++ b/.woodpecker/.deploy.yml @@ -49,5 +49,6 @@ when: depends_on: - build + - test skip_clone: true \ No newline at end of file diff --git a/.woodpecker/.lint.yml b/.woodpecker/.lint.yml new file mode 100644 index 0000000..f932982 --- /dev/null +++ b/.woodpecker/.lint.yml @@ -0,0 +1,27 @@ +labels: + platform: linux/amd64 + +steps: + - name: lint + image: astral/uv:python3.13-trixie-slim + commands: + - uv sync --frozen + - export PATH=".venv/bin:$PATH" + - ruff check src/. --no-fix --diff --show-files --verbose + - name: discord + image: appleboy/drone-discord + settings: + webhook_id: + from_secret: DISCORD_WEBHOOK_ID + webhook_token: + from_secret: DISCORD_WEBHOOK_TOKEN + message: > + {{#success build.status}} + {{repo.name}}: Lint step for build #{{build.number}} output {{build.status}} + {{/success}} + +when: + - branch: master + event: + - push + - manual diff --git a/src/accounts/serializers.py b/src/accounts/serializers.py index a3c6a5b..b5a1cc9 100644 --- a/src/accounts/serializers.py +++ b/src/accounts/serializers.py @@ -3,7 +3,7 @@ from django.core import exceptions as django_exceptions from django.core.cache import cache from djoser.serializers import UserSerializer as BaseUserSerializer from rest_framework import serializers -from rest_framework.serializers import ImageField, ModelSerializer +from rest_framework.serializers import ModelSerializer from rest_framework.settings import api_settings from accounts.models import CustomUser diff --git a/src/api/urls.py b/src/api/urls.py index 6b6040a..30c9900 100644 --- a/src/api/urls.py +++ b/src/api/urls.py @@ -1,10 +1,7 @@ from django.contrib import admin from django.urls import include, path -from drf_spectacular.views import ( - SpectacularAPIView, - SpectacularRedocView, - SpectacularSwaggerView, -) +from drf_spectacular.views import (SpectacularAPIView, SpectacularRedocView, + SpectacularSwaggerView) from core.settings import config diff --git a/src/core/config/models.py b/src/core/config/models.py index 7c97b00..21810a4 100644 --- a/src/core/config/models.py +++ b/src/core/config/models.py @@ -6,14 +6,8 @@ import re from datetime import timedelta from typing import Literal -from pydantic import ( - BaseModel, - EmailStr, - Field, - StrictStr, - field_validator, - model_validator, -) +from pydantic import (BaseModel, EmailStr, Field, StrictStr, field_validator, + model_validator) from pydantic_extra_types.timezone_name import TimeZoneName diff --git a/src/core/settings.py b/src/core/settings.py index 6e91c56..5503e12 100644 --- a/src/core/settings.py +++ b/src/core/settings.py @@ -194,7 +194,7 @@ DJOSER = { "username_reset_confirm": ["rest_framework.permissions.IsAdminUser"], "set_username": ["rest_framework.permissions.IsAdminUser"], "set_password": ["rest_framework.permissions.IsAdminUser"], - } + }, } SIMPLE_JWT = { diff --git a/src/core/templates/__init__.py b/src/core/templates/__init__.py index 96a1874..d29c0c1 100644 --- a/src/core/templates/__init__.py +++ b/src/core/templates/__init__.py @@ -1,4 +1,3 @@ -from django.utils import timezone from djoser import email diff --git a/src/tests/settings.py b/src/tests/settings.py index 0d3fdbf..17a38b4 100644 --- a/src/tests/settings.py +++ b/src/tests/settings.py @@ -4,7 +4,6 @@ Minimal Django settings file for tests from core.settings import * # noqa: F403 - # Override database to SQLite DATABASES = { "default": { diff --git a/src/tests/users/__init__.py b/src/tests/users/__init__.py index adaad59..6204a44 100644 --- a/src/tests/users/__init__.py +++ b/src/tests/users/__init__.py @@ -2,12 +2,12 @@ Post-migrate signal handlers for creating initial data for accounts app. """ -import os import json import logging +import os from accounts.models import CustomUser -from core.settings import config, TESTS_DIR +from core.settings import TESTS_DIR, config logger = logging.getLogger(__name__) diff --git a/src/tests/users/test_user_login_query_self.py b/src/tests/users/test_user_login_query_self.py index 1ea39bf..e9cf225 100644 --- a/src/tests/users/test_user_login_query_self.py +++ b/src/tests/users/test_user_login_query_self.py @@ -1,10 +1,9 @@ import pytest -from core.settings import config import users - - from rest_framework.test import APIClient +from core.settings import config + client = APIClient()