From 7429f1e146e2df59d3b4cd4c0942cb4ec48e1931 Mon Sep 17 00:00:00 2001 From: Spencer Schrock Date: Mon, 12 Aug 2024 16:36:57 -0700 Subject: [PATCH] enable flake8-pytest-style linter (#281) * enable flake8-pytest-style linter Signed-off-by: Spencer Schrock * fix broad exception matching Signed-off-by: Spencer Schrock --------- Signed-off-by: Spencer Schrock --- .github/workflows/lint.yml | 4 ++-- model_signing/conftest.py | 5 ++++- model_signing/pyproject.toml | 5 ++++- .../serialization/serialize_by_file_shard_test.py | 8 ++++++-- model_signing/serialization/serialize_by_file_test.py | 8 ++++++-- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index de38010a..37f2a52c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -66,7 +66,7 @@ jobs: pip install -r model_signing/install/requirements_test_Linux.txt pip install -r model_signing/install/requirements_dev_Linux.txt # TODO: https://github.com/sigstore/model-transparency/issues/231 - Support all repo - pytype --keep-going model_signing/{hashing,manifest,serialization,signature,signing} + pytype --keep-going model_signing/{conftest.py,hashing,manifest,serialization,signature,signing} ruff-lint: runs-on: ubuntu-latest @@ -86,4 +86,4 @@ jobs: pip install -r model_signing/install/requirements_test_Linux.txt pip install -r model_signing/install/requirements_dev_Linux.txt # TODO: https://github.com/sigstore/model-transparency/issues/231 - Support all repo - ruff check model_signing/{hashing,manifest,serialization,signature,signing} + ruff check model_signing/{conftest.py,hashing,manifest,serialization,signature,signing} diff --git a/model_signing/conftest.py b/model_signing/conftest.py index 6fb1a428..5ec64035 100644 --- a/model_signing/conftest.py +++ b/model_signing/conftest.py @@ -16,6 +16,7 @@ import os import pathlib + import pytest from model_signing import test_support @@ -106,7 +107,9 @@ def deep_model_folder(tmp_path_factory): return model_root @pytest.fixture -def symlink_model_folder(tmp_path_factory: pytest.TempPathFactory) -> pathlib.Path: +def symlink_model_folder( + tmp_path_factory: pytest.TempPathFactory +) -> pathlib.Path: """A model folder with a symlink to an external file.""" external_file = tmp_path_factory.mktemp("external") / "file" external_file.write_bytes(test_support.KNOWN_MODEL_TEXT) diff --git a/model_signing/pyproject.toml b/model_signing/pyproject.toml index ba480705..94150345 100644 --- a/model_signing/pyproject.toml +++ b/model_signing/pyproject.toml @@ -3,9 +3,12 @@ line-length = 80 target-version = "py311" [tool.ruff.lint] -select = ["B", "E", "F", "I", "N", "PLC", "PLE", "SIM", "W"] +select = ["B", "E", "F", "I", "N", "PLC", "PLE", "PT", "SIM", "W"] ignore = ["B024"] +[tool.ruff.lint.flake8-pytest-style] +fixture-parentheses = false + [tool.ruff.lint.isort] force-single-line = true force-sort-within-sections = true diff --git a/model_signing/serialization/serialize_by_file_shard_test.py b/model_signing/serialization/serialize_by_file_shard_test.py index 26695fa2..ef0ee6e7 100644 --- a/model_signing/serialization/serialize_by_file_shard_test.py +++ b/model_signing/serialization/serialize_by_file_shard_test.py @@ -306,7 +306,9 @@ def test_symlinks_disallowed_by_default(self, symlink_model_folder): serializer = serialize_by_file_shard.DigestSerializer( self._hasher_factory, memory.SHA256() ) - with pytest.raises(ValueError): + with pytest.raises( + ValueError, match="Cannot use '.+' because it is a symlink." + ): _ = serializer.serialize(symlink_model_folder) def test_ignore_list_respects_directories(self, sample_model_folder): @@ -679,7 +681,9 @@ def test_symlinks_disallowed_by_default(self, symlink_model_folder): serializer = serialize_by_file_shard.ManifestSerializer( self._hasher_factory ) - with pytest.raises(ValueError): + with pytest.raises( + ValueError, match="Cannot use '.+' because it is a symlink." + ): _ = serializer.serialize(symlink_model_folder) def test_shard_to_string(self): diff --git a/model_signing/serialization/serialize_by_file_test.py b/model_signing/serialization/serialize_by_file_test.py index 44b1afa5..299eaf9f 100644 --- a/model_signing/serialization/serialize_by_file_test.py +++ b/model_signing/serialization/serialize_by_file_test.py @@ -283,7 +283,9 @@ def test_symlinks_disallowed_by_default(self, symlink_model_folder): serializer = serialize_by_file.DigestSerializer( file_hasher, memory.SHA256 ) - with pytest.raises(ValueError): + with pytest.raises( + ValueError, match="Cannot use '.+' because it is a symlink." + ): _ = serializer.serialize(symlink_model_folder) def test_ignore_list_respects_directories(self, sample_model_folder): @@ -565,7 +567,9 @@ def test_max_workers_does_not_change_digest(self, sample_model_folder): def test_symlinks_disallowed_by_default(self, symlink_model_folder): serializer = serialize_by_file.ManifestSerializer(self._hasher_factory) - with pytest.raises(ValueError): + with pytest.raises( + ValueError, match="Cannot use '.+' because it is a symlink." + ): _ = serializer.serialize(symlink_model_folder) def test_ignore_list_respects_directories(self, sample_model_folder):