Move to ruff, its faster & catches more

This commit is contained in:
Timothy Hobbs 2023-11-14 20:07:25 +01:00
parent d09c35a881
commit 6cd5522099
14 changed files with 15 additions and 51 deletions

View File

@ -28,21 +28,10 @@ jobs:
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install -r requirements.txt -r requirements-testing.txt -c constraints-Django${{ matrix.django-version }}.txt pip install -r requirements.txt -r requirements-testing.txt -c constraints-Django${{ matrix.django-version }}.txt
- name: Format style check with 'autopep8' - name: Lint with ruff
run: | run: |
pip install autopep8 pip install ruff
autopep8 --exit-code --global-config .flake8 helpdesk ruff helpdesk
- name: Lint with 'flake8'
run: |
pip install flake8
# stop the build if there are Python syntax errors or undefined names
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 helpdesk --count --show-source --statistics --exit-zero --max-complexity=20
- name: Sort style check with 'isort'
run: |
isort --line-length=120 --src helpdesk . --check
- name: Test with pytest - name: Test with pytest
run: | run: |

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.db import models, migrations from django.db import migrations
from helpdesk.settings import DEFAULT_USER_SETTINGS from helpdesk.settings import DEFAULT_USER_SETTINGS

View File

@ -1,8 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import os import os
from sys import path
from django.db import models, migrations from django.db import migrations
from django.core import serializers from django.core import serializers
fixture_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../fixtures')) fixture_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../fixtures'))

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.db import models, migrations from django.db import migrations
class Migration(migrations.Migration): class Migration(migrations.Migration):

View File

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from helpdesk.models import Queue, Ticket, UserSettings from helpdesk.models import Queue, Ticket
import sys import sys

View File

@ -2,7 +2,7 @@
from django.test import TestCase from django.test import TestCase
from django.urls import reverse from django.urls import reverse
from helpdesk.models import KBCategory, KBItem, Queue, Ticket from helpdesk.models import KBCategory, KBItem, Queue, Ticket
from helpdesk.tests.helpers import create_ticket, get_staff_user, print_response, reload_urlconf, User from helpdesk.tests.helpers import get_staff_user
class KBTests(TestCase): class KBTests(TestCase):

View File

@ -6,7 +6,7 @@ from django.test.utils import override_settings
from django.urls import reverse from django.urls import reverse
from helpdesk import settings as helpdesk_settings from helpdesk import settings as helpdesk_settings
from helpdesk.models import Queue from helpdesk.models import Queue
from helpdesk.tests.helpers import create_ticket, get_staff_user, print_response, reload_urlconf, User from helpdesk.tests.helpers import create_ticket, get_staff_user, reload_urlconf, User
from importlib import reload from importlib import reload
import sys import sys
@ -109,7 +109,6 @@ class StaffUsersOnlyTestCase(StaffUserTestCaseMixin, TestCase):
"""When HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE is False, """When HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE is False,
staff users should be able to access the dashboard. staff users should be able to access the dashboard.
""" """
from helpdesk.decorators import is_helpdesk_staff
user = get_staff_user() user = get_staff_user()
self.client.login(username=user.username, password='password') self.client.login(username=user.username, password='password')
@ -120,8 +119,6 @@ class StaffUsersOnlyTestCase(StaffUserTestCaseMixin, TestCase):
"""When HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE is False, """When HELPDESK_ALLOW_NON_STAFF_TICKET_UPDATE is False,
non-staff users should not be able to access the dashboard. non-staff users should not be able to access the dashboard.
""" """
from helpdesk.decorators import is_helpdesk_staff
user = self.non_staff_user user = self.non_staff_user
self.client.login(username=user.username, self.client.login(username=user.username,
password=self.non_staff_user_password) password=self.non_staff_user_password)

View File

@ -3,7 +3,7 @@ from django.test import TestCase
from django.urls import reverse from django.urls import reverse
from helpdesk.models import KBCategory, KBItem, Queue, Ticket from helpdesk.models import KBCategory, KBItem, Queue, Ticket
from helpdesk.query import query_to_base64 from helpdesk.query import query_to_base64
from helpdesk.tests.helpers import create_ticket, get_staff_user, print_response, reload_urlconf, User from helpdesk.tests.helpers import get_staff_user
class QueryTests(TestCase): class QueryTests(TestCase):

View File

@ -1,25 +1,12 @@
import datetime import datetime
from django.contrib.auth import get_user_model
from django.contrib.auth.hashers import make_password from django.contrib.auth.hashers import make_password
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib.sites.models import Site
from django.core import mail
from django.test import TestCase from django.test import TestCase
from django.test.client import Client from django.test.client import Client
from django.urls import reverse
from helpdesk import settings as helpdesk_settings
from helpdesk.models import FollowUp, Queue, Ticket from helpdesk.models import FollowUp, Queue, Ticket
from helpdesk.templatetags.ticket_to_link import num_to_link
import uuid import uuid
try: # python 3
from urllib.parse import urlparse
except ImportError: # python 2
from urlparse import urlparse
class TimeSpentTestCase(TestCase): class TimeSpentTestCase(TestCase):
def setUp(self): def setUp(self):

View File

@ -1,15 +1,6 @@
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.core import mail
from django.test import TestCase from django.test import TestCase
from django.test.client import Client
from django.urls import reverse from django.urls import reverse
from helpdesk.models import CustomField, Queue, Ticket
try: # python 3
from urllib.parse import urlparse
except ImportError: # python 2
from urlparse import urlparse
class TicketActionsTestCase(TestCase): class TicketActionsTestCase(TestCase):

View File

@ -28,7 +28,7 @@ def validate_file_extension(value):
valid_extensions = ['.txt', '.asc', '.htm', '.html', valid_extensions = ['.txt', '.asc', '.htm', '.html',
'.pdf', '.doc', '.docx', '.odt', '.jpg', '.png', '.eml'] '.pdf', '.doc', '.docx', '.odt', '.jpg', '.png', '.eml']
if not ext.lower() in valid_extensions: if ext.lower() not in valid_extensions:
# TODO: one more check in case it is a file with no extension; we # TODO: one more check in case it is a file with no extension; we
# should always allow that? # should always allow that?
if not (ext.lower() == '' or ext.lower() == '.'): if not (ext.lower() == '' or ext.lower() == '.'):

View File

@ -1340,7 +1340,7 @@ def ticket_list(request):
('kbitem', 'kbitem__isnull'), ('kbitem', 'kbitem__isnull'),
]) ])
for param, filter_command in filter_in_params: for param, filter_command in filter_in_params:
if not request.GET.get(param) is None: if request.GET.get(param) is not None:
patterns = request.GET.getlist(param) patterns = request.GET.getlist(param)
try: try:
pattern_pks = [int(pattern) for pattern in patterns] pattern_pks = [int(pattern) for pattern in patterns]

2
pyproject.toml Normal file
View File

@ -0,0 +1,2 @@
[tool.ruff]
ignore = ["E501", "E731", "F841", "E721"]

View File

@ -1,6 +1,5 @@
tox tox
autopep8 ruff
flake8
pycodestyle pycodestyle
isort isort
freezegun freezegun