diff --git a/.github/workflows/ruff.yml b/.github/workflows/ruff.yml new file mode 100644 index 000000000..d42e3dcc3 --- /dev/null +++ b/.github/workflows/ruff.yml @@ -0,0 +1,18 @@ +name: ruff review +on: [pull_request] +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install ruff + # Update output format to enable automatic inline annotations. + - name: Run Ruff + run: ruff check --config .ruff.toml --exclude "test/functional/test-framework/**/*.py" --exclude "doc/*" --exclude "doc/*" --output-format=github . diff --git a/.pep8speaks.yml b/.pep8speaks.yml deleted file mode 100644 index 1ae916c07..000000000 --- a/.pep8speaks.yml +++ /dev/null @@ -1,13 +0,0 @@ -# File : .pep8speaks.yml - -scanner: - diff_only: True - linter: pycodestyle - -pycodestyle: - max-line-length: 100 - ignore: - - E402 # module level import not at top of file - - W503 # line break after binary operator - -no_blank_comment: True diff --git a/.ruff.toml b/.ruff.toml new file mode 100644 index 000000000..fd5ad8542 --- /dev/null +++ b/.ruff.toml @@ -0,0 +1,8 @@ +line-length = 100 + +[lint] +ignore = [ + "E402", # All module level imports should be at the top of the file. This means that there + # should be no statements in between module level imports + "F405", # Variable may be undefined, or defined from star imports +] diff --git a/test/functional/api/cas/casadm.py b/test/functional/api/cas/casadm.py index 9894bbc12..0fecccb52 100644 --- a/test/functional/api/cas/casadm.py +++ b/test/functional/api/cas/casadm.py @@ -16,7 +16,7 @@ PromotionPolicy, ) from api.cas.casadm_params import OutputFormat, StatsFilter -from api.cas.cli import * +from api.cas.cli import * # noqa: F403 from api.cas.core import Core from core.test_run import TestRun from storage_devices.device import Device diff --git a/test/functional/api/cas/casadm_parser.py b/test/functional/api/cas/casadm_parser.py index 178866b42..911ecb3ef 100644 --- a/test/functional/api/cas/casadm_parser.py +++ b/test/functional/api/cas/casadm_parser.py @@ -12,8 +12,8 @@ from typing import List from api.cas import casadm -from api.cas.cache_config import * -from api.cas.casadm_params import * +from api.cas.cache_config import * # noqa: F403 +from api.cas.casadm_params import * # noqa: F403 from api.cas.core_config import CoreStatus from api.cas.ioclass_config import IoClass from api.cas.version import CasVersion diff --git a/test/functional/api/cas/casctl.py b/test/functional/api/cas/casctl.py index 868bfbd1c..6c51bc61a 100644 --- a/test/functional/api/cas/casctl.py +++ b/test/functional/api/cas/casctl.py @@ -1,9 +1,10 @@ # # Copyright(c) 2019-2021 Intel Corporation +# Copyright(c) 2025 Huawei Technologies Co., Ltd. # SPDX-License-Identifier: BSD-3-Clause # -from .cli import * +from .cli import * # noqa: F403 from core.test_run import TestRun diff --git a/test/functional/tests/cli/test_cli_help.py b/test/functional/tests/cli/test_cli_help.py index a0d4dbf6b..7a231ac1b 100644 --- a/test/functional/tests/cli/test_cli_help.py +++ b/test/functional/tests/cli/test_cli_help.py @@ -6,7 +6,7 @@ import pytest -from api.cas.cli_help_messages import * +from api.cas.cli_help_messages import * # noqa: F403 from api.cas.cli_messages import check_stderr_msg, check_stdout_msg from core.test_run import TestRun diff --git a/test/functional/tests/fault_injection/test_fault_injection_standby.py b/test/functional/tests/fault_injection/test_fault_injection_standby.py index 908ca1672..a57c625d3 100644 --- a/test/functional/tests/fault_injection/test_fault_injection_standby.py +++ b/test/functional/tests/fault_injection/test_fault_injection_standby.py @@ -13,7 +13,6 @@ from type_def.size import Size, Unit from api.cas.cache_config import CacheLineSize, CacheMode from api.cas.cli import standby_activate_cmd, standby_load_cmd -from api.cas.dmesg import get_md_section_size from test_tools.dd import Dd from test_tools.os_tools import sync from test_utils.filesystem.file import File diff --git a/test/functional/tests/io_class/test_io_class_eviction_priority.py b/test/functional/tests/io_class/test_io_class_eviction_priority.py index bafb738e2..35be43b59 100644 --- a/test/functional/tests/io_class/test_io_class_eviction_priority.py +++ b/test/functional/tests/io_class/test_io_class_eviction_priority.py @@ -11,7 +11,7 @@ from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan from test_tools.fs_tools import Filesystem, create_directory -from .io_class_common import * +from .io_class_common import * # noqa: F403 @pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand])) diff --git a/test/functional/tests/security/fuzzy/kernel/fuzzy_with_io/fuzzy_set_param/test_fuzzy_set_param_cleaning_alru_dirty_ratio_inertia.py b/test/functional/tests/security/fuzzy/kernel/fuzzy_with_io/fuzzy_set_param/test_fuzzy_set_param_cleaning_alru_dirty_ratio_inertia.py index a24ae0314..9c7fdfe03 100644 --- a/test/functional/tests/security/fuzzy/kernel/fuzzy_with_io/fuzzy_set_param/test_fuzzy_set_param_cleaning_alru_dirty_ratio_inertia.py +++ b/test/functional/tests/security/fuzzy/kernel/fuzzy_with_io/fuzzy_set_param/test_fuzzy_set_param_cleaning_alru_dirty_ratio_inertia.py @@ -27,7 +27,6 @@ get_basic_workload, mount_point, ) -from type_def.size import Unit dirty_ratio_inertia_min, dirty_ratio_inertia_max = FlushParametersAlru.alru_params_range().dirty_ratio_inertia diff --git a/test/functional/tests/volumes/test_many_lvms_on_single_core.py b/test/functional/tests/volumes/test_many_lvms_on_single_core.py index 3b24b96c9..242f779a0 100644 --- a/test/functional/tests/volumes/test_many_lvms_on_single_core.py +++ b/test/functional/tests/volumes/test_many_lvms_on_single_core.py @@ -31,7 +31,7 @@ def test_many_lvms_on_single_core(update_initramfs_before_and_after_test): - FIO with verification ran successfully. - Configuration after reboot match configuration before. """ - with TestRun.step(f"Create CAS device."): + with TestRun.step("Create CAS device."): cache_dev = TestRun.disks['cache'] core_dev = TestRun.disks['core'] cache_dev.create_partitions([Size(8, Unit.GibiByte)])