Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
7 changes: 3 additions & 4 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import io

from mock_vws.database import VuforiaDatabase

from tests.mock_vws.utils import Endpoint

pytest_plugins = [
Expand All @@ -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.
Expand All @@ -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:
Expand All @@ -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,
Expand Down
7 changes: 4 additions & 3 deletions tests/mock_vws/fixtures/credentials.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -36,7 +37,7 @@ class _InactiveVuforiaDatabaseSettings(_VuforiaDatabaseSettings):
)


@pytest.fixture()
@pytest.fixture
def vuforia_database() -> VuforiaDatabase:
"""
Return VWS credentials from environment variables.
Expand All @@ -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.
Expand Down
23 changes: 12 additions & 11 deletions tests/mock_vws/fixtures/prepared_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand All @@ -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,
Expand Down Expand Up @@ -100,7 +101,7 @@ def add_target(
)


@pytest.fixture()
@pytest.fixture
def delete_target(
vuforia_database: VuforiaDatabase,
target_id: str,
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -195,7 +196,7 @@ def database_summary(vuforia_database: VuforiaDatabase) -> Endpoint:
)


@pytest.fixture()
@pytest.fixture
def get_duplicates(
vuforia_database: VuforiaDatabase,
target_id: str,
Expand Down Expand Up @@ -247,7 +248,7 @@ def get_duplicates(
)


@pytest.fixture()
@pytest.fixture
def get_target(
vuforia_database: VuforiaDatabase,
target_id: str,
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -344,7 +345,7 @@ def target_list(vuforia_database: VuforiaDatabase) -> Endpoint:
)


@pytest.fixture()
@pytest.fixture
def target_summary(
vuforia_database: VuforiaDatabase,
target_id: str,
Expand Down Expand Up @@ -395,7 +396,7 @@ def target_summary(
)


@pytest.fixture()
@pytest.fixture
def update_target(
vuforia_database: VuforiaDatabase,
target_id: str,
Expand Down Expand Up @@ -449,7 +450,7 @@ def update_target(
)


@pytest.fixture()
@pytest.fixture
def query(
vuforia_database: VuforiaDatabase,
high_quality_image: io.BytesIO,
Expand Down
12 changes: 6 additions & 6 deletions tests/mock_vws/fixtures/vuforia_backends.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
5 changes: 3 additions & 2 deletions tests/mock_vws/test_add_target.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
Expand All @@ -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,
Expand All @@ -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


Expand Down
3 changes: 1 addition & 2 deletions tests/mock_vws/test_authorization_header.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -29,7 +29,6 @@
import io

from mock_vws.database import VuforiaDatabase

from tests.mock_vws.utils import Endpoint


Expand Down
2 changes: 1 addition & 1 deletion tests/mock_vws/test_content_length.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
5 changes: 3 additions & 2 deletions tests/mock_vws/test_database_summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,16 @@
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
from tenacity.wait import wait_fixed
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

Expand Down
2 changes: 1 addition & 1 deletion tests/mock_vws/test_date_header.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion tests/mock_vws/test_delete_target.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
5 changes: 3 additions & 2 deletions tests/mock_vws/test_docker.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand Down
8 changes: 4 additions & 4 deletions tests/mock_vws/test_flask_app_usage.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
)
Expand Down
2 changes: 1 addition & 1 deletion tests/mock_vws/test_invalid_given_id.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion tests/mock_vws/test_invalid_json.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
3 changes: 2 additions & 1 deletion tests/mock_vws/test_query.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Loading