Better format enforcing (#1391)
* Add shared python format-check target * Add .format-check to api lint target * Format api code with makefile format target * Add .format-check to tools lint target * Add .format-check to analyzer lint target * Format analyzer code with makefile format target * Add .format-check to celery lint target * Add .format-check to api_client lint target * Format api_client code with makefile format target * Add .format-check to playout lint target * Run CI linting in parallel * Disable isort in pre-commit
This commit is contained in:
parent
ada4c72e87
commit
30b3470a06
|
@ -106,6 +106,16 @@ jobs:
|
|||
# into 'test' when the entire matrix succeeds.
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
context:
|
||||
- analyzer
|
||||
- api
|
||||
- api_client
|
||||
- playout
|
||||
- worker
|
||||
|
||||
container: ghcr.io/libretime/libretime-dev:buster
|
||||
defaults:
|
||||
run:
|
||||
|
@ -124,12 +134,8 @@ jobs:
|
|||
echo "::add-matcher::.github/annotations/pylint.json"
|
||||
|
||||
- name: Lint
|
||||
run: |
|
||||
make -C api lint
|
||||
make -C analyzer lint
|
||||
make -C worker lint
|
||||
make -C api_client lint
|
||||
make -C playout lint
|
||||
run: make lint
|
||||
working-directory: ${{ matrix.context }}
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
|
@ -39,11 +39,11 @@ repos:
|
|||
hooks:
|
||||
- id: black
|
||||
|
||||
- repo: https://github.com/pycqa/isort
|
||||
rev: 5.9.3
|
||||
hooks:
|
||||
- id: isort
|
||||
args: ["--profile", "black", "--filter-files"]
|
||||
# - repo: https://github.com/pycqa/isort
|
||||
# rev: 5.9.3
|
||||
# hooks:
|
||||
# - id: isort
|
||||
# args: ["--profile", "black", "--filter-files"]
|
||||
|
||||
- repo: https://github.com/codespell-project/codespell
|
||||
rev: v2.1.0
|
||||
|
|
|
@ -8,7 +8,7 @@ MYPY_ARG := airtime_analyzer tests
|
|||
PYTEST_ARG := --cov=airtime_analyzer tests
|
||||
|
||||
format: .format
|
||||
lint: .pylint .mypy
|
||||
lint: .format-check .pylint .mypy
|
||||
|
||||
fixtures:
|
||||
bash tests/fixtures/generate.sh
|
||||
|
|
|
@ -4,6 +4,7 @@ import shutil
|
|||
from queue import Queue
|
||||
|
||||
import pytest
|
||||
|
||||
from airtime_analyzer.analyzer_pipeline import AnalyzerPipeline
|
||||
|
||||
from .conftest import AUDIO_FILENAME, AUDIO_IMPORT_DEST
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import pytest
|
||||
|
||||
from airtime_analyzer.analyzer import Analyzer
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import distro
|
||||
import pytest
|
||||
|
||||
from airtime_analyzer.cuepoint_analyzer import CuePointAnalyzer
|
||||
|
||||
from .fixtures import FILE_INVALID_DRM, FILES, Fixture
|
||||
|
|
|
@ -5,6 +5,7 @@ import time
|
|||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
|
||||
from airtime_analyzer.filemover_analyzer import FileMoverAnalyzer
|
||||
|
||||
from .conftest import AUDIO_FILENAME
|
||||
|
|
|
@ -3,6 +3,7 @@ from unittest import mock
|
|||
|
||||
import mutagen
|
||||
import pytest
|
||||
|
||||
from airtime_analyzer.metadata_analyzer import MetadataAnalyzer
|
||||
|
||||
from .fixtures import FILE_INVALID_DRM, FILE_INVALID_TXT, FILES_TAGGED, FixtureMeta
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import distro
|
||||
import pytest
|
||||
|
||||
from airtime_analyzer.playability_analyzer import (
|
||||
PlayabilityAnalyzer,
|
||||
UnplayableFileError,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import pytest
|
||||
|
||||
from airtime_analyzer.replaygain_analyzer import ReplayGainAnalyzer
|
||||
|
||||
from .fixtures import FILE_INVALID_DRM, FILES, Fixture
|
||||
|
|
|
@ -7,5 +7,5 @@ PYLINT_ARG := libretimeapi
|
|||
MYPY_ARG := libretimeapi
|
||||
|
||||
format: .format
|
||||
lint: .pylint .mypy
|
||||
lint: .format-check .pylint .mypy
|
||||
clean: .clean
|
||||
|
|
|
@ -4,6 +4,7 @@ from django.contrib import auth
|
|||
from django.contrib.auth.models import AbstractBaseUser, Permission
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.db import models
|
||||
|
||||
from libretimeapi.managers import UserManager
|
||||
from libretimeapi.permission_constants import GROUPS
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from datetime import datetime, timedelta
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from libretimeapi.models import Schedule, ShowInstance
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
from django.apps import apps
|
||||
from django.contrib.auth.models import Group
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
from libretimeapi.models import User
|
||||
from libretimeapi.models.user_constants import DJ, GUEST
|
||||
from libretimeapi.permission_constants import GROUPS
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
|
||||
class TestUserManager(APITestCase):
|
||||
|
|
|
@ -3,6 +3,9 @@ import os
|
|||
from django.conf import settings
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from model_bakery import baker
|
||||
from rest_framework.test import APIRequestFactory, APITestCase
|
||||
|
||||
from libretimeapi.models.user_constants import ADMIN, DJ, GUEST, PROGRAM_MANAGER
|
||||
from libretimeapi.permission_constants import (
|
||||
DJ_PERMISSIONS,
|
||||
|
@ -10,8 +13,6 @@ from libretimeapi.permission_constants import (
|
|||
PROGRAM_MANAGER_PERMISSIONS,
|
||||
)
|
||||
from libretimeapi.permissions import IsSystemTokenOrUser
|
||||
from model_bakery import baker
|
||||
from rest_framework.test import APIRequestFactory, APITestCase
|
||||
|
||||
|
||||
class TestIsSystemTokenOrUser(APITestCase):
|
||||
|
|
|
@ -4,10 +4,11 @@ from datetime import datetime, timedelta, timezone
|
|||
from django.conf import settings
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.utils import dateparse
|
||||
from libretimeapi.views import FileViewSet
|
||||
from model_bakery import baker
|
||||
from rest_framework.test import APIRequestFactory, APITestCase
|
||||
|
||||
from libretimeapi.views import FileViewSet
|
||||
|
||||
|
||||
class TestFileViewSet(APITestCase):
|
||||
@classmethod
|
||||
|
|
|
@ -8,6 +8,6 @@ MYPY_ARG := api_clients tests
|
|||
PYTEST_ARG := --cov=api_clients tests
|
||||
|
||||
format: .format
|
||||
lint: .pylint .mypy
|
||||
lint: .format-check .pylint .mypy
|
||||
test: .pytest
|
||||
clean: .clean
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import pytest
|
||||
|
||||
from api_clients.utils import ApcUrl, IncompleteUrl, UrlBadParam
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import pytest
|
||||
|
||||
from api_clients.utils import RequestProvider
|
||||
from api_clients.version1 import api_config
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ import datetime
|
|||
from configparser import ConfigParser
|
||||
|
||||
import pytest
|
||||
|
||||
from api_clients import utils
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import pytest
|
||||
|
||||
from api_clients.utils import RequestProvider
|
||||
from api_clients.version2 import AirtimeApiClient, api_config
|
||||
|
||||
|
|
|
@ -7,5 +7,5 @@ PYLINT_ARG := liquidsoap pypo
|
|||
MYPY_ARG := liquidsoap pypo
|
||||
|
||||
format: .format
|
||||
lint: .pylint .mypy
|
||||
lint: .format-check .pylint .mypy
|
||||
clean: .clean
|
||||
|
|
|
@ -8,6 +8,6 @@ MYPY_ARG = .
|
|||
PYTEST_ARG = .
|
||||
|
||||
format: .format
|
||||
lint: .pylint .mypy
|
||||
lint: .format-check .pylint .mypy
|
||||
test: .pytest
|
||||
clean: .clean
|
||||
|
|
|
@ -32,7 +32,13 @@ install: venv
|
|||
.format: $(VENV)
|
||||
source $(VENV)/bin/activate
|
||||
black .
|
||||
isort --profile black .
|
||||
isort . --profile black
|
||||
|
||||
.PHONY: .format-check
|
||||
.format-check: $(VENV)
|
||||
source $(VENV)/bin/activate
|
||||
black . --check
|
||||
isort . --profile black --check
|
||||
|
||||
.PHONY: .pylint
|
||||
.pylint: $(VENV)
|
||||
|
|
|
@ -7,5 +7,5 @@ PYLINT_ARG := airtime-celery
|
|||
MYPY_ARG := airtime-celery
|
||||
|
||||
format: .format
|
||||
lint: .pylint .mypy
|
||||
lint: .format-check .pylint .mypy
|
||||
clean: .clean
|
||||
|
|
Loading…
Reference in New Issue