From 4b6b749a5d5bf42352392d8108b767ca4ea058ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 05:52:44 +0000 Subject: [PATCH 1/2] Bump ruff from 0.5.7 to 0.6.0 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.7 to 0.6.0. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.5.7...0.6.0) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 552551da6..2c365e733 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -78,7 +78,7 @@ optional-dependencies.dev = [ "python-dotenv==1.0.1", "pyyaml==6.0.2", "requests-mock-flask==2023.5.14", - "ruff==0.5.7", + "ruff==0.6.0", "sphinx==7.4.7", "sphinx-copybutton==0.5.2", "sphinx-paramlinks==0.6", From cfa6dcb62a0b546c4ba5d1e9ffb01212df02f1ed Mon Sep 17 00:00:00 2001 From: Adam Dangoor Date: Fri, 16 Aug 2024 07:10:17 +0100 Subject: [PATCH 2/2] Address ruff issues --- tests/conftest.py | 7 +++--- tests/mock_vws/fixtures/credentials.py | 7 +++--- tests/mock_vws/fixtures/prepared_requests.py | 23 ++++++++++---------- tests/mock_vws/fixtures/vuforia_backends.py | 12 +++++----- tests/mock_vws/test_add_target.py | 5 +++-- tests/mock_vws/test_authorization_header.py | 3 +-- tests/mock_vws/test_content_length.py | 2 +- tests/mock_vws/test_database_summary.py | 5 +++-- tests/mock_vws/test_date_header.py | 2 +- tests/mock_vws/test_delete_target.py | 2 +- tests/mock_vws/test_docker.py | 5 +++-- tests/mock_vws/test_flask_app_usage.py | 8 +++---- tests/mock_vws/test_invalid_given_id.py | 2 +- tests/mock_vws/test_invalid_json.py | 2 +- tests/mock_vws/test_query.py | 3 ++- tests/mock_vws/test_requests_mock_usage.py | 8 +++---- tests/mock_vws/test_target_raters.py | 1 + tests/mock_vws/test_target_summary.py | 3 ++- tests/mock_vws/test_update_target.py | 5 +++-- tests/mock_vws/utils/__init__.py | 3 ++- tests/mock_vws/utils/assertions.py | 3 ++- 21 files changed, 60 insertions(+), 51 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index e318f5664..7b7123f1a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -16,7 +16,6 @@ import io from mock_vws.database import VuforiaDatabase - from tests.mock_vws.utils import Endpoint pytest_plugins = [ @@ -37,7 +36,7 @@ def fixture_vws_client(vuforia_database: VuforiaDatabase) -> VWS: ) -@pytest.fixture() +@pytest.fixture def cloud_reco_client(vuforia_database: VuforiaDatabase) -> CloudRecoService: """ A query client for an active VWS database. @@ -59,7 +58,7 @@ def fixture_inactive_vws_client(inactive_database: VuforiaDatabase) -> VWS: ) -@pytest.fixture() +@pytest.fixture def inactive_cloud_reco_client( inactive_database: VuforiaDatabase, ) -> CloudRecoService: @@ -72,7 +71,7 @@ def inactive_cloud_reco_client( ) -@pytest.fixture() +@pytest.fixture def target_id( image_file_success_state_low_rating: io.BytesIO, vws_client: VWS, diff --git a/tests/mock_vws/fixtures/credentials.py b/tests/mock_vws/fixtures/credentials.py index dfa5c86c6..06e9485bb 100644 --- a/tests/mock_vws/fixtures/credentials.py +++ b/tests/mock_vws/fixtures/credentials.py @@ -5,9 +5,10 @@ from pathlib import Path import pytest +from pydantic_settings import BaseSettings, SettingsConfigDict + from mock_vws.database import VuforiaDatabase from mock_vws.states import States -from pydantic_settings import BaseSettings, SettingsConfigDict class _VuforiaDatabaseSettings(BaseSettings): @@ -36,7 +37,7 @@ class _InactiveVuforiaDatabaseSettings(_VuforiaDatabaseSettings): ) -@pytest.fixture() +@pytest.fixture def vuforia_database() -> VuforiaDatabase: """ Return VWS credentials from environment variables. @@ -52,7 +53,7 @@ def vuforia_database() -> VuforiaDatabase: ) -@pytest.fixture() +@pytest.fixture def inactive_database() -> VuforiaDatabase: """ Return VWS credentials for an inactive project from environment variables. diff --git a/tests/mock_vws/fixtures/prepared_requests.py b/tests/mock_vws/fixtures/prepared_requests.py index 4261fe54a..301c98acf 100644 --- a/tests/mock_vws/fixtures/prepared_requests.py +++ b/tests/mock_vws/fixtures/prepared_requests.py @@ -12,19 +12,20 @@ import pytest import requests -from mock_vws._constants import ResultCodes from urllib3.filepost import encode_multipart_formdata from vws_auth_tools import authorization_header, rfc_1123_date +from mock_vws._constants import ResultCodes from tests.mock_vws.utils import Endpoint from tests.mock_vws.utils.retries import RETRY_ON_TOO_MANY_REQUESTS if TYPE_CHECKING: import io - from mock_vws.database import VuforiaDatabase from vws import VWS + from mock_vws.database import VuforiaDatabase + VWS_HOST = "https://vws.vuforia.com" VWQ_HOST = "https://cloudreco.vuforia.com" @@ -42,7 +43,7 @@ def _wait_for_target_processed(vws_client: VWS, target_id: str) -> None: vws_client.wait_for_target_processed(target_id=target_id) -@pytest.fixture() +@pytest.fixture def add_target( vuforia_database: VuforiaDatabase, image_file_failed_state: io.BytesIO, @@ -100,7 +101,7 @@ def add_target( ) -@pytest.fixture() +@pytest.fixture def delete_target( vuforia_database: VuforiaDatabase, target_id: str, @@ -149,7 +150,7 @@ def delete_target( ) -@pytest.fixture() +@pytest.fixture def database_summary(vuforia_database: VuforiaDatabase) -> Endpoint: """ Return details of the endpoint for getting details about the database. @@ -195,7 +196,7 @@ def database_summary(vuforia_database: VuforiaDatabase) -> Endpoint: ) -@pytest.fixture() +@pytest.fixture def get_duplicates( vuforia_database: VuforiaDatabase, target_id: str, @@ -247,7 +248,7 @@ def get_duplicates( ) -@pytest.fixture() +@pytest.fixture def get_target( vuforia_database: VuforiaDatabase, target_id: str, @@ -298,7 +299,7 @@ def get_target( ) -@pytest.fixture() +@pytest.fixture def target_list(vuforia_database: VuforiaDatabase) -> Endpoint: """ Return details of the endpoint for getting a list of targets. @@ -344,7 +345,7 @@ def target_list(vuforia_database: VuforiaDatabase) -> Endpoint: ) -@pytest.fixture() +@pytest.fixture def target_summary( vuforia_database: VuforiaDatabase, target_id: str, @@ -395,7 +396,7 @@ def target_summary( ) -@pytest.fixture() +@pytest.fixture def update_target( vuforia_database: VuforiaDatabase, target_id: str, @@ -449,7 +450,7 @@ def update_target( ) -@pytest.fixture() +@pytest.fixture def query( vuforia_database: VuforiaDatabase, high_quality_image: io.BytesIO, diff --git a/tests/mock_vws/fixtures/vuforia_backends.py b/tests/mock_vws/fixtures/vuforia_backends.py index 94e769460..84ba033d4 100644 --- a/tests/mock_vws/fixtures/vuforia_backends.py +++ b/tests/mock_vws/fixtures/vuforia_backends.py @@ -12,18 +12,18 @@ import pytest import requests import requests_mock -from mock_vws import MockVWS -from mock_vws._flask_server.target_manager import TARGET_MANAGER_FLASK_APP -from mock_vws._flask_server.vwq import CLOUDRECO_FLASK_APP -from mock_vws._flask_server.vws import VWS_FLASK_APP -from mock_vws.database import VuforiaDatabase -from mock_vws.states import States from requests_mock_flask import add_flask_app_to_mock from vws import VWS from vws.exceptions.vws_exceptions import ( TargetStatusNotSuccess, ) +from mock_vws import MockVWS +from mock_vws._flask_server.target_manager import TARGET_MANAGER_FLASK_APP +from mock_vws._flask_server.vwq import CLOUDRECO_FLASK_APP +from mock_vws._flask_server.vws import VWS_FLASK_APP +from mock_vws.database import VuforiaDatabase +from mock_vws.states import States from tests.mock_vws.utils.retries import RETRY_ON_TOO_MANY_REQUESTS if TYPE_CHECKING: diff --git a/tests/mock_vws/test_add_target.py b/tests/mock_vws/test_add_target.py index e7ded5227..3f549f013 100644 --- a/tests/mock_vws/test_add_target.py +++ b/tests/mock_vws/test_add_target.py @@ -15,7 +15,6 @@ import pytest import requests from dirty_equals import IsInstance -from mock_vws._constants import ResultCodes from requests.structures import CaseInsensitiveDict from vws.exceptions.custom_exceptions import OopsAnErrorOccurredPossiblyBadName from vws.exceptions.vws_exceptions import ( @@ -28,6 +27,7 @@ ) from vws_auth_tools import authorization_header, rfc_1123_date +from mock_vws._constants import ResultCodes from tests.mock_vws.utils import make_image_file from tests.mock_vws.utils.assertions import ( assert_valid_date_header, @@ -37,10 +37,11 @@ from tests.mock_vws.utils.too_many_requests import handle_server_errors if TYPE_CHECKING: - from mock_vws.database import VuforiaDatabase from vws import VWS from vws.exceptions.response import Response + from mock_vws.database import VuforiaDatabase + _MAX_METADATA_BYTES: Final[int] = 1024 * 1024 - 1 diff --git a/tests/mock_vws/test_authorization_header.py b/tests/mock_vws/test_authorization_header.py index da17e64a5..e5ba70c94 100644 --- a/tests/mock_vws/test_authorization_header.py +++ b/tests/mock_vws/test_authorization_header.py @@ -12,12 +12,12 @@ import pytest import requests -from mock_vws._constants import ResultCodes from vws import VWS, CloudRecoService from vws.exceptions import cloud_reco_exceptions from vws.exceptions.vws_exceptions import AuthenticationFailure, Fail from vws_auth_tools import rfc_1123_date +from mock_vws._constants import ResultCodes from tests.mock_vws.utils.assertions import ( assert_valid_transaction_id, assert_vwq_failure, @@ -29,7 +29,6 @@ import io from mock_vws.database import VuforiaDatabase - from tests.mock_vws.utils import Endpoint diff --git a/tests/mock_vws/test_content_length.py b/tests/mock_vws/test_content_length.py index 733f3cbde..1c09f606c 100644 --- a/tests/mock_vws/test_content_length.py +++ b/tests/mock_vws/test_content_length.py @@ -11,9 +11,9 @@ import pytest import requests -from mock_vws._constants import ResultCodes from requests.structures import CaseInsensitiveDict +from mock_vws._constants import ResultCodes from tests.mock_vws.utils.assertions import ( assert_valid_date_header, assert_vwq_failure, diff --git a/tests/mock_vws/test_database_summary.py b/tests/mock_vws/test_database_summary.py index a0f6ddaa9..95b415fd1 100644 --- a/tests/mock_vws/test_database_summary.py +++ b/tests/mock_vws/test_database_summary.py @@ -10,8 +10,6 @@ from typing import TYPE_CHECKING import pytest -from mock_vws import MockVWS -from mock_vws.database import VuforiaDatabase from tenacity import RetryCallState, retry from tenacity.retry import retry_if_exception_type from tenacity.stop import stop_after_delay @@ -19,6 +17,9 @@ from vws import VWS, CloudRecoService from vws.exceptions.vws_exceptions import Fail +from mock_vws import MockVWS +from mock_vws.database import VuforiaDatabase + if TYPE_CHECKING: import io diff --git a/tests/mock_vws/test_date_header.py b/tests/mock_vws/test_date_header.py index 5606a30fc..58830f799 100644 --- a/tests/mock_vws/test_date_header.py +++ b/tests/mock_vws/test_date_header.py @@ -13,9 +13,9 @@ import pytest import requests from freezegun import freeze_time -from mock_vws._constants import ResultCodes from vws_auth_tools import authorization_header, rfc_1123_date +from mock_vws._constants import ResultCodes from tests.mock_vws.utils.assertions import ( assert_query_success, assert_valid_transaction_id, diff --git a/tests/mock_vws/test_delete_target.py b/tests/mock_vws/test_delete_target.py index 7e1735fde..254c84171 100644 --- a/tests/mock_vws/test_delete_target.py +++ b/tests/mock_vws/test_delete_target.py @@ -8,13 +8,13 @@ from typing import TYPE_CHECKING import pytest -from mock_vws._constants import ResultCodes from vws.exceptions.vws_exceptions import ( ProjectInactive, TargetStatusProcessing, UnknownTarget, ) +from mock_vws._constants import ResultCodes from tests.mock_vws.utils.assertions import assert_vws_failure if TYPE_CHECKING: diff --git a/tests/mock_vws/test_docker.py b/tests/mock_vws/test_docker.py index 5ddb11fff..d597e5937 100644 --- a/tests/mock_vws/test_docker.py +++ b/tests/mock_vws/test_docker.py @@ -12,13 +12,14 @@ import pytest import requests from docker.errors import BuildError, NotFound -from mock_vws.database import VuforiaDatabase from tenacity import retry from tenacity.retry import retry_if_exception_type from tenacity.stop import stop_after_delay from tenacity.wait import wait_fixed from vws import VWS, CloudRecoService +from mock_vws.database import VuforiaDatabase + if TYPE_CHECKING: import io from collections.abc import Iterator @@ -89,7 +90,7 @@ def fixture_custom_bridge_network() -> Iterator[Network]: network.remove() -@pytest.mark.requires_docker_build() +@pytest.mark.requires_docker_build def test_build_and_run( high_quality_image: io.BytesIO, custom_bridge_network: Network, diff --git a/tests/mock_vws/test_flask_app_usage.py b/tests/mock_vws/test_flask_app_usage.py index f9ec015fa..aed5d678b 100644 --- a/tests/mock_vws/test_flask_app_usage.py +++ b/tests/mock_vws/test_flask_app_usage.py @@ -11,14 +11,14 @@ import pytest import requests -from mock_vws._flask_server.target_manager import TARGET_MANAGER_FLASK_APP -from mock_vws._flask_server.vwq import CLOUDRECO_FLASK_APP -from mock_vws._flask_server.vws import VWS_FLASK_APP -from mock_vws.database import VuforiaDatabase from PIL import Image from requests_mock_flask import add_flask_app_to_mock from vws import VWS, CloudRecoService +from mock_vws._flask_server.target_manager import TARGET_MANAGER_FLASK_APP +from mock_vws._flask_server.vwq import CLOUDRECO_FLASK_APP +from mock_vws._flask_server.vws import VWS_FLASK_APP +from mock_vws.database import VuforiaDatabase from tests.mock_vws.utils.usage_test_helpers import ( processing_time_seconds, ) diff --git a/tests/mock_vws/test_invalid_given_id.py b/tests/mock_vws/test_invalid_given_id.py index 194846b01..a753beb90 100644 --- a/tests/mock_vws/test_invalid_given_id.py +++ b/tests/mock_vws/test_invalid_given_id.py @@ -10,8 +10,8 @@ import pytest import requests -from mock_vws._constants import ResultCodes +from mock_vws._constants import ResultCodes from tests.mock_vws.utils.assertions import assert_vws_failure from tests.mock_vws.utils.too_many_requests import handle_server_errors diff --git a/tests/mock_vws/test_invalid_json.py b/tests/mock_vws/test_invalid_json.py index 18ab96a1e..47b16785c 100644 --- a/tests/mock_vws/test_invalid_json.py +++ b/tests/mock_vws/test_invalid_json.py @@ -13,9 +13,9 @@ import pytest import requests from freezegun import freeze_time -from mock_vws._constants import ResultCodes from vws_auth_tools import authorization_header, rfc_1123_date +from mock_vws._constants import ResultCodes from tests.mock_vws.utils.assertions import ( assert_valid_date_header, assert_valid_transaction_id, diff --git a/tests/mock_vws/test_query.py b/tests/mock_vws/test_query.py index d7e0e177a..1e823e1dc 100644 --- a/tests/mock_vws/test_query.py +++ b/tests/mock_vws/test_query.py @@ -48,9 +48,10 @@ from tests.mock_vws.utils.too_many_requests import handle_server_errors if TYPE_CHECKING: - from mock_vws.database import VuforiaDatabase from vws import VWS, CloudRecoService + from mock_vws.database import VuforiaDatabase + VWQ_HOST = "https://cloudreco.vuforia.com" _JETTY_CONTENT_TYPE_ERROR = textwrap.dedent( diff --git a/tests/mock_vws/test_requests_mock_usage.py b/tests/mock_vws/test_requests_mock_usage.py index 22128b9d2..730f07a1c 100644 --- a/tests/mock_vws/test_requests_mock_usage.py +++ b/tests/mock_vws/test_requests_mock_usage.py @@ -15,16 +15,16 @@ import pytest import requests from freezegun import freeze_time -from mock_vws import MockVWS -from mock_vws.database import VuforiaDatabase -from mock_vws.image_matchers import ExactMatcher, StructuralSimilarityMatcher -from mock_vws.target import Target from PIL import Image from requests.exceptions import MissingSchema from requests_mock.exceptions import NoMockAddress from vws import VWS, CloudRecoService from vws_auth_tools import rfc_1123_date +from mock_vws import MockVWS +from mock_vws.database import VuforiaDatabase +from mock_vws.image_matchers import ExactMatcher, StructuralSimilarityMatcher +from mock_vws.target import Target from tests.mock_vws.utils.usage_test_helpers import ( processing_time_seconds, ) diff --git a/tests/mock_vws/test_target_raters.py b/tests/mock_vws/test_target_raters.py index 6d8568ebb..b2120955c 100644 --- a/tests/mock_vws/test_target_raters.py +++ b/tests/mock_vws/test_target_raters.py @@ -5,6 +5,7 @@ import io import pytest + from mock_vws.target_raters import ( BrisqueTargetTrackingRater, HardcodedTargetTrackingRater, diff --git a/tests/mock_vws/test_target_summary.py b/tests/mock_vws/test_target_summary.py index 1b98ced1c..fcdd794c0 100644 --- a/tests/mock_vws/test_target_summary.py +++ b/tests/mock_vws/test_target_summary.py @@ -16,9 +16,10 @@ if TYPE_CHECKING: import io - from mock_vws.database import VuforiaDatabase from vws import VWS, CloudRecoService + from mock_vws.database import VuforiaDatabase + @pytest.mark.usefixtures("verify_mock_vuforia") class TestTargetSummary: diff --git a/tests/mock_vws/test_update_target.py b/tests/mock_vws/test_update_target.py index 5df616da0..2b7b3faf2 100644 --- a/tests/mock_vws/test_update_target.py +++ b/tests/mock_vws/test_update_target.py @@ -14,7 +14,6 @@ import pytest import requests -from mock_vws._constants import ResultCodes from vws.exceptions.vws_exceptions import ( BadImage, Fail, @@ -26,6 +25,7 @@ from vws.reports import TargetStatuses from vws_auth_tools import authorization_header, rfc_1123_date +from mock_vws._constants import ResultCodes from tests.mock_vws.utils import make_image_file from tests.mock_vws.utils.assertions import ( assert_vws_failure, @@ -36,9 +36,10 @@ _MAX_METADATA_BYTES: Final[int] = 1024 * 1024 - 1 if TYPE_CHECKING: - from mock_vws.database import VuforiaDatabase from vws import VWS + from mock_vws.database import VuforiaDatabase + def _update_target( *, diff --git a/tests/mock_vws/utils/__init__.py b/tests/mock_vws/utils/__init__.py index d67015487..5b5e0615a 100644 --- a/tests/mock_vws/utils/__init__.py +++ b/tests/mock_vws/utils/__init__.py @@ -7,9 +7,10 @@ from typing import Literal import requests -from mock_vws._constants import ResultCodes from PIL import Image +from mock_vws._constants import ResultCodes + class Endpoint: """ diff --git a/tests/mock_vws/utils/assertions.py b/tests/mock_vws/utils/assertions.py index f6e8fb580..a15abd79b 100644 --- a/tests/mock_vws/utils/assertions.py +++ b/tests/mock_vws/utils/assertions.py @@ -15,9 +15,10 @@ if TYPE_CHECKING: import requests - from mock_vws._constants import ResultCodes from vws.exceptions.response import Response + from mock_vws._constants import ResultCodes + def assert_vws_failure( *,