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:
Jonas L 2021-10-17 16:24:37 +02:00 committed by GitHub
parent ada4c72e87
commit 30b3470a06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 50 additions and 22 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,4 +1,5 @@
import pytest
from airtime_analyzer.analyzer import Analyzer

View File

@ -1,5 +1,6 @@
import distro
import pytest
from airtime_analyzer.cuepoint_analyzer import CuePointAnalyzer
from .fixtures import FILE_INVALID_DRM, FILES, Fixture

View File

@ -5,6 +5,7 @@ import time
from unittest import mock
import pytest
from airtime_analyzer.filemover_analyzer import FileMoverAnalyzer
from .conftest import AUDIO_FILENAME

View File

@ -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

View File

@ -1,5 +1,6 @@
import distro
import pytest
from airtime_analyzer.playability_analyzer import (
PlayabilityAnalyzer,
UnplayableFileError,

View File

@ -1,4 +1,5 @@
import pytest
from airtime_analyzer.replaygain_analyzer import ReplayGainAnalyzer
from .fixtures import FILE_INVALID_DRM, FILES, Fixture

View File

@ -7,5 +7,5 @@ PYLINT_ARG := libretimeapi
MYPY_ARG := libretimeapi
format: .format
lint: .pylint .mypy
lint: .format-check .pylint .mypy
clean: .clean

View File

@ -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

View File

@ -1,6 +1,7 @@
from datetime import datetime, timedelta
from django.test import TestCase
from libretimeapi.models import Schedule, ShowInstance

View File

@ -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):

View File

@ -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):

View File

@ -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

View File

@ -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

View File

@ -1,4 +1,5 @@
import pytest
from api_clients.utils import ApcUrl, IncompleteUrl, UrlBadParam

View File

@ -1,4 +1,5 @@
import pytest
from api_clients.utils import RequestProvider
from api_clients.version1 import api_config

View File

@ -2,6 +2,7 @@ import datetime
from configparser import ConfigParser
import pytest
from api_clients import utils

View File

@ -1,4 +1,5 @@
import pytest
from api_clients.utils import RequestProvider
from api_clients.version2 import AirtimeApiClient, api_config

View File

@ -7,5 +7,5 @@ PYLINT_ARG := liquidsoap pypo
MYPY_ARG := liquidsoap pypo
format: .format
lint: .pylint .mypy
lint: .format-check .pylint .mypy
clean: .clean

View File

@ -8,6 +8,6 @@ MYPY_ARG = .
PYTEST_ARG = .
format: .format
lint: .pylint .mypy
lint: .format-check .pylint .mypy
test: .pytest
clean: .clean

View File

@ -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)

View File

@ -7,5 +7,5 @@ PYLINT_ARG := airtime-celery
MYPY_ARG := airtime-celery
format: .format
lint: .pylint .mypy
lint: .format-check .pylint .mypy
clean: .clean