Skip to content

Commit 4dc01ed

Browse files
committed
Use more beartype checks
1 parent 4be74b8 commit 4dc01ed

File tree

7 files changed

+24
-13
lines changed

7 files changed

+24
-13
lines changed

src/mock_vws/_database_matchers.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44

55
from collections.abc import Iterable, Mapping
66

7+
from beartype import beartype
78
from vws_auth_tools import authorization_header
89

910
from mock_vws.database import VuforiaDatabase
1011

1112

13+
@beartype
1214
def get_database_matching_client_keys(
1315
*,
1416
request_headers: Mapping[str, str],
@@ -54,6 +56,7 @@ def get_database_matching_client_keys(
5456
raise ValueError
5557

5658

59+
@beartype
5760
def get_database_matching_server_keys(
5861
*,
5962
request_headers: dict[str, str],

src/mock_vws/_flask_server/target_manager.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from http import HTTPMethod, HTTPStatus
1111
from zoneinfo import ZoneInfo
1212

13+
from beartype import beartype
1314
from flask import Flask, Response, request
1415
from pydantic_settings import BaseSettings
1516

@@ -78,6 +79,7 @@ def delete_database(database_name: str) -> Response:
7879

7980

8081
@TARGET_MANAGER_FLASK_APP.route("/databases", methods=[HTTPMethod.GET])
82+
@beartype
8183
def get_databases() -> Response:
8284
"""
8385
Return a list of all databases.

src/mock_vws/_flask_server/vwq.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from http import HTTPMethod, HTTPStatus
1111

1212
import requests
13+
from beartype import beartype
1314
from flask import Flask, Response, request
1415
from pydantic_settings import BaseSettings
1516

@@ -58,6 +59,7 @@ class VWQSettings(BaseSettings):
5859
)
5960

6061

62+
@beartype
6163
def get_all_databases() -> set[VuforiaDatabase]:
6264
"""
6365
Get all database objects from the target manager back-end.

src/mock_vws/_flask_server/vws.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ class VWSSettings(BaseSettings):
7474
)
7575

7676

77+
@beartype
7778
def get_all_databases() -> set[VuforiaDatabase]:
7879
"""
7980
Get all database objects from the task manager back-end.
@@ -222,6 +223,7 @@ def add_target() -> Response:
222223

223224

224225
@VWS_FLASK_APP.route("/targets/<string:target_id>", methods=[HTTPMethod.GET])
226+
@beartype
225227
def get_target(target_id: str) -> Response:
226228
"""
227229
Get details of a target.
@@ -439,6 +441,7 @@ def target_summary(target_id: str) -> Response:
439441
"/duplicates/<string:target_id>",
440442
methods=[HTTPMethod.GET],
441443
)
444+
@beartype
442445
def get_duplicates(target_id: str) -> Response:
443446
"""
444447
Get targets which may be considered duplicates of a given target.

src/mock_vws/_requests_mock_server/mock_web_services_api.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,19 @@
55
https://developer.vuforia.com/library/web-api/cloud-targets-web-services-api
66
"""
77

8-
from __future__ import annotations
9-
108
import base64
119
import dataclasses
1210
import datetime
1311
import email.utils
1412
import uuid
13+
from collections.abc import Callable
1514
from http import HTTPMethod, HTTPStatus
16-
from typing import TYPE_CHECKING
1715
from zoneinfo import ZoneInfo
1816

17+
from beartype import beartype
18+
from requests_mock.request import Request
19+
from requests_mock.response import Context
20+
1921
from mock_vws._constants import ResultCodes, TargetStatuses
2022
from mock_vws._database_matchers import get_database_matching_server_keys
2123
from mock_vws._mock_common import Route, json_dump
@@ -26,17 +28,10 @@
2628
TargetStatusProcessingError,
2729
ValidatorError,
2830
)
31+
from mock_vws.image_matchers import ImageMatcher
2932
from mock_vws.target import Target
30-
31-
if TYPE_CHECKING:
32-
from collections.abc import Callable
33-
34-
from requests_mock.request import Request
35-
from requests_mock.response import Context
36-
37-
from mock_vws.image_matchers import ImageMatcher
38-
from mock_vws.target_manager import TargetManager
39-
from mock_vws.target_raters import TargetTrackingRater
33+
from mock_vws.target_manager import TargetManager
34+
from mock_vws.target_raters import TargetTrackingRater
4035

4136
_TARGET_ID_PATTERN = "[A-Za-z0-9]+"
4237

@@ -403,6 +398,7 @@ def target_list(self, request: Request, context: Context) -> str:
403398
path_pattern=f"/targets/{_TARGET_ID_PATTERN}",
404399
http_methods={HTTPMethod.GET},
405400
)
401+
@beartype
406402
def get_target(self, request: Request, context: Context) -> str:
407403
"""
408404
Get details of a target.
@@ -471,6 +467,7 @@ def get_target(self, request: Request, context: Context) -> str:
471467
path_pattern=f"/duplicates/{_TARGET_ID_PATTERN}",
472468
http_methods={HTTPMethod.GET},
473469
)
470+
@beartype
474471
def get_duplicates(self, request: Request, context: Context) -> str:
475472
"""
476473
Get targets which may be considered duplicates of a given target.

src/mock_vws/database.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ def to_dict(self) -> DatabaseDict:
9393
"targets": targets,
9494
}
9595

96+
@beartype
9697
def get_target(self, target_id: str) -> Target:
9798
"""
9899
Return a target from the database with the given ID.

tests/mock_vws/fixtures/prepared_requests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import pytest
1414
import requests
15+
from beartype import beartype
1516
from urllib3.filepost import encode_multipart_formdata
1617
from vws_auth_tools import authorization_header, rfc_1123_date
1718

@@ -197,6 +198,7 @@ def database_summary(vuforia_database: VuforiaDatabase) -> Endpoint:
197198

198199

199200
@pytest.fixture
201+
@beartype
200202
def get_duplicates(
201203
vuforia_database: VuforiaDatabase,
202204
target_id: str,
@@ -249,6 +251,7 @@ def get_duplicates(
249251

250252

251253
@pytest.fixture
254+
@beartype
252255
def get_target(
253256
vuforia_database: VuforiaDatabase,
254257
target_id: str,

0 commit comments

Comments
 (0)